見出し画像

FaceEmo_EmoteOverrideExampleについて【UnityVRC】



FaceEmo_EmoteOverrideExampleの作成



FaceEmo_EmoteOverrideExampleはFaceemoのPrefabの中に置かないと動かない

公式説明書より
https://suzuryg.github.io/face-emo/ja/docs/optional-functions/contact-override/

この動きがややこしかったので記事にする

動く配置
Faceemo
┗FaceEmo_EmoteOverrideExample

動かない配置
・Faceemo
・FaceEmo_EmoteOverrideExample

原因
FaceEmo(Prefab)のMA Parametersで名前変更が行われている

MA Parameters

すべての変数にFaceEmo_ という接頭辞がつく

いっぽうFaceEmo_EmoteOverrideExample単体では

これらのパラメータが使われる。FaceEmo_という接頭辞がついていない。これらはFaceemoで既に同名で登録されていることが期待される変数だが、しかしFaceemoはFaceemo_をつけて名前変更するので、これらの変数は見つけられない
よって実行中

SYNC_CN_EMOTE~(Local)

SYNC接頭辞なのにLocalというおかしな状態になっている。この状態ではFaceEmo_EmoteOverrideExampleの関連変数はすべてFalseのままであり、コントローラーは動かなくなっている。

ここからが難しいのだが、
なぜFaceemoのPrefabの中にFaceEmo_EmoteOverrideExampleのPrefabを置くとうまくいくのか、それはMA Parametersの特殊な仕様のおかげである。
MA Parametersは子オブジェクトのMA Merge Animatorの関連変数をすべて抽出して表示する。ここで置き換えも同様に行われる。

仮にFaceEmo_EmoteOverrideExampleにMA Parametersを付属し、Faceemo_接頭辞をつける名前変更を行えば、このPrefabはアバターのどの場所にあっても問題はない。そのほうが(FaceemoのPrefabを都度更新していく都合上)便利かも。

変数名を設定から変えられる


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