太郎Work

Unityとかで困ったこと等を残しておきます

Unity4.3で作成したアニメーションがLegacyと言われて動かない

Unityに標準で組み込まれているAnimationは、NGUI等の通常オブジェクトにも簡単にアニメーションが追加でき、publicなパラメータもアニメーションで来て非常に便利。

特にUnity4.3で導入されたDopeSheetのお陰で劇的に作りやすくなった。

しかし、いざGameObjectに追加しようとすると今まではAnimationComponentが自動でアタッチされていたものがAnimatorになってしまう。 確かに動くが、スクリプトからスタートとストップが弄れない! 空のStateをデフォルトにして遷移させれば動きそうだが単純に再生させたいだけなのにState管理とかやりたくない。

方法があるのかもしれないが、殆どがやっぱりAnimationの説明でAnimatorはインポートされたモデルアニメーションの説明ばかり。

そこで諦めてComponentからAnimationを追加してクリップを追加したらアニメーションが再生されず、アニメーションクリップをLegacyにしろと言われて動かない…

モデルデータならインポート設定にLegacy項目があるが、Unity上で作ったのだからあるわけない…

4.3以前に作成したアニメーションはやっぱり普通に動くので調べたら同じ問題で困っている質問を発見。

Create a legacy animation without a model - Unity Answers

まさに同じ状況。

EditorをForceTextにしてから、.animファイルをテキストエディタで開いて以下のように修正

m_AnimationType: 2 -> m_AnimationType: 1

これで今までどおりの使い方が出来るようになった。animationでのアクセスも問題なし。

前回のEditorWindowで<size=~>が使えなくなっている件といい、地味に4.3で謎の改変が入っている。

最終的にAnimationからAnimatorにフェードしていくらしいけどAnimationのシンプルさは残しておいてほしいなあ…

他にもなにかありそうで怖くなってきた。。。