MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2でホロモンアプリを作る その9(アニメーションステートを Blend Tree にまとめる)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
f:id:bluebirdofoz:20210224033509j:plain

アニメーションステートを Blend Tree にまとめるメモです。

Blend Tree

Blend Tree は2つ以上のアニメーションをブレンドする機能です。
ブレンドはステートの遷移と異なり、アニメーションを滑らかにブレンド(混合)するものです。
docs.unity3d.com

本記事は前回記事の続きです。
bluebirdofoz.hatenablog.com

以下の[Float_Speed]の値で遷移する3つのアニメーションステートを Blend Tree を使って一つのステートにまとめ、スムーズに遷移させてみます。
f:id:bluebirdofoz:20210224033533j:plain

Blend Treeを作成する

[Animator]画面で右クリックから[Create State -> From New Blend Tree]を実行して、新規 Blend Tree を作成します。
f:id:bluebirdofoz:20210224033544j:plain

Blend Tree を作成すると[Animator]画面に追加されます。
ステートを選択すると[Inspector]ビューから命名などの基本設定を行うことができます。
f:id:bluebirdofoz:20210224033555j:plain

Blend Tree のアニメーション設定を編集する場合は、ステートをダブルクリックして Blend Tree の編集画面を開きます。
f:id:bluebirdofoz:20210224033607j:plain

Blend Tree の編集画面の[Parameter]項目で遷移条件として利用する Parameter を選択できます。
今回は3つのアニメーションステートで参照していた[Float_Speed]の値を指定します。
f:id:bluebirdofoz:20210224033618j:plain

次に[Motion]の[+]ボタンをクリックし、[Add Motion Field]を選択してモーションの設定欄を追加します。
3回操作を繰り返し、3つのモーションフィールドを作成します。
f:id:bluebirdofoz:20210224033629j:plain

[Automate Thresholds]にチェックを入れていると、自動で指定 Parameter の敷居値が設定されます。
0.0 ~ 0.5 ~ 1.0 の値で3つのアニメーションが遷移するフィールドが作成されました。
f:id:bluebirdofoz:20210224033640j:plain

各フィールドにアニメーションを設定します。
0.0 に待機アニメーション、0.5 に歩きアニメーション、1.0 に走りアニメーションを設定しました。
f:id:bluebirdofoz:20210224033650j:plain

アニメーションを再生して、Parameter の値によってどのようなアニメーション遷移が行われるか確認します。
Parameter の値は[Animator]画面の Blend Tree のスライダー操作でシームレスに変更できます。

[0.0]のとき

f:id:bluebirdofoz:20210224033700j:plain

[0.25]のとき

f:id:bluebirdofoz:20210224033710j:plain

[0.5]のとき

f:id:bluebirdofoz:20210224033721j:plain

[0.75]のとき

f:id:bluebirdofoz:20210224033731j:plain

[1.0]のとき

f:id:bluebirdofoz:20210224033741j:plain

各モーションフィールドの[Changes animation speed.]でそれぞれのアニメーションフィールドでの再生速度を調整できます。
こちらもアニメーションを確認しながら調整が可能です。
f:id:bluebirdofoz:20210224033751j:plain

これで Blend Tree の設定が完了しました。
[Animator]画面の[Layer]画面に戻り、Transition の接続を Blend Tree 側に差し替えます。
f:id:bluebirdofoz:20210224033802j:plain

動作確認

シーンを再生して動作を確認します。
キャラクターが動き、[Float_Speed]の値が変化すると、その値に合わせてモーションがスムーズに切り替わります。
f:id:bluebirdofoz:20210224033813j:plain

Animation Controller を参照する[Animator]コンポーネントのゲームオブジェクトを選択すると、[Animator]画面で現在のアニメーションの遷移状況を確認することもできます。
f:id:bluebirdofoz:20210224033822j:plain