Modular Avatarによるお着換えギミック実装2024年12月版
0. 今回の説明で使用する環境
Unityバージョン:2022.3.22f1
VRChat SDK - Avatars: 3.7.4
Modular Avatar: 1.10.11
Non-Destructive Modular Framework: 1.6.1
AAO: Avatar Optimizer: 1.8.1
使用アバター:アニアスちゃん
着せ替え服:凍蝶 ITECHO コートセット
1. まず最初に共通コンポーネントとしてつける
アバターRootに共通で付けておくコンポーネント、Modular AvatarのMA Mesh SettingsとAvatar OptimizerのTrace and Optimize。
これをつけておくだけで
・Anchor Overrideが統一される(光の当たり方が特定のメッシュだけ異なるという現象を防ぐ)
・Boundsが統一される(見る角度によって服だけ消える現象を防ぐ)
・未使用BlendShapeをアップロードから除外(アバター容量削減)
・未使用ゲームオブジェクトをアップロードから除外(アバター容量削減)
・未使用PhysBoneをアップロードから除外(アバター負荷軽減)
・Skinned Mesh Rendererをある程度統合(アバター負荷軽減)
…他いろいろ
をやってくれる。何も考えずにとりあえずアバターRootに付ける。
なお、MA Mesh SettingsはアバターRootと服のRootに両方付いている場合、後から処理される方で上書きする為、服のRootについている方が優先されてしまうが、その場合服のRootについている方の設定値を以下の様にすればOK。
2. 服全体を着せ替える
あとは着せ替え元の服で不要な部分はIsActiveをOFFにしておき、Avatar OptimizerのTrace and Optimizeコンポーネントによってアップロード時に自動消去してもらえばOK(EditorOnlyにしなくてもAAOが消去してくれる)。
元の服のPhysboneコンポーネントも、不使用状態のものはTrace and Optimizeが消去してくれる。
・非対応衣装などで、アバター本体のボーンと服のボーンの構造が異なる場合は、Setup Outfitだけでは追従しないこともある。
3. アクセサリーなどの装備品をつける
アーマチュアのRootがHipsボーンから始まっているものはSetup Outfit(=MA Merge Armature)でOKだが、それ以外のアクセサリー等、Hipsボーンから始まっていないものをMAで外付けする場合に使う。
4. ON/OFFだけのギミックをつける
オブジェクトのON/OFFを切り替えるだけの単純ギミックなら、Animatorを組まなくてもModular AvatarのMA Object Toggleコンポーネントで実装できるようになった。
「MA Object Toggle」:Bool値をTrueにした時の各オブジェクトのON/OFF状態。複数オブジェクトを指定可能で、ON/OFFを混在させることも可能。
「MA Menu Item」:ExpressionMenuに登録する際の、「項目の表示名」「アイコン」「パラメータタイプ」「Animatorでのパラメータ名」「初期値」「インスタンスを跨いでもON/OFFを維持するかどうか」「状態を他人へ同期するか」の設定。
「MA Menu Installer」:↑の設定値をExpressionMenuのどこへ登録するかの設定。
5. 衣装ギミックの時にアバター素体のBlendShapeも操作する場合
一例:ハイヒール⇔素足の切り替え(足の角度が変わる為素体のBlendShapeを操作する場合)
一例:ブーツ着用⇔素足の切り替え(ブーツ着用時は貫通防止の為素体BlendShapeで絞っているが、素足時は素体を全表示させる場合)
→4.でのコンポーネント3つに加えて「MA Shape Changer」を追加で付ける。
Modular Avatarは一年前に比べてかなり進化しており、単純なON/OFF着換えギミックならAnimatorを組まなくてもMAコンポーネントのみで完結するので、活用して時短を図ってほしい。