いつものようにVRChat用アバター改変を(四苦八苦しながら)Unityで行っていたところ、突然Modular Avatarのコンポーネントを展開しても、設定項目が何も表示されない状態になった。ふざけんな!
というわけで、Consoleには特にエラーもなく、Modular Avatar自体も当然のごとくインストール済み。
パッケージの再インストールやUnityのLibrary再生成まで試したが改善せず、最終的にはプロジェクト内のUserSettingsフォルダを再生成することで正常な表示に戻ったので、同じような症状で困っている方の参考になればと思い、今回行った切り分けと解決方法をまとめておこうと思いまする。
※この記事は、自分の環境で実際に発生した症状と、その際に行った検証結果をもとにしています。
すべての環境で同じ原因・解決方法になるとは限らないため、作業前には必ずプロジェクトのバックアップを取ってください。
発生した症状
Unity上でModular Avatarを使用しているアバターを編集していたところ、あるタイミングからModular Avatar関連コンポーネントのInspector表示がおかしくなる。
具体的には、コンポーネント自体は存在しているものの、展開しても本来表示されるはずの設定項目が表示されず、空のような状態になった。

不思議なことに、UnityのConsoleを確認しても赤表示のエラーは無い。
そのため、最初はModular Avatarのパッケージが破損したのではないかと考えたわけですね。
発生時の環境
今回症状が発生した環境は以下の通りです。
- Unity 2022.3.22f1
- VRChat SDK 3.10.4
- Modular Avatar 1.17.1
- Non-Destructive Modular Framework(NDMF)1.14.1
なお、症状が発生する直前まで、同じバージョン構成で問題なく使用できてました。
最初に試したこと
まずはModular AvatarやUnity側のキャッシュ破損を疑って以下を試した。
VCCからパッケージを再インストール
VRChat Creator Companion(VCC)からパッケージの再インストールを行ったが、症状は改善しなかった。
UnityのLibraryフォルダを再生成
次にUnityを終了し、プロジェクト直下のLibraryフォルダを削除して再生成した。
Project/
├─ Assets
├─ Library ← 再生成
├─ Packages
├─ ProjectSettings
└─ UserSettings
Unity起動後に全アセットの再インポートがされたわけだけど、これでもModular Avatarの表示は戻らず。
この時点で単純なUnityのインポートキャッシュ破損ではなさそうだと判断。
新規プロジェクトでModular Avatarを確認
次に、問題が
- Unityそのもの
- VRChat Creator Companion
- Modular Avatar
- 対象プロジェクト
上記のどこにあるのかを探るため、新しいAvatarプロジェクトを作成。
新規プロジェクトにModular Avatarをインストールし、適当なGameObjectにMAコンポーネントを追加したところ、こちらでは正常にInspectorが表示された。

これでModular AvatarそのものやUnity環境全体が壊れているわけではなく、元のプロジェクト固有の問題である可能性が高くなる。
パッケージの競合を確認
元のプロジェクトにはModular Avatar以外にも複数のVRChat向けツールを当然のように導入済み。
そこで新規プロジェクト側に、それらのパッケージを1つずつ追加し、そのたびにUnityを起動してModular Avatarの表示を確認。
だがすべて追加してもModular Avatarは正常に表示される。
さらに、Modular AvatarとNDMFのバージョンについても元のプロジェクトと比較したが、当然のように完全に同一なので無し。
この時点で少なくとも単純な「導入パッケージ同士の組み合わせによる競合」ではなさそうだと判断。
Assets内のデータも確認
次に元プロジェクトをコピーし、Assets内のデータを段階的に戻しながら検証確認。
アバター本体や各種アセット、最終的には元のシーンデータまで読み込んだが、コピーしたプロジェクトではModular Avatarが正常に表示される。
つまり、
- Assets
- Packages
- ProjectSettings
- シーンデータ
- Modular Avatarのバージョン
- NDMFのバージョン
が実質同じ状態でも、元のプロジェクトだけ症状が発生するという状況に。
ここでプロジェクト内のローカルなUnity Editor設定を疑うことに。
解決方法:UserSettingsを再生成する
最終的に解決したのが、プロジェクト直下にあるUserSettingsフォルダの再生成。
Unityを完全に終了した状態で、
Project/
├─ Assets
├─ Library
├─ Packages
├─ ProjectSettings
└─ UserSettings
このUserSettingsフォルダを念のため削除せず、UserSettings_bakなどの名前に変更して退避させる。
その状態でUnityを起動すると、新しいUserSettingsが自動的に作成され、今回の環境ではModular AvatarのInspectorが正常な状態に無事戻った。

UserSettingsをいきなり削除しない方が安全
今回のような作業を行う場合は、UserSettingsを真っ先に完全に削除せず、まず名前を変更して退避しておく方が吉。
例えばUserSettingsをUserSettings_bakに変更してからUnityを起動し、問題がなければそのまま使用できるし、何か不測の事態があれば元のフォルダに戻すことも可能なので。
また、UserSettingsにはUnity Editor上のユーザー設定が保存されているため、再生成すると一部のEditor設定やレイアウトなどが初期状態に戻る可能性があるので気をつけよう。
アバターやシーンなどの制作データそのものとは別だが、念のためプロジェクト全体のバックアップを取ってから作業するのが安全◎。
今回の原因について
今回、Modular Avatarの表示がなぜUserSettingsの再生成によって直ったのか、正確な原因までは特定できず…
発生前には、VRChatへのアバターアップロードを途中でキャンセルした際、一時的に別のカスタムInspectorの表示にも異常が出てたが、その操作が直接の原因だったかどうかは分からず。
今回確実に確認できたのは、
- Modular Avatarの再インストールでは直らなかった
- 全パッケージの再インストールでも直らなかった
Library再生成でも直らなかった- 新規プロジェクトでは正常だった
- 同じAssetsやシーンを別プロジェクトへ移すと正常だった
UserSettingsを再生成すると元のプロジェクトでも正常に戻った
という点。
そのため、Unity Editorのプロジェクト固有設定の一部が何らかの理由で不整合を起こしていた可能性が高いんじゃないかな。
同じ症状が出た場合のおすすめ確認順
今回の経験からだけど、Modular AvatarのInspectorが突然表示されなくなった場合は、次の順番で確認すると切り分けしやすいかと。
1. UnityのConsoleを確認する
まず赤いコンパイルエラーが出ていないか確認し、他のEditor拡張でエラーが出ていると、カスタムInspectorが正常に動作しないことがある。
2. Modular Avatarを再インストールする
VCCからパッケージの再インストールを試す。
3. Libraryを再生成する
Unityを終了してからLibraryフォルダを削除し、Unityに再生成させる。
4. 新規プロジェクトでModular Avatarを試す
新しいAvatarプロジェクトにModular Avatarだけを導入。
ここで正常に表示されたら、元のプロジェクト固有の問題である可能性が高い。
5. UserSettingsを退避して再生成する
今回の自分の環境では、最終的にこれでばっち解決。
UserSettings
↓
UserSettings_bak
Unityを再起動し、新しくUserSettingsを生成させる。
まとめ
今回の症状は、Modular Avatarのコンポーネントは存在しているのに、Inspectorの設定内容だけが表示されないというもの。
パッケージの再インストールやLibraryの再生成では改善しなかったが、最終的にプロジェクト内のUserSettingsを再生成することで正常な状態に戻った。
UnityでカスタムInspectorだけがおかしくなった場合、ついパッケージ本体やLibraryばかり疑ってしまいがちだけど、今回のようにUserSettings側が影響しているケースもあるみたいですね。
同じ症状で困っている方は、プロジェクトのバックアップを取ったうえで、serSettingsの退避と再生成も試してみる価値があるかなと思います。
この記事が同じ症状で困っている誰かのためになれば幸い。

コメント