LoginSignup
17
17

More than 3 years have passed since last update.

【Unity】Animationのmissingを自動で修正するエディタ拡張

Last updated at Posted at 2018-04-28

概要

Hierarchy上でのオブジェクトの階層を変えたことによって起きるAnimationのmissingを修正します

背景

Unityのアニメーションを編集中に、ヒエラルキー上で階層を変更するとAnimationのプロパティに黄色文字のMissing!が表示され、うまく動かなくなってしまいます。
その都度手動でAnimation側のプロパティ名を変更する必要がありました。

こりゃめんどいぞということで拡張作りました

デモ

demo_1.gif

実装

https://github.com/sukedon/AnimationValidator
コード全文はこちらにあります。

animとオブジェクトの紐付け

image.png

そもそもなんでmissingになるんだろうっていうので.animファイルの中身を見てみたんですが、アニメーションで動かすオブジェクトは名前で取得しているんですね。上の画像のPathというプロパティでオブジェクトを探して紐付けているようです。ヒエラルキー上のオブジェクトのguidで紐付けているわけではないようです。

Missingになったオブジェクトの見つけ方

Pathの値で親のオブジェクトからFindをし、nullだったらMissing。

Missingの修復方法

オブジェクトの名前を元にanimation側のパスを直すようにしました。
なので、

  • animationで制御するオブジェクトの子階層のオブジェクトは、全て名前が一意になっている必要がある

という条件がついてしまいます。

参考にさせていただいた記事

AnimationClipからPathを取り出すところは下記の記事を参考にさせてもらいました。

Unity 壊れたAnimationClipを少しリカバリーしてみるEditor拡張
http://www.shibuya24.info/entry/2016/03/11/090000

github

https://github.com/sukedon/AnimationValidator
改善点等ありましたらプルリクをお待ちしておりますm(__)m

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17