本日は Unity の小ネタ枠です。
キャラクターの速度に合わせてアニメーションの速度を変化させる方法を記事にします。
今回は前回の再生速度に加えてベースのアクションそのものを変化させてみます。
前提条件
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
アクションの追加
停止状態では待機アクション、早く動くときは走りアクションへ切り替えるため、アクションコントローラにそれぞれのアクションを追加します。
アクションの遷移条件を設定するため、歩きアクションのステートを右クリックして[Make Transition]を選択します。
アクションの遷移条件
前回の[WalkSpeed]パラメータを再利用して以下の条件でアクションを遷移するように設定しました。
float パラメータには[Greater(より大きい)]、[Less(より少ない)]の条件を指定できます。なお[Greater][Less]共に値が等価の場合は条件にあてはまらないと判定されます。
歩きアクション⇔待機アクション
WalkSpeed が 0.1 より少ない(Less)とき待機アクションに遷移する
WalkSpeed が 0.2 より大きい(Greater)とき歩きアクションに遷移する
歩きアクション⇔走りアクション
WalkSpeed が 2.0 より大きい(Greater)とき走りアクションに遷移する
WalkSpeed が 1.9 より少ない(Less)とき歩きアクションに遷移する
走りアクションは歩きアクションと同様に[WalkSpeed]の値に合わせて再生速度を調整するように設定しておきます。
Tips
前回のサンプルスクリプトを利用している場合、Speed 変数に係数を掛けて WalkSpeed を作成している点に注意が必要です。