VRChat 非公式日本語ドキュメント

リリース 3.9.0

Momo the Monster
VRChat開発者

概要

SDKバージョン 3.9.0 では、カメラドリー用のUdon API、ピックアップ用の新しいAuto Holdモード、Network ID Utilityの改善、新しい VRCCameraSettings APIが追加され、アバターIDの割り当て方法に変更が加えられました。

新機能

  • ワールドで Camera Dolly パスを定義し、Udon経由で有効化できるようになりました!
    • 新しい VRCCameraDollyAnimationVRCCameraDollyPathVRCCameraDollyPoint コンポーネントと、Udon関数の VRCCameraDollyAnimation.Import() を組み合わせて使用する方法については、ドリーのドキュメントをご確認ください。
  • VRCPickup オブジェクトの "AutoHold" が、すべての入力デバイスでサポートされるようになりました!
    • ワールド内のピックアップをアップグレードして新しい AutoHold システムを利用すると、操作性が向上します(3択のドロップダウンではなく、シンプルな有効/無効のチェックボックスになります)。その後、ワールドを再アップロードしてください。
    • アップグレードを行わない場合、既存のワールドに影響はありません。
  • VRCCameraSettings および VRCQualitySettings APIへの追加:
    • VRCCameraSettings 経由で CullingMask プロパティを公開し、実行時にアクティブなレンダリングレイヤーを変更できるようにしました。一部の内部レイヤーはこれに含まれません。
    • Unityの Camera.current のプロキシとして VRCCameraSettings.GetCurrentCamera 関数を追加しました。
    • VRCQualitySettings.ShadowCascade2Split および ShadowCascade2Split プロパティを追加しました。これらは書き込み可能です。
    • VRCCameraSettings.PhotoCameradepthTextureMode を設定できるようにしました。PhotoCameraの基本的なDepthモードを無効にすることはできませんが、他のフラグを追加することは可能です。

修正と変更

  • ワールドやアバターのビルドおよびテストにおけるトラストランク要件を撤廃しました。
    • これにより、VisitorアカウントでもSDKを使用して、自分のアバターやワールドをローカルでビルド・テストできるようになりました。
    • ただし、コンテンツをアップロードするには、引き続きトラストランクを上げる必要があります。
  • Network ID Utilityの修正と改善:
    • ネットワークオブジェクトが多数含まれる非常に大規模なプロジェクトにおけるUIの応答性を改善しました。
    • 例外が発生してIDのインポートに失敗するケースを修正しました。
    • エクスポート時に、名前にスラッシュ(/)が含まれるGameObjectがある場合、警告を表示するようにしました。これは、後でインポートする際に問題を引き起こす可能性があるためです。
  • PhysBoneのチェーンがスケール0で始まる場合に、PhysBones_Angleパラメータが機能しない問題を修正しました。
  • PhysBoneインスペクターパネルのパフォーマンスを微調整しました。
  • VRCShader.SetGlobalIntegerが、内部のUnityEngine.Shader関数で正しい整数バリアントを使用するようにし、ビットパターンが保持されるようにしました。
  • 無効なスクリプトが割り当てられた UdonBehaviour コンポーネントの処理を改善しました。
  • UdonSharp スクリプトは、プラットフォームを切り替えた際に再コンパイルされるようになりました。
  • SDKがワールドIDではなくアバターIDを割り当てようとすることでワールドのアップロードに失敗することがある問題を修正しました。
  • Gesture レイヤー内のトランスフォームアニメーションが、カスタムFXレイヤーが提供されていない場合に壊れることがなくなりました。
  • vrc_AvatarV3FaceLayer サンプルコントローラーが、VRChatの推奨するアニメーターのベストプラクティスに従うようになりました。

アバターIDの割り当てについて

今回のSDKアップデートにより、バックエンドでのコンテンツID(avtr_* で始まる文字列)の割り当て方法が変更されました。

info

SDKを組み込みのUI(VRChat SDKコントロールパネル)経由でのみ使用している場合、変更はありません。

ツール作成者や技術的なユーザーは、以下を続けてお読みください。

  • VRChat SDKのネイティブな BuildAndUpload メソッドを使用するツールの場合:
新規アバター変更は不要です。
既存のアバターVRCAvatar 構造体にアバターIDを含めることが必須となりました。このフィールドは以前から利用可能でしたが、これまでは任意でした。
  • Build メソッドおよび Upload メソッドを直接呼び出すツールの場合:
新規アバターVRCApi.CreateAvatarRecordメソッドを使用して、API上で新しいIDを予約する必要があります。なお、この処理を自動で行うBuildAndUploadメソッドの使用を強く推奨します。
既存のアバターVRCAvatar構造体には、アバターIDを含めることが必須となりました。このフィールドは以前から存在していましたが、これまでは任意でした。

これは破壊的な変更とみなされるため、本アップデートのバージョン番号は、当社のバージョニングスキームに従い3.9.0に引き上げられました。

〜の間の修正3.9.0-beta.13.9.0

  • ClientSimにおいて、StartからVRCCameraSettingsのセッターを使用しても例外が発生しなくなりました。
  • ワールドでStandard Liteシェーダーを使用しても、ライトマッピングが破損しなくなりました。
    • 以前は、ベイク中に「compiling shaders…」が無限に繰り返される原因となっていました。

既知の問題

  • ビルド中に「All pipe instances are busy」というエラーが表示されることがまれにあります。これはUnity側の問題であり、エディタを再起動して再度試すことで解消されます。
  • VRCPickupコンポーネントを複数同時に選択した場合、「Upgrade」ボタンが表示されないことがあります。