【Unity】Blend Treeをちゃんと理解してモーションブレンドを極める

今更ながらAnimator復習シリーズ。
今回は実は奥が深いBlend Treeでモーションをブレンドする方法をまとめます。

Unity2018.3.1

何のための機能?

二つ以上のモーションをブレンドして一つのモーションとして扱う機能です。
下図では待機・歩き・走りのモーションをブレンドしてブレンド率を徐々に変化させています。

f:id:halya_11:20190212220415g:plain

1Dブレンディング

Blend TreeはAnimator ControllerのStateの一つとして取り扱います。
作成するにはAninator Controllerで右クリック > Create State > From New Blend Tree を選択します。

f:id:halya_11:20190212220728p:plain

Blend Treeができるのでダブルクリックします。

f:id:halya_11:20190212220842p:plain

するとBlend Treeエディタに入るので右クリック > Add Motionを選択します。
今回は3つのモーションを使うので3回選択しました。

f:id:halya_11:20190212221022p:plain

次にInspectorからパラメータやモーションの設定をします。

f:id:halya_11:20190212221540p:plain

設定はこれだけです。
あとはパラメータの変化に応じてモーションがブレンドされます。

f:id:halya_11:20190212220415g:plain

2D Freeform Simple ブレンディング

Blend Typeを2D Freeform Simpleに変更すると、パラメータを二つ設定できます。
これは、前後左右の歩きモーションをブレンドしたいときなどに役立ちます。

f:id:halya_11:20190212232639p:plain

モーションはこんな感じになります。

f:id:halya_11:20190212232910g:plain

前後左右のモーションがうまくブレンドされていることがわかります。

2D Freeform Directional ブレンディング

前節の2Dブレンディングにおいて、同じ方向に二つのモーションを置きたい場合は2D Freeform Directional を使います。

f:id:halya_11:20190212224427p:plain

上記では同じ方向に歩きモーションと走りモーションを配置しています。
ブレンドされたモーションは次のようになります。

f:id:halya_11:20190212224753g:plain

うまくブレンドされました。

2D Freeform Cartesianブレンディング

また、二つの軸の意味合いが全く異なる場合は2D Freeform Cartesianを使います。
適したモーションがなくてあまりいい例ではありませんが、
縦軸を危険度として危険度が高いほど武器を持った移動モーションに移行するようにしてみました。

f:id:halya_11:20190212232023g:plain

参考

docs.unity3d.com

docs.unity3d.com