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の停止時に初期状態へ戻す処理も機能していることが分かります。

このコンテンツはユニティちゃんライセンス条項の元に提供されています