EditorでAnimatorの再生 その2

EditorでAnimatorの再生 その2

 前回(EditorでAnimatorの再生 その1)、Animator.UpdateによるAnimatorの再生を行いました。今回は、EditorWindowへAnimatorに設定されているパラメーターを表示し、それらを変更することでアニメーションの遷移を行う機能を追加しました。

Script

 作成したScriptは以下の通りです。

パラメーターの取得と表示

 Aniamtor.parametersによってAnimetorに設定されているAnimatorControllerParameterを取得することができます。これを用いて各パラメーターの型に応じてコントロールの表示を行います。

Animatorの初期化

 Animatorを読み込んだ際、Animator.GetCurrentAnimatorStateInfoによって各レイヤーのEntryに接続されているAnimation Stateの情報を取得します。この情報からAnimation Stateのハッシュを取得します。取得したハッシュを用いてAnimator.Playを実行することで初期化を行います。

再生時間

 再生時間はUpdate内で計測しており、Layout→Repaint→Updateの順に実行されるためEditorWindowで表示される数値は1フレームの遅れが生じます。

実行結果

 以上のScriptを実行するにあたり作成したAnimatorControllerは以下の通りです。

Base Layer
フェイスアニメーション

実行結果は以下の通りです。Speedの変更によりStanding→Walking→Runing、トリガーによるジャンプができています。また、フェイスアニメーションも問題なくできておりAnimatorの再生に問題はないようです。ジャンプ中の一時停止及び再開も問題なくできており、Animatorの停止時に初期状態へ戻す処理も機能していることが分かります。