はじめに¶
アセット参照直すネーターは、VRChat のアバター改変用 Unity プロジェクトで起きた Prefab の参照切れ(Missing Reference) を、検査して、原因を分類して、復旧の候補を提示し、承認のうえで直す Unity Editor 拡張です。
Prefab を開いたら中身が Missing (Game Object) だらけになっていた。コンポーネントが Missing (Mono Script) になっていた。衣装の Prefab が丸ごと消えていた。こうしたときに、「何が」「どの GUID で」壊れているのかを突き止め、元に戻すためのツールです。
このツールは Prefab を書き換えます¶
書き換える前提のツールです
このツールは、直すときに .prefab ファイルの中身を実際に書き換えます。 消しちゃうもんネーター(退避してから戻せる)とは性質が違います。だからこそ、次の 3 つを設計の柱にしています。
| 柱 | 具体的には |
|---|---|
| 勝手に直さない | 自動修復はしません。1 件ずつ、あなたがボタンを押したときだけ書き換えます |
| 書き換える前に必ず退避する | 対象ファイルをバックアップフォルダへコピーしてから書き換えます。書き換え内容は Diff で見せます |
| 「確実」と「推測」を混ぜない | 候補には必ずどちらかが表示されます。名前が似ているだけの候補を、確実な復元と同じ顔で並べません |
初回起動時には確認ダイアログが出ます。ここで「了承して開く」を押すまでウィンドウは開きません。
「確実な復元」と「推測」の違い¶
このツールを使ううえで、いちばん大事な区別です。
| 表示 | 意味 | どのくらい信じてよいか |
|---|---|---|
| 確実な復元 | 壊れた参照が持つ GUID と、候補側の GUID が完全に一致している | その参照が指していた当のものです |
| 推測 | GUID は違うが、名前が似ている・同じアセットの中にある | 別物かもしれません。 中身を必ず自分で確認してください |
推測による紐付けは誤り得ます
名前が同じでも中身が違うアセットはいくらでもあります(Body.mesh、Material.mat など)。推測の候補で修復すると、見た目は直ったのに別のアセットが刺さっている状態になり得ます。修復前にバックアップと Diff を必ず確認してください。
このツールがやること・やらないこと¶
| やること | やらないこと |
|---|---|
| Prefab の参照切れの検査と原因の分類 | 参照が壊れていない Prefab の整理・最適化 |
| 壊れた参照の元 GUID の表示 | 未使用アセットの削除 |
プロジェクト内・.unitypackage・ごみ箱からの候補提示 |
.unitypackage の自動インポート |
| 承認したうえでの参照の書き換えと再インポート | Prefab の中身そのものの編集 |
| 複数 Prefab・フォルダ単位のまとめて検査 | まとめて修復(修復は 1 件ずつです) |
直せないケースがあります¶
元のアセットがどこにも無ければ直せません
このツールは、壊れた参照が指していたものを探し出して繋ぎ直す道具です。元のアセットがプロジェクトにも .unitypackage にもごみ箱にも存在しない場合、繋ぎ先が無いので直せません。その場合は、元の配布元から入手し直す必要があります。
動作の前提¶
- Asset Serialization が Force Text であること。 Binary / Mixed には対応していません(事前準備)。
- Unity 2022.3 を主な対象としています。
- Editor 専用です。ビルドされるアプリには何も含まれません。
- 外部と通信しません。検査も候補探索も、すべてあなたの PC の中で完結します。
どこから読むか¶
| 目的 | ページ |
|---|---|
| とにかく一度使ってみたい | クイックスタート |
| 導入したい | インストール |
| 「Binary です」と言われた | 事前準備(Force Text) |
| 検査結果の見方が分からない | 結果の読み方 |
| 候補が 1 件も出ない | 困ったときは |
| 直したものを元に戻したい | バックアップとログ |