【Unity】TPSキャラクターの歩行アニメーションを設定する

投稿者: | 2021-06-17

Blenderで作った歩きやターンのアニメーションをTPSキャラクターに設定して、操作してみました。AIのキャラクターにも同様に使えました。

Blenderでアニメーションを作る

スタンダードアセットのTPSコントローラーでは、歩きやターンなどアニメーションをブレンドツリーでブレンドして、キャラクターの動きを作ります。

これらのアニメーションをBlenderで作りました。必要なのは次の15個のモーションです。

  • 立ち止まっている
  • 右/左にその場で90度ターン
  • 右/左にその場で180度ターン
  • 前に歩く
  • 右/左に小さな円を描いて歩く
  • 右/左に大きな円を描いて歩く
  • 前に走る
  • 右/左に小さな円を描いて走る
  • 右/左に大きな円を描いて走る

歩きや走りでは、2歩分の短いアニメーションにします。また、マスターボーンに移動のアニメーションを含めます。

円を描いて回るアニメーションを作るには、前に歩く/走るアニメーションを複製して引き伸ばし、マスターボーンのキーフレームを編集して、その場を回り続けるようにしました。

円の大きさは、Unityのスタンダードアセットのアニメーションを参考にしました。最後は2歩分だけを残します。

まずは、左右の片方のアニメーションを作って、Shift + Ctrl + Vで左右対称に貼り付けることで、もう片方のアニメーションを作りました。

キャラクターがアイテムを持っている場合は、手のボーンは除外して、反転しないようにします。

TPSコントローラーに設定する

インポートしたキャラクターのメッシュとアニメーションのあるFBXファイルをシーンに配置します。

また、スタンダードアセットのThirdPersonControllerシーンに置きます。

この中身を前者のキャラクターの中身と置き換えました。そのためには、両方のプレハブを右クリックしてアンパックする必要があります。

置き換えたら、ルートのThirdPersonControllerを選択して、インスペクタでAnimatorコンポーネントを見ます。

すると、元のキャラクター用のアニメーターコントローラーとアバターが付いているので、これも置き換えます。

アニメーターコントローラーは複製するだけです。

アバターを作るには、Projectウィンドウで、インポートしたFBXファイルを選択してインスペクタでインポート設定を変更します。

Rigタブで、Avatar Definitionを「Create From This Model」にして、その下のRoot nodeのプルダウンでマスターボーンを選択しApplyを押すと、FBXファイルの中にアバターが作られます。

このアバターを上のAnimatorコンポーネントの「Avatar」にドラッグアンドドロップします。複製したアニメーターコントローラーもアタッチします。

アニメーターコントローラーを編集する

複製したアニメーターコントローラーには、元のキャラクターのアニメーションが付いているので、これをBlenderで作ったものと置き換えます。

歩行モーションは「Grounded」ステートにあります。

インスペクタを見ると、モーションにブレンドツリーが設定されています。

これをダブルクリックすると、設定されているモーションのリストが表示されます。

ここに、FBXファイルに含まれている、対応するモーションをドラッグアンドドロップします。

アニメーションのインポート設定

アニメーションをループさせたり、正しく移動できるように、15個のアニメーションのインポート設定を変更します。

まず、「Loop Time」のチェックをいれてループさせます。

Root Transform Rotationの「Bake Into Pose」のチェックを入れると、ルートによってゲームオブジェクトが回転しなくなります。

Root Transform Position (XZ)の「Bake Into Pose」のチェックを入れると、アニメーションが一周するたびに毎回キャラクターが元の位置に戻ってしまうので、チェックを切ります。

また、Root Transform Position (Y)の「Based Upon」を「Original」にしないと、キャラクターが地面に埋まりました。

Root Node Position
Original

歩行の周期を揃える

これで、キャラクターが移動するようになりましたが、足の動きが不自然です。

これは、モーションごとに歩行の周期が揃っていないからです。例えば、前に走るモーションは左足が上がっている状態から始まります。

しかし、走りながら左に曲がるモーションは、これを元に作って反転したので、スタートは右足が上がった状態です。

これを揃えるために、左に曲がるアニメーションのインポート設定では、「Cycle Offset」を0.5にしました。

これで、左足が上がったところから始まるようになりました。

また、左に歩くモーションでは、右足が前に出て地面に付いた状態から始まります。

シークバーを動かして、左足が上がった状態にすると、プレビューの下部の表示から、モーションが34%くらい進んだところであるとわかります。

なので、「Cycle Offset」には、0.34を入れました。

このように、モーションの開始時の足の状態を合わせました。地面に付いたときのほうが揃えやすいかもしれません。

これらのキャラクターコントローラーとアバターを使って、同様に置き換えることで、AIキャラクターも使えました。

コメントを残す

メールアドレスが公開されることはありません。