見出し画像

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

設定値はこれでOK。何も考えずにとりあえずつけておく。

 これをつけておくだけで
・Anchor Overrideが統一される(光の当たり方が特定のメッシュだけ異なるという現象を防ぐ)
・Boundsが統一される(見る角度によって服だけ消える現象を防ぐ)
・未使用BlendShapeをアップロードから除外(アバター容量削減)
・未使用ゲームオブジェクトをアップロードから除外(アバター容量削減)
・未使用PhysBoneをアップロードから除外(アバター負荷軽減)
・Skinned Mesh Rendererをある程度統合(アバター負荷軽減)
…他いろいろ
をやってくれる。何も考えずにとりあえずアバターRootに付ける。

 なお、MA Mesh SettingsはアバターRootと服のRootに両方付いている場合、後から処理される方で上書きする為、服のRootについている方が優先されてしまうが、その場合服のRootについている方の設定値を以下の様にすればOK。

これにすると、親(=アバターRoot)で指定されている時は継承(=アバターRootの設定値を継承)、それ以外(=設定されていない場合)では設定(=服のRootで設定した値になる)


2. 服全体を着せ替える

アバターRootに服をPrefabのまま置く→服のRootを右クリック→Modular AvatarSetup Outfit
服のArmatureにMA Merge Armatureが付いていればOK
位置追従モードは片方向で大体OK

あとは着せ替え元の服で不要な部分は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で外付けする場合に使う。

アクセサリーの場合はAdd ComponentからMA Bone Proxyを付ける
ターゲットの欄に追従させたいボーンを指定して、オブジェクトを初期位置に移動させればOK
GestureManagerかAV3Emulatorを使ってちゃんと追従しているかどうかチェック


4. ON/OFFだけのギミックをつける

 オブジェクトのON/OFFを切り替えるだけの単純ギミックなら、Animatorを組まなくてもModular AvatarのMA Object Toggleコンポーネントで実装できるようになった。

アバターRootで右クリック→Modular AvatarCreate Toggle
空のゲームオブジェクトが生成され、「MA Object Toggle」「MA Menu Item」「MA Menu Installer」のコンポーネント3つが自動付与される
説明は↓

「MA Object Toggle」:Bool値をTrueにした時の各オブジェクトのON/OFF状態。複数オブジェクトを指定可能で、ON/OFFを混在させることも可能。
「MA Menu Item」:ExpressionMenuに登録する際の、「項目の表示名」「アイコン」「パラメータタイプ」「Animatorでのパラメータ名」「初期値」「インスタンスを跨いでもON/OFFを維持するかどうか」「状態を他人へ同期するか」の設定。
「MA Menu Installer」:↑の設定値をExpressionMenuのどこへ登録するかの設定。

MA Object Toggleをつけたゲームオブジェクトが複数ある場合は、ヒエラルキーの上から順に項目が追加される
追加される項目の順番を指定したい場合はヒエラルキー内で上から順に並べればOK


5. 衣装ギミックの時にアバター素体のBlendShapeも操作する場合

一例:ハイヒール⇔素足の切り替え(足の角度が変わる為素体のBlendShapeを操作する場合)
一例:ブーツ着用⇔素足の切り替え(ブーツ着用時は貫通防止の為素体BlendShapeで絞っているが、素足時は素体を全表示させる場合)

4.でのコンポーネント3つに加えて「MA Shape Changer」を追加で付ける。

「MA Shape Changer」を追加で付けると、Toggle時にBlendShapeの値を指定した値へセットしてくれる。ソックスの着脱等で素肌を見せたいが、着衣状態の時が素体側を貫通防止で絞っている場合に活用できる。
これで素足ギミックもMAで外付けできる


 Modular Avatarは一年前に比べてかなり進化しており、単純なON/OFF着換えギミックならAnimatorを組まなくてもMAコンポーネントのみで完結するので、活用して時短を図ってほしい。

いいなと思ったら応援しよう!