新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。Unity使う人はよく使うであろうAnimationClip。プロダクトを作りこんでいくとGameObject階層に変更が入りAnimationClipの参照が外れ、このようにMissing!という表示に焦り、色々試行錯誤するも、最終的に、、、っていう感じになった経験が何度かあります。最悪作り直し....今までお前に費やしてきた時間を返してくれという絶望感に襲われます。過去の過ちを繰り返さないために以下の作業を実行するとAnimationClip内のアニメーション対象参照が外れてしまいます。AnimatorがAddComponentされたGameObject配下の階層構造を変更するAnimatorがAddComponentされたGameObject配下のGameObject名を変更するAnimationブラウザで直接GameObjectの参照名を変更する一つ一つ説明していきます。図のようなGameObject構成で、このような感じでRootにAnimatorをAddComponentし、アニメーションをさせています。AnimatorにはAnimationClipTestAnimation.animを1つだけセットしています。AnimatorがAddComponentされたGameObject配下の階層構造を変更するこのようにGrandSonをChildの子階層に移動すると、、、このようにGrandSonがMissing!になりアニメーションできなくなります。Q.階層を元に戻せば直るんでしょ?A.はい、直ります。階層を戻さずに直す方法TestAnimation.animをテキストエディタで開きます。~~~~~~~すると、このように怪しいpathというプロパティが現れます。本来はParent/Child/GrandChild/GrandSonというパスじゃないといけない所が、Parent/Child/GrandSonとなっています。この部分を直接Parent/Child/GrandSonに直して保存すればTestAnimation.animは正常にアニメーションするようになります。Unity外での編集はファイル破損を招く可能性があるため、Unityを閉じてからが安全とのことです。AnimatorがAddComponentされたGameObject配下のGameObject名を変更する図のようにGameObjectChildをChildrenに変更してみます。すると、、、はい、Missing!Q.名前を元に戻せば直るんでしょ?A.はい、直ります。Animationブラウザで直接GameObjectの参照名を変更するAnimationブラウザの各アニメーションターゲットにカーソルを合わせて、Enterキーを押下すると、名前を編集できます。ここでChildをChildrenにしてみます。すると、、、はい、予想通りMissing!Q.名前を元に戻せば直るんでしょ?A.はい、直りません。気づいて欲しいのが、なぜかChildrenの階層が一段階下がっています。名前をChildに戻してみます。