Developer

【初心者Unity】スペースキーを押したらジャンプする2Dアニメーション
2021.07.31
Lv1

【初心者Unity】スペースキーを押したらジャンプする2Dアニメーション

1.はじめに


前回はAnimatorControllerの使い方について簡単な例で解説しました。

今回はより実践的な例として、ユニティちゃん 2Dデータを使用したスプライトアニメーションの切り替えについて解説していきたいと思います。

目標:

2.設定


※使用するプロジェクトは2Dです!注意!!

■ユニティちゃん 2Dデータ のインポート

公式サイトから『UnityChan2D.unitypackage』をダウンロードします。
作成した2Dプロジェクトを開いた状態で上記ファイルを実行すると、インポート画面が開きます。
今回はSpritesのみインポートしましょう。

■オブジェクトの作成

インポートが完了すると、Assetsフォルダ内にUnityChan2Dというフォルダが作成されるかと思います。
その中のSpritesフォルダを展開してみると、UnityChan.pngというファイルがあります。
再生ボタンを押すと何枚かの画像ファイルが展開されますので、その中からベースとなる画像を選びます。
特にこだわりが無ければ、『UnityChan_footwork_0』を選びましょう。
Hierarchyビューにドラッグ&ドロップすると、画像ファイルと同じ名前のオブジェクトが作成されます。
名前は『UnityChan』等に変更しておきましょう。

■歩くアニメーションの作成

プロジェクトビューで右クリックして、「Create」→「Animation」でファイルを作成します。
名前は『Run』にしておきましょう。
作成が完了したら、UnityChanにドラッグ&ドロップします。
Animationビューで以下の通りに設定します。
(Unity Chan_run_0からUnity Chan_run_7までを順番に0:08ずつ設定しています。)

InspectorビューでLoop Timeにチェックを入れます。

■ジャンプするアニメーションの作成

Animationビュー左上のドロップダウンからCreate New Clipを選択します。
名前は『Jump』にしておきましょう。
Animationビューで以下の通りに設定します。


InspectorビューでLoop Timeにチェックは入れません。

■AnimatorControllerの設定

Window→Animation→AnimatorでAnimatorビューを開きます。
これがAnimatorControllerの設定画面になります。
『Run』を右クリックしてMake Transitionを選択し、『Jump』をクリックします。
『Run』→『Jump』の矢印が作成されます。
同様に、『Jump』を右クリックしてMake Transitionを選択し、『Run』をクリックしてください。
『Jump』→『Run』の矢印が作成されます。

次に、Parametersタブを開き、+マーク→Triggerを選択します。
名前は『jump_trigger』にしましょう。

『Run』→『Jump』

『Run』→『Jump』を結ぶ矢印を選択します。
InspectorビューのConditionsの+マークをクリックします。
『jump_trigger』という項目が追加されます。
Has Exit Timeのチェックも外しておきましょう。

『Jump』→『Run』

『Jump』→『Run』を結ぶ矢印を選択します。
デフォルトのままですが、Has Exit Timeのチェックが付いていることを確認しましょう。

■スクリプトの設定

Cubeオブジェクトに以下のスクリプトを適用します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UnityChan : MonoBehaviour
{
    Animator animator;

    void Start()
    {
        // animatorコンポーネントを取得
        animator = GetComponent<Animator>();
    }

    void Update()
    {
        // もしSpaceキーが押されたならば、
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // "jump_trigger"という名前のTriggerを起動
            animator.SetTrigger("jump_trigger");
        }
    }
}

以上で、ユニティちゃんがジャンプするようになります!

 
 

連載目次リンク

「初心者のための」Unityゲーム制作 目次
 

Unity実践編 - 目次リンク

実践Unityゲームプログラミング 連載目次