Unityを使って2Dキャラクターの移動に合わせて立ち絵を切り替える方法を紹介します。Visual Studio 2022を使っている場合でも、基本的な実装方法は同じです。このガイドでは、キャラクターの移動方向に応じて立ち絵をスムーズに切り替える方法を解説します。
1. 必要なセットアップ
まず、2Dキャラクターの画像を用意します。キャラクターの移動方向(上下左右)に応じた4つの画像を用意して、それぞれのアニメーション用にSpriteを設定します。
2. キャラクター移動の基本
まずは、キャラクターが上下左右に動けるように基本的な移動コードを作成します。以下のコードは、Unityで2Dキャラクターを移動させるためのものです。
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 5f;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent();
}
void Update()
{
float moveX = Input.GetAxisRaw("Horizontal");
float moveY = Input.GetAxisRaw("Vertical");
rb.velocity = new Vector2(moveX * speed, moveY * speed);
}
}
3. 立ち絵を方向に合わせて切り替える
次に、キャラクターが移動する方向に合わせて、立ち絵を切り替えるコードを追加します。立ち絵はキャラクターがどの方向を向いているかによって異なる画像を表示します。これを実現するには、Animatorとパラメータを使うのが簡単です。
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 5f;
private Rigidbody2D rb;
private Animator animator;
void Start()
{
rb = GetComponent();
animator = GetComponent();
}
void Update()
{
float moveX = Input.GetAxisRaw("Horizontal");
float moveY = Input.GetAxisRaw("Vertical");
rb.velocity = new Vector2(moveX * speed, moveY * speed);
animator.SetFloat("Speed", Mathf.Abs(moveX) + Mathf.Abs(moveY));
if (moveX != 0)
{
animator.SetFloat("LastMoveX", moveX);
}
if (moveY != 0)
{
animator.SetFloat("LastMoveY", moveY);
}
}
}
4. Animatorの設定
Animatorで立ち絵を動的に切り替えるために、各移動方向ごとのアニメーションを作成し、対応するパラメータを設定します。以下の手順でAnimatorの設定を行います。
- 1. 立ち絵用のアニメーターを作成し、各移動方向ごとのアニメーションを追加します。
- 2. Animatorで「Speed」「LastMoveX」「LastMoveY」のパラメータを作成します。
- 3. それぞれのアニメーションに対して、移動方向に応じたトランジションを設定します。
これで、キャラクターが上下左右に移動する際に、移動方向に合わせて立ち絵が切り替わるようになります。
5. まとめ
Unityで2Dキャラクターの移動に合わせて立ち絵を切り替えるためには、基本的な移動コードに加え、Animatorを活用して移動方向に応じたアニメーションを作成します。これにより、キャラクターがどの方向を向いているかに合わせて、スムーズに立ち絵を切り替えることができます。


コメント