歩いているときと、止まっているとき、この2パターンのアニメーションだけをつけてみましょう。
GoldenTigerのFreeアセットをダウンロードしました。
タイガーを歩かせるために、平面オブジェクトを作成。
インポートした、Tigerフォルダの中の、tiger_idleをヒエラルキーにドラッグ&ドロップしましょう。
ステートの作成
アニメーターコントローラーをつくりましょう。
プロジェクト > アニメーターコントローラー
名前はWalkControllerとしました。
WalkControllerをダブルクリックすると、アニメーターウィンドウが開きます。
パラメーターを1つ作成しましょう。
+マークから、Boolを選択します。
Walkingと名前をつけました。
アニメーターには、フローチャートのような画面があります。
(マウスのスクロールボタンを転がせば、拡大縮小できます。)
画面上で右クリック > ステートの作成 > 空
新しくステートができました。
ここには、ゲーム開始すぐのアニメーションを登録します。
インスペクターから、名前をIdleに変更しました。
MotionのところをIdleに設定。
そしてもう一度、画面上で右クリック > ステートの作成 > 空
名前はWalkに変更しました。
Motionにはwalkを入れておきます。
遷移を作成
Idleのステートを右クリックして、遷移を作成。
Walkまで矢印を伸ばします。
この矢印を選んで、インスペクターを確認しましょう。
Conditionsを+マークから作成し、インスペクターの終了時間ありのチェックを外します。
同じような要領で、Walkステートから矢印を、Idleへ伸ばします。
歩く→止まるの動きということで、Conditionsのところにはfalseを入れましょう。
ここまでできれば、シーンビューに戻ります。
スクリプトでアニメーション切り替え
左右キーで回転、上キーで前に進むように、スクリプトをつくります。
このスクリプトには、アニメーションの実行条件も入れます。
WalkingMove.csを作成して、ヒエラルキーのtiger_idleに追加しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[SerializeField] Animator anim; void Update() { if(Input.GetKey("up")) { transform.position += transform.forward * 0.03f; anim.SetBool ( "Walking", true ); } else { anim.SetBool ( "Walking", false ); } if(Input.GetKey("right")) { transform.Rotate(0,1,0); } if(Input.GetKey("left")) { transform.Rotate(0,-1,0); } } |
bool(真偽)を使って、アニメーターのオン、オフを行います。
tiger_idleを選択して、アニメーターの設定をしましょう。
プレイして、動きを確認します。
左右キーで回転、上キーで前進。
移動のときだけ、Walkのアニメーションがついています。
アニメーターは設定項目がたくさんあります。
動いている時と、止まっている時のアニメーションは、以上のような手順で設定しましょう。
ジャンプや走りのアニメーションは、こちらの記事をご参照ください。