リリース 3.9.0
概要
SDKバージョン 3.9.0 では、カメラドリー用のUdon API、ピックアップ用の新しいAuto Holdモード、Network ID Utilityの改善、新しい VRCCameraSettings APIが追加され、アバターIDの割り当て方法に変更が加えられました。
新機能
- ワールドで Camera Dolly パスを定義し、Udon経由で有効化できるようになりました!
- 新しい
VRCCameraDollyAnimation、VRCCameraDollyPath、VRCCameraDollyPointコンポーネントと、Udon関数のVRCCameraDollyAnimation.Import()を組み合わせて使用する方法については、ドリーのドキュメントをご確認ください。
- 新しい
- VRCPickup オブジェクトの "AutoHold" が、すべての入力デバイスでサポートされるようになりました!
- ワールド内のピックアップをアップグレードして新しい AutoHold システムを利用すると、操作性が向上します(3択のドロップダウンではなく、シンプルな有効/無効のチェックボックスになります)。その後、ワールドを再アップロードしてください。
- アップグレードを行わない場合、既存のワールドに影響はありません。
- VRCCameraSettings および VRCQualitySettings APIへの追加:
VRCCameraSettings経由でCullingMaskプロパティを公開し、実行時にアクティブなレンダリングレイヤーを変更できるようにしました。一部の内部レイヤーはこれに含まれません。- Unityの
Camera.currentのプロキシとしてVRCCameraSettings.GetCurrentCamera関数を追加しました。 VRCQualitySettings.ShadowCascade2SplitおよびShadowCascade2Splitプロパティを追加しました。これらは書き込み可能です。VRCCameraSettings.PhotoCameraでdepthTextureModeを設定できるようにしました。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.1と3.9.0
- ClientSimにおいて、
StartからVRCCameraSettingsのセッターを使用しても例外が発生しなくなりました。 - ワールドで
Standard Liteシェーダーを使用しても、ライトマッピングが破損しなくなりました。- 以前は、ベイク中に「compiling shaders…」が無限に繰り返される原因となっていました。
既知の問題
- ビルド中に「All pipe instances are busy」というエラーが表示されることがまれにあります。これはUnity側の問題であり、エディタを再起動して再度試すことで解消されます。
VRCPickupコンポーネントを複数同時に選択した場合、「Upgrade」ボタンが表示されないことがあります。
