見出し画像

[Unity備忘録] Spriteアニメーションで走る。

前回のあらすじ。2Dスクロールアクションの基礎部分を作った。

しかし、単なる画像のスライド移動だけでは寂しい。せめて移動時には走ってほしい。
というわけで今回の実装では、プレイヤーの移動時に、走りアニメーションを再生する。



Unityのアニメーション

ざっくり言うと、Unityのアニメーションは

  • Animation(アニメーション本体)

  • AnimatorController(アニメの状態遷移を行うコントローラ)

で構成されている。

格ゲーの例で言うと、蹴りやパンチ等のモーションがAnimation。Aボタンを押すと強攻撃、Bボタンを押すと必殺技を繰り出す、といったアニメーションの切り替えがAnimatorController。

アニメーションにも種類があるけれど、今回扱うのはSpriteアニメーション。画像を連続で表示してアニメーションする、いわゆるパラパラ漫画方式。

AnimatorControllerの作成

PlayerオブジェクトにAnimatorコンポーネントを追加。
Assets>Animフォルダ下にAnimatorControllerを追加。AnimatorのControllerに設定。

Playerのコンポーネンツ

Animationの作成

Assets>Animフォルダ下にAnimationを作成。
アニメーションの編集画面が出るので、タイムラインに、コマの画像をドラッグ&ドロップ。

タイムライン

一枚の画像(Sprite)の切り分けは、前回のタイルパッレト作成あたりを参照。
ループさせるなら最初と最後の画像は同じにしておくとGood。

AnimatorControllerの設定

Animationを追加するときは、Create Stateで状態を作成し、MotionにAnimationを設定する。

遷移の矢印を追加するときはMake Transition。

Entryより最初状態へ移行(橙矢印)、条件によって、状態が遷移(白矢印)する。

Transition設定

状態遷移矢印の設定。下画像は、立ちアニメ→走りアニメ。

Has Exit Timeにチェックを入れると、アニメーションの終了時、自動で次の状態へ遷移する。今回はいらないので外す。
Settingsの詳しい説明は公式のドキュメントへ。最初はそんなに気にしなくて大丈夫(多分)。

アニメーション遷移 - Unity マニュアル

立ち→走りのtransition

重要なのは、Conditions。これは、矢印による遷移が起こる条件を表している。今回はisRunがtrueのとき、この遷移が行われることにした。

Conditionsに使える変数はParametersから追加する。
追加できる値は、float、int、bool、trigger。型によって、使える条件式が異なるので注意。

C#からアニメーションを制御。

変数がBoolならSetBoolから、値を操作する。

public class PlayerController : MonoBehaviour
{
    // ...

    private Animator animator;

    void Start()
    { 
        // ...

        animator = GetComponent<Animator>();
    }

    void Update()
    {
        // ...

        animator.SetBool("isRun", true);

        // ...

        animator.SetBool("isRun", false);
    }
}

というわけでできた。

gifに変換したら、画面が荒くなった。

正直、プログラムよりも、アニメーションのコマを用意する方が大変じゃった。

以下、参考
- 【2025】Unityで2Dアニメーションを作るには?手順とコツも詳しく解説
UnityのAnimationControllerの簡易的な解説

いいなと思ったら応援しよう!