UnityのAnimatorController内に参照されないのに残ってしまったデータを削除します。
- Unity2019.4.31f1
- VRChat Package Resolver Tool 0.1.19
(YamlDotNetに依存していますが、Packages/com.vrchat.core.vpm-resolver/Editor/Dependencies/YamlDotNet.dll
に含まれているのでこれを使います。)
VCCを使っていない場合はAsset StoreからYamlDotNet for UnityをImportしてください。
Edit > Project Settings... > Editor > Asset Serialization > Mode
をForce Textに設定。- AnimatorControllerCleaner.unitypackageをimport
- ゴミを削除したいAnimatorControllerをProject上で選択して右クリック
CleanAnimatorControllers
を実行。
AnimatorControllerのAssetをTextModeで保存した場合、Yaml形式となっています。
Yamlをパースし、Root要素であるAnimatorControllerから参照しているオブジェクトを辿って行きます。
AnimatorControllerから辿った参照ツリーに含まれていないオブジェクトを除外してYamlファイルを保存しなおしています。
テストは行っていますが、完璧な動作は保証できません。一度AnimatorControllerを複製した上で実行し、問題ないことを確認することをおすすめします。
登録
最後のオブジェクトの内容がひとつ前のオブジェクトの内容に置き換わってしまっていた不具合を修正。