【Unity】2Dゲーム制作入門/アニメーションとアニメーター

【Unity】2Dゲーム制作入門/アニメーションとアニメーターの記事のアイキャッチ画像です。アニメーターウィンドウを使って、キャラクターに様々なアニメーションを設定している様子が描かれています。
Unity
この記事は約5分で読めます。

おはようございます!

1月24日 金曜日。晴れ🌞
予想気温14/6℃。寒くない!!

本日2つ目の投稿です!!

教材は引き続きこちら、

[PR]

[PR]

 

スポンサーリンク

・プレイ画像に「横に歩くアニメーション」をつける

まず、プレイ画像に以下をアタッチ

 ・Rigidbody 2D
 ・Capsule Collider 2D
 ・OK Key Press Move

設定したい画像を選択しつつ、メニューの[Window]→[Animation]→[Animation]でアニメーションパネルを開く。

Unityエディタのアニメーションパネルの画面です。アニメーションクリップの作成や編集を行うことができます。
アニメーションを作成する

 

[作成(Create)]ボタンからファイル名を指定し「Assets」配下のどこかに保存しておく。(ファイル名は「walk.anim」とする)
さらに以下の点を実施

 ・アニメーションにした画像を順に並べてドラッグ&ドロップ
 ・アニメーションパネル右上の「」をクリックして「Show Sample Rate」にチェック
 ・左上の「Samples」の値を「4」に変更
 ・左側の「▶」をクリックすると画像の設定状態がわかる(画像ではクリック後の「▼」を赤枠で囲っている)

Unityエディタのアニメーションパネルで、画像をドラッグアンドドロップしてアニメーションを作成している様子を示しています。
アニメーションの作成手順

 

・「Play」ボタンで実行

Unityで作成した2Dゲームのプレイ画面です。キャラクターが歩き回るアニメーションが再生されています。
歩くアニメーション

これだと上下キーでも横を向いたままなので。。。

ありゃま

[PR]

 

・CHAPTER6.1と同じ手順でプレイ画像に上下のアニメーションを加える

プレイ画像を選択している状態で再びアニメーションパネルを開き、左上のプルダウンから「Create New Clip」を選択。

Unityエディタのアニメーションパネルで、新しいアニメーションクリップを作成する操作を示しています。「Create New Clip」ボタンをクリックしようとしている様子がわかります。
新しいアニメーションの作成

 ①アニメーションファイルを作る(上向き:walkU.anim、下向き:walkD.anim)
  ※上の画像は既に作ってある状態。
 ②アニメーションパネルに上/下向きの対象の画像をドラッグ&ドロップ
 ③左上の「Samples」の値を「4」に変更

※①~③をwalkU.anim、walkD.animに対してそれぞれ実施

 

・スクリプトでアニメーションを切り替える

「On Arrow Key Press Change Anime」をアタッチし、「Up Anime」「Down Anime」「Right Anime」にそれぞれ作成したアニメーションを設定する。

※選択ではなく入力なので間違えると正しく動作しないので注意。

Unityエディタのインスペクターウィンドウで、キャラクターの移動方向に応じてアニメーションを切り替える設定をしている様子を示しています。
方向に応じたアニメーション

 

・アニメーションの割り当て確認

メニューの[Window]→[Animation]→[Animator]クリックで[Animator]タブが見れるようになる。

Unityエディタのアニメータータブです。ゲームオブジェクトにアニメーションが割り当てられ、アニメーションの再生状況を確認できます。
アニメーションの割り当て

 

・「Play」ボタンで実行

Unityで作成した2Dゲームのプレイ画面です。プレイヤーがキーボード操作でキャラクターを移動させると、キャラクターの向きに合わせてアニメーションが再生されています。
入力操作とアニメーションの連携

 

[PR]

 

 

<「上下左右キーで、アニメーションを切り替える」スクリプト(抜粋)>

・アニメーション設定箇所

public string upAnime = “”;  //[上向きアニメーション]
public string downAnime = “”; //[下向きアニメーション]
public string rightAnime = “”;  //[右向きアニメーション]

※初期値は空
 

・Start関数

void Start()
{
animator = GetComponent<Animator>();  //Animatorコンポーネント取得
nowMode = downAnime;  //最初は下向き(前向き)
}

 
・Update関数(抜粋)

まず、「Input.GetAxisRaw」を使って上下左右キーが押されたかどうかを調べ、変数に格納する。

float h = Input.GetAxisRaw(“Horizontal”);  // -1:下、0:そのまま、1:上
float v = Input.GetAxisRaw(“Vertical”);    // -1:左、0:そのまま、1:右


上キーが押された場合

if (v > 0)
{
nowMode = upAnime;  // 上キーの場合
}

 
現在のアニメーションが前回と異なる場合

if (nowMode != oldMode)  //現在のアニメーションが前回と異なる場合
{
oldMode = nowMode;     //前回のアニメーション=現在のアニメーション
animator.Play(nowMode);   // アニメを切り換える
}

最初は「oldMode」は空のため必ず異なる。そのため必ず処理される。

 

[PR]

 

 

これまで学んだものすべてを注ぎ込みました。 

・「Play」ボタンで実行

Unityで作成した2D RPGのプレイ画面です。プレイヤーが鍵を使って宝箱を開け、中のアイテムを取得する様子が示されています。
多様なギミックを実装したRPG

 

 

これで一旦閉じますか~、このページをね。

ボリューム的に少ないですが、このまま次のCHAPTER行っちゃうと記事タイトルがごっちゃりしちゃうのでね。。

 

今日このあと続きをやるかどうかは、、気分次第です。。🙄

 

ではではおつかれさまでした~(‘◇’)ゞ

 

 

 

 

PAGE TOP
タイトルとURLをコピーしました