Unityで2Dのアニメーションを実装するための最低限の手順メモ。
- 画像を用意する
- パラパラ漫画(Stand, Run, Jumpなど)
- サイズは2の冪乗にする
- 背景は透過
- 用意した画像をUnityに取り込む(Spriteにする)
- アニメーションを適用するゲームオブジェクトを追加する
- 既存のオブジェクトでもいいし、用意した画像のうちの1枚を使うでもOK
- Animator Controllerを作成する
- プロジェクトウィンドウのAssetsフォルダ配下に作成
右クリック > Create > Animator Controller
- ゲームオブジェクトのインスペクターでAnimatorコンポーネントを追加する
AddComponent > Animator
- Controllerにさっき作成したAnimator Controllerを設定
- Animationを作成する
- 対象のゲームオブジェクトを選択している状態で
メニュー > Window > Animation > Animation
を選択して、アニメーション編集ウィンドウを開く - 状態(Stand, Run, Jumpなど)の数だけアニメーションを作成
- 対象のゲームオブジェクトを選択している状態で
- Animator Controllerを編集する
- オレンジ色のボックスがデフォルトモーション。
右クリック > Set as Layer Default State
でデフォルトモーションを変更できる。 右クリック > Make Transition
でアニメーション遷移を繋げる。
(例)「Stand」→「Run」、「Run」→「Stand」- 左側ペインのParametersタブでパラメータを追加する。
(例)型:Bool、名称:run
- 繋げた矢印を選択した状態のインスペクターで以下の設定を行う。
- 「Has Exit Time」のチェックを外す。
ボタンが押されたら即座に反応してほしいので。 - 「Settings > Transition Duration」の値を0にする。
2Dアニメーションの場合、アニメーションの合成をして欲しくないので。 - 「Conditions」のリストに遷移する条件を追加する。
(例)「Stand」→「Run」の場合、run = true
(例)「Run」→「Stand」の場合、run = false
- 「Has Exit Time」のチェックを外す。
- オレンジ色のボックスがデフォルトモーション。
- スクリプトでパラメータを制御する
private Animator anim = null;
void Start()
{
anim = gameObject.GetComponent<Animator>();
}
void Update()
{
if (<走り出す条件>)
{
anim.SetBool("run", true);
}
else if (<立ち止まる条件>)
{
anim.SetBool("run", false);
}
}
コメント