ヒエラルキーの中に作成したオブジェクトで、アニメーションをつくってみましょう。
3Dオブジェクトを動かして、アニメーションを作成します。
上キーを押したままにすると動き、離すと停止します。
関連記事:
画像データを使ってアニメーション作成
前進と停止のアニメーションをつける
キャラクターをジャンプさせる
ジャンプのアニメーション
シフトキーで走るアニメーション
オブジェクトの用意
3Dオブジェクトを組合わせて、簡単なキャラクターを作ります。
CapsuleとCylinderを作成。
Cylinderの位置、回転、スケールを変更します。
シーンビューではこのように見えています。
Cylinderを複製し、位置と回転を変えます。
シーンビューではこのように見えています。
Capsuleの中に、2つのCylinderを入れて、親子関係を作ります。
動作するアニメーションの作成
Capsuleを選択し、アニメーションを追加します。
アニメーションの中の作成をクリック。
保存先として、Animationフォルダを作成しましょう。
Moveという名前をつけて、保存しました。
プロパティを追加 > CylinderとCylinder(1)の、Transform > Position、Rotation を追加します。
ここでは、1秒時点でのキーフレームを削除しました。
1秒時点のPositoinとRotationを、以下のように設定しました。
プレイを押してみると、アニメーションの動きを確認できます。
停止状態のアニメーション作成
もう一つ、停止状態のアニメーションを作成します。
新しいクリップを作成。
Animationフォルダの中に、Stopという名前で保存します。
ここでは何も動きをつけないので、アニメーションの設定は行いません。
アニメーターの設定
Capsuleを選んだ状態で、ウィンドウ > アニメーション > アニメーター
スタートは停止状態から始めるので、Entryを右クリックし、ステートマシンのデフォルトステートを設定するを選択。
Stopに向けて、遷移を伸ばします。
パラメーター > Boolを選択。
isMoveという名前をつけます。
Stopを右クリック > 遷移を作成。
Moveへ遷移を伸ばし、矢印を選択します。
isMoveをtrueで設定します。
続いて、MoveからStopへ遷移を作成。
遷移の矢印を選択します。
isMoveをfalseで設定します。
スクリプトの作成
MoveAnim.csを作成し、Capsuleに追加します。
MoveAnim.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveAnim : MonoBehaviour { Animator anim; void Start() { anim = GetComponent<Animator>(); } void Update() { if (Input.GetKey(KeyCode.UpArrow)) { anim.SetBool("isMove", true); } if (Input.GetKeyUp(KeyCode.UpArrow)) { anim.SetBool("isMove", false); } } } |
ゲームプレイして、十字キーの上を押しっぱなしにしてみましょう。
アニメーションが動作します。
キーを離せば、アニメーションが停止します。
オブジェクトを回転、移動させて、動作と停止のアニメーションを作成。
アニメーターで遷移をつくり、スクリプトで制御しています。
関連記事:
画像データを使ってアニメーション作成
前進と停止のアニメーションをつける
キャラクターをジャンプさせる
ジャンプのアニメーション
シフトキーで走るアニメーション