2DでもBlendTreeを使うと便利だという話
BlendTreeとは
UnityのAnimatorの機能
アニメーションを移行する際、パラメーターをブレンドして滑らかに移行してくれる
歩きモーションから段々走りモーションに変わる、みたいな
詳しくは他の解説記事を見たほうがいい
というのは3Dの話
2Dグラフィックだと画像を直接差し替えるからブレンドするパラメーターがそもそもない
2DでBlendTreeを使わない場合
とはいえ、通常のTransitionだけで各種アニメーションを繋ぐのは結構大変
立ちモーションと歩きモーションの場合
歩きと立ちのモーションが正面、左右、後ろの4つずつ、計8こ
それぞれ行き来させるとかなりごちゃっとする
走りモーションを追加したらさらにごちゃっとする
2DでBlendTreeを使う場合
まずはキャラクターの向きを設定
向きは0=正面、1=左向き、2=後ろ、3=右向き、という感じでID扱いにする
まだアニメーションではなく、続けてBlendTreeを繋ぐ
次に移動速度を設定
RigidBodyの速度を入れてもいいし、向きと同じでID扱いでもいい
速度に合わせたアニメーションを設定
これで向き+速度のパラメーターに合わせて自動でアニメーションが移行する
それぞれTransitionを設定する必要がない
BlendTreeだけどブレンドはさせないほうがいい
便利なのはあくまでパラメーターごとの移行
ブレンドさせると表示が荒ぶる可能性がある
2D ArrayのIndex値でアニメーションさせてたら荒ぶった
パラメーターには整数だけを使用したほうがいい
Automate Thresholdsを無効化して各Thresholdに整数を設定
スクリプト側でMathf.RoundToInt()とかさせて整数に揃える