Release 3.7.0
概要
今回のアップデートでは、VRChat ConstraintsやUnity AI Navigationの追加、アバターエディターパネルの改善、Standard Liteのアップグレード、新しいPlayer State APIの実装などが行われました。
新機能
- ⚠️ SDKにて、最後にビルドされたアバターが、アバターのダウンロードサイズ制限または非圧縮サイズ制限(いずれも新しく引き下げられました)を超えている場合、アップロードがブロックされるようになりました。
- このリリースでは、Unity 2022のAI Navigationパッケージが統合されました。これにより、シーンのジオメトリから自動生成されるナビゲーションメッシュを使用して、ゲームワールド内をインテリジェントに移動するNPC(ノンプレイヤーキャラクター)を作成できます。
- VRChat SDKにAI Navigationパッケージへの参照が含まれたため、シーンをアップグレードすると「AI Navigation」ウィンドウが表示されます。右クリックして「Close」を選択することで閉じることができます。
- 導入の助けとして、VRChatワールド向けAI NavigationドキュメントおよびAI Navigationサンプルシーンを公開しました。
- 一部のアバターエディターパネルが更新されました:
- Expression ParametersエディターおよびExpressions Menuエディターがゼロから再構築されました。
- 更新されたExpression Parametersエディター:
- ドラッグ&ドロップで要素の並び替えが簡単にできるようになりました。
- パラメーターが使用する同期バイト数を、プログレスバー形式のメーターで表示します。
- Expression Parametersアセットに新しいアイコンが追加され、Assetsフォルダー内で見つけやすくなりました。
- 更新されたExpressions Menuエディター:
- 現在のMenu Controls数と、追加可能な最大Controls数を並べて表示します。
- 各Controlのタイプを一目で確認できます。
- ドラッグ&ドロップでControlsの並び替えが簡単にできるようになりました。
- 警告およびエラー表示が改善・更新されました。
- すべてのControlタイプを編集するためのレイアウトが改善されました。
- Sub-Menu Controls向けに、新しいMenuアセットを素早く作成できる機能と、クリック一つでサブメニューのエディターを開くボタンが追加されました。
- Expressions Menuアセットに新しいアイコンが追加され、Assetsフォルダー内で見つけやすくなりました。
Standard Liteシェーダーが大幅にアップグレードされました!- ベースラインのパフォーマンスが大幅に向上しました。
- Non-linear Lightprobe sampling: シーン内のリアルタイムオブジェクトにおける不自然な強いコントラストを回避します。
- Lightprobe specularity: 反射プローブが存在しない場合、シーン内のライトプローブを使用して鏡面ハイライトを生成するフォールバック機能です。
- Geometric Specular AA: 遠距離や鋭角にある光沢のあるオブジェクトで発生するジャギー(エイリアシング)を回避します。粗さ(roughness)を微調整して少なくとも1ピクセル分ハイライトを引き伸ばすことで、多くのジオメトリで発生する「網戸状」の見え方を軽減します。
- Spherical Harmonics lightmap compatibility through MonoSH (Bakery): ライトマップの各ピクセルに光の拡散と方向をエンコードすることで、コストを抑えつつリアルタイムライティングのような見た目を実現します。特にMonoSHバージョンは、すべてを1つの追加マップに詰め込むことでメモリ使用量の増加を抑えています。MonoSH互換のライトマップをベイクするには、外部のBakeryプラグインが必要です。
- OnLanguageChanged Udonイベントを追加しました。参加時やユーザーが表示言語を変更した際に呼び出されます。
- SDKのビルドパネルに、より鮮明な表示のためにKaiserミップマッピングの使用を推奨する情報メッセージを追加しました。
- 新しいDPIDミップマッピングアルゴリズムについては、以前の開発アップデートで触れました。これはその第一歩となります。アルゴリズム自体はまだ含まれていないため、現時点ではデフォルトのUnity Kaiserミップを推奨します。
VRCSceneDescriptorにリスポーンの高さを可視化するギズモを追加しました。- VRC Scene Descriptorにおいて、Spawnsリストで定義された各スポーン位置にギズモが表示されるようになりました。
- アップロード前に、Dynamic BonesコンポーネントをPhysBonesへ自動変換することが必須となりました。
- Udon経由で利用可能な新しいプレイヤー状態APIを実装しました:
VRChat Constraints
VRChat Constraintsは、Unity標準の「Constraint」コンポーネントを完全に置き換える高機能なコンポーネントであり、アバターで使用可能です。既存のConstraint設定は自動変換することができます。
クライアント内では、読み込み時にすべてのConstraintが自動変換されますが、直接テストができ、パフォーマンスもさらに向上するため、SDKのオプションを使用して変換することをお勧めします。
VRChat Constraintsはモバイル向けアバターでもサポートされています!制限については、更新されたパフォーマンスランクのページをご確認ください。
また、VRChat Constraintsにはネイティブの「ワールドコンストレイント(world constraints)」など、いくつかのユニークな機能があります。詳細については、詳細なドキュメントをご覧ください!
修正
- ClientSimにおける入力イベントが破損する問題を修正しました(こちらのCannyを参照)。
- TextMeshProのラベル内でインラインスプライトを使用している場合に、ワールドのアップロードが一部のケースで失敗する問題を修正しました。
APIの破壊的変更
マイナーバージョンのアップデートが示す通り、3.7.0 にはユーザーツールに対する破壊的変更が含まれています。具体的には、DynamicBones に関連する公開情報およびAPIはすべて削除され、代替機能も提供されません。DynamicBonesを使用したアップロードは現在サポートされていないため、ユーザーツールを更新し、今後は PhysBones のみをサポートするようにしてください。
3.6.2-beta.1 に関する修正と変更
本バージョンは 3.6.2 シリーズを置き換えるものです。
- 新しいエディターパネルの安定性を向上させました。
- 多くのコミュニティツールで行われているような、コード生成されたアバターアセットファイルの表示に関するいくつかの問題を修正しました。
- SDKのアップグレードや再起動の際に、アバターのExpression Menuからパラメーターが消えてしまう問題を修正しました。
- 空のコントロール名が誤って "New Control" に上書きされてしまう問題を修正しました。
- ゲーム内でBoolean型のToggleメニュー項目が意図した通りに動作しない問題を修正しました(
3.6.2-beta.1または3.6.2-constraints.4で作成されたトグルは、再作成が必要になる場合があります)。 - Expression Menuのサブアセットについて、ルートアセットで対象のパラメーターオブジェクトが設定されている場合、それがコピーされるようになりました。
- Scene DescriptorインスペクターでネットワークIDが表示されない問題を修正しました。
3.7.0-beta.2 における修正と変更
- エディタ上で Expression Menu や Parameter のアイコンの読み込みが不安定になる問題を修正しました。
- Diffuse および BumpedDiffuse モバイルシェーダーが真っ白に表示される問題を修正しました。
Constraints の修正
- 1つの軸のみにロックされた Rotation Constraint が、誤った回転で表示されることがある問題を修正しました(やったね、ジンバルロックさよなら)。
- SDK で Activate を押した際に、Parent Constraint が意図せずずれる可能性がある問題を修正しました。
- ループ内で互いを参照する Constraint の安定性を向上させました。
- ウェイトが極めて低い Constraint に関するさらなる問題を修正しました。
- ロックされていない VRChat の Position Constraint において、オフセットが正しく計算されないことがある問題を修正しました。
- ローカル空間で計算を行う際の Aim Constraint および Look-at Constraint の挙動を修正しました。
-
複数の VRChat Constraint を同時に選択して Sources リストを編集する際、Constraint のソース参照が失われる問題を修正しました。
-
SDK 内の Constraints 自動コンバーターと連携するコミュニティ製ツールのサポートを向上させました。
- 詳細は ドキュメント を参照してください。
最終版における修正と変更点
- Constraints(制約)向けに公開されているAPIをさらに調整しました。詳細については、constraints documentation を参照してください。
- これには、「Auto-Fix」をクリックして変換がトリガーされたかどうかを示すパラメーターが含まれます。
- Expression Menuエディターにおけるサブメニューのパラメーター割り当てを改善しました。
.dylibファイル内の誤ったLFS参照を修正しました。
既知の不具合
- シーンを開いて最初にU# Behaviourを持つプレハブ内のGameObjectを選択した際、そのU# Behaviourの直下にあるコンポーネントのGUIが表示されないことがあります。一度選択を解除し、再度プレハブを選択し直すと解決します。
- Buffer ParticlesがUnity 2019の時と同じように動作しません。コミュニティメンバーのhfcRed氏による解決策はこちらを参照してください。
- Unity 2022では、UnityのIMGUIで処理されない例外が発生した際、Riderのデバッガーが停止することがあります。
- 詳細については、こちらの回避策およびJetbrainsのバグトラッカーを参照してください。
最終更新: