🚶
【Unity】BlendTreeで上下左右に移動するアニメーションを作成する
初めに
BlendTypeの1Dと2DFreeFormDirectional二種類の方法を紹介します。1Dはシンプルで簡単ですが移動速度に合わせてアニメーションの速度を変化させる事はできません。なので正面方向から真後ろに移動方向を切り替えた時、アニメーションも自然に遷移しません。
2DFreeFormDirectionalを使うと移動速度に合わせてアニメーションの速度も変化させる事が可能で自然なアニメーションになるので2Dをおすすめします。
2DFreeFormDirectionalで上下左右移動アニメーション
アニメーションのパラメーター、movingXとmovingYを取得するために角度と移動速度からVector3を取得します。
1Dで上下左右移動アニメーション
BlendTreeはこんな感じにします。animatorのparameterはfloatでangleを作成します。
進むアニメーションが斜めがあれば45度毎に設定して、上下左右のみならば90度毎に設定します。今回の画像では右斜め(45)はと左後ろ(270)は違和感があったのでそれぞれ左右のアニメーションを割り当てておきました。なので上下左右のみなら0,90,180,270,360度の角度で割り当ててください。
2.スクリプトをプレイヤーにアタッチ
BlendTreeではAnimationEventが二回呼ばれてしまうのでその解決策
アニメーションを二つ組み合わせるのでEventが二回呼ばれるみたいです。そのため足音などEventで設定する場合は以下の条件を足します。右→左→右と交互に足音を鳴らします。移動をやめたときに両方どちらでも鳴るようにリセットします。
いやー、なかなか大変だった。けどこれで自然なアニメーション作れて満足!
記事は以上です。お疲れ様でした😌
Discussion