Unityでスプライトシートを使用してスプライトアニメーションを作成する手順

この資料では、Unityを使ってスプライトシートを利用した2Dアニメーションを作成する手順を解説します。スプライトシートをスライスし、Animatorを使用してキャラクターのアニメーションを制御する方法を説明します。初心者向けの簡単な解説となっており、スプライトアニメーション作成の基本を習得できます。

1. スプライトシートの準備とインポート

スプライトシートは、複数のスプライトが1つの画像にまとめられたものです。まず、このスプライトシートをUnityにインポートします。

  1. スプライトシートのインポート
    • UnityのAssetsフォルダにスプライトシートをドラッグ&ドロップします。
    • インスペクターで、Texture TypeSprite (2D and UI)に設定します。
    • Sprite ModeMultipleに設定します。

2. Sprite Editorのインストールとスプライトの分割

Sprite Editorのインストール

もしSprite Editorが表示されていない場合は、パッケージマネージャからインストールします。

  1. Unityの「Window」メニューから「Package Manager」を選択します。
  2. リストの中から「2D Sprite」を探して選択し、Installをクリックします。
  3. インストールが完了したら、Sprite Editorが使用可能になります。

スプライトのスライス

  1. インスペクターウィンドウでSprite Editorボタンをクリックします。
  2. スプライトエディタが開いたら、「Slice」をクリックし、分割方法を設定します。
    • Automatic:自動的にスプライトを分割。
    • Grid by Cell Size:指定したサイズごとにスプライトを分割。
  3. 「Slice」が終わったら「Apply」をクリックして適用します。

3. アニメーションの作成

  1. スプライトシートが分割されたら、複数のスプライトを選択し、Sceneビューにドラッグします。
  2. 「新しいアニメーションを作成しますか?」というプロンプトが表示されるので、アニメーション名をつけて保存します。これでアニメーションクリップが自動的に作成されます。
  3. アニメーションクリップをダブルクリックし、アニメーションウィンドウを開いて再生速度やフレームを調整します。

4. Animatorでのアニメーション管理

作成したアニメーションをAnimatorで管理します。

  1. Animatorウィンドウを開き、キャラクターの状態や遷移を設定します。
  2. トランジション(アニメーションの切り替え)を設定することで、キャラクターの状態に応じたアニメーション制御が可能です。

5. スクリプトでアニメーションを制御する

以下のようなスクリプトを用いて、入力に応じてアニメーションを切り替えることができます。

using UnityEngine;

public class PlayerAnimation : MonoBehaviour
{
    private Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();
    }

    void Update()
    {
        if (Input.GetKey(KeyCode.RightArrow))
        {
            animator.SetBool("isWalking", true);
        }
        else
        {
            animator.SetBool("isWalking", false);
        }
    }
}
  • SetBoolメソッドで、Animatorのパラメータを設定し、アニメーションの再生を制御しています。
  • プレイヤーが右矢印キーを押している間、歩行アニメーションが再生されます。

まとめ

Unityでスプライトシートを使用してスプライトアニメーションを作成するには、次の手順を実行します。

  1. スプライトシートをインポートし、Sprite Editorでスライス。
  2. スライスされたスプライトを使ってアニメーションクリップを作成。
  3. Animatorでアニメーションの管理と遷移を設定。
  4. スクリプトで入力に応じたアニメーションを制御。

Animation,Unity

Posted by hidepon