0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2Dキャラクターのアニメーションを作成する

Posted at

2Dのキャラクターのアニメーションを作成する

目次

  • Animation Controllerの作成
  • Animationの作成
  • スクリプトからパラメータを制御する

はじめに

今回の記事は前回の記事で作成したキャラクターにアニメーションをつけることを記録として残したものです。

Animation Controllerの作成

  • まずはProjectビューでCreate->Animation ControllerでAnimation Controllerを作成します。


    こんな感じ⇩になっていたら成功
    image.png

Animationを作成

Idleアニメーションを作成

  • 今回はキャラクターが何もしないで立っている状態のアニメーションを例にとってAnimationの作り方を説明します。
    AnimationはCreate->Animationから作成できます。

下記の画像のように基本的にはLoop Timeを有効にします。こうすることでアニメーションが1回実行されて終了するのではなく、継続的にアニメーションを実行してくれます。
image.png

これを先ほど作成したAnimation Controllerにドラドロすることでノードをつなぐ形にできました。
⇩こんな感じ
image.png

そしてこのAnimation ControllerをBoneを持ったキャラクターにアタッチすることでAnimationの作成をすることができます

逆に言えば、Animation ControllerをBoneを持ったキャラクターにアタッチしない限りはAnimationの作成ができないので注意!

今回はキャラクターの動きを制御します。
スクリーンショット 2025-01-22 233219.png


Animationタブの録画ボタンを押します。
するとAnimationタブの背景が若干赤くなります。これは現在録画状態であることを表しています。
image.png

この状態でSceneビューのboneを動かすとboneの状態を記録してくれます。


そして頑張って作った結果がこれ⇩
image.png
途中で再生ボタンを使用しながらどんな感じ化を確認するとやりやすいです。

今回は動きだけを制御しましたがこのAnimationのこのタイミングで関数を呼び出すなんてこともできます。

スクリプトからパラメータを制御する

  • 例ではIdle Animationしか作成していませんがRun AnimationやJump Animationも作成してAnimation ControllerにアタッチしてTransitionも編集したのが下記の写真です。
    image.png

ここで写真の右側にパラメータが映っていると思います。これはTransitionが作動するかどうかを制御しているパラメータです。

下記の写真はJump Animationですが「isJumping」パラメータがtrueになったときのみ作動するように赤い部分で制御しています。

スクリーンショット 2025-01-22 234434.png

これらのパラメータはスクリプトから変更させます。
下記のコードがAnimation Controllerのパラメータを制御している部分を抜粋したコードです。

PlayerMovements.cs
    void Awake()
    {
        animator = GetComponent<Animator>();
    }

    void Update()
    {
        isGrounded = Physics2D.Raycast(transform.position, Vector2.down, groundLine, groundLayer);

        if (animator != null)
        {
            animator.SetBool("isJumping", !isGrounded);
            float horizontalSpeed = Mathf.Abs(rb.velocity.x);
            animator.SetFloat("Speed", horizontalSpeed);
        }
    }

上記のコードのようにAniamtion Controllerで設定したパラメータの名前を指定してあげることでそのパラメータの値を操作することができます。

おわり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?