備忘録:Unity上でVRCアバターのシェイプキー変更メニューが動かなくなった

自作アバター改良作業中にだいぶ嵌ったので備忘録として書いておきます。

〈状況〉

Unityにて自作アバターの3Dモデルに手を加えメニュー項目などを再セットアップしていた。ModularAvatarとメニュー作成用にAvatarMenuCreator for Modular Avatar、そして今回から表情関係の作業にFaceEmoを導入し、AV3Emulatorで動作確認したときも特に問題なくセットアップできていた。

しかし途中からラジアルメニューでのシェイプキーの動作がおかしくなった。AvatarMenuCreator for MAで作成したシェイプキー変更メニューが効かなくなっている。具体的には表情用にいれてあった顔のシェイプキーがメニュー上で全部反応しなくなっていた(写真はまぶたを動かしてジト目にする無段階メニューだが動作していない)。それ以外の箇所(体など)のシェイプキーはちゃんと反応していた。

〈対処法〉

ModularAvatarを使用しているためヒエラルキーには作成したメニュー項目が並んでいる。VRC上でのEXメニューでもヒエラルキー上の順番どおりに並ぶのだが、ここでFaceEmoが作成する”FaceEmoPrefab”よりも上に自分で作成したメニューを持っていくと、そのメニュー内の表情変更用シェイプキーが反応しなくなる。今回の例ではVRC上でのEXメニューの並び順を変えたくて自作メニュー(「外見」)を一番最初に持ってきていた。

なのでFaceEmoPrefabよりも下に自作メニューを持ってってやれば表情変更用シェイプキーが反応するようになる。ちゃんと自作メニューからジト目に変更することが出来た。

〈原因〉

分かんない。ヒエラルキー上の順番が見た目上はともかく動作にまで影響を与えるとは思わなかったし…


なんだかんだでここに嵌ってしまい問題解決までが大変だった。実はこの問題が起こる前にBlender上で顔周りのオブジェクト(シェイプキーに多少関りがあった)を削除したりしていたのでそれでシェイプキー壊れたか…?と勘繰り、シェイプキーの全削除からの再設定したりしている。(コピーした元オブジェクトからシェイプキーをコピペしたので一からやり直しではないのだが、リップシンク用も含めた大量の表情変更用シェイプキーを手動コピペするのは辛かった)

素人がModularAvatarなどの便利アイテムを使ってほぼブラックボックス状態でUnityを触っているので問題解決までが一苦労である。トライ&エラー&トライ&エラー&トライ&エラー…

もしかしたらここにあることはよくある事例かもしれないが(分からなすぎてどう検索したらいいかすら分からなくて調べられなかった)(というかFaceEmoの説明かどこかに書いてありそうな気もする…)解決はしたのでなにかの足しに書いておきました。