Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity】2Dアニメーションの作り方 Animator Controller, Animation Clipの切り替え

Unity 2021.1.0f1 Personal(2021年4月)
過去記事をアップデートしたついでに続きの記事を書きました!
Spriteを使った2Dアニメーションについて解説します。
以前の記事はこちら。
hiyotama.hatenablog.com

本記事はパラパラ漫画のようなコマ送りのアニメーションを取り扱います。
Unity2018から始まったボーンを使った最新の2Dアニメーションについてはこちらのシリーズをご参照下さい。
hiyotama.hatenablog.com

Animationビューでアニメーションフレームを調整

前回最後に作成したのはひよこが羽ばたくアニメーションでした。

f:id:hiyotama:20210406231619g:plain

こちらのアニメーション、デフォルトではスピードが早すぎるので調整していきます。
まずはAnimationビューを開きます。

f:id:hiyotama:20210408000752p:plain

0:000:01の2フレーム登録されております。
左の0は秒数を、右の00や01はフレーム数を表しています。
デフォルトでは12フレームで1秒となっていますが、今回のアニメーションだと例えば4フレームで1秒くらいがちょうど良さそうです。

tsubakit1.hateblo.jp

こちらの記事を参考に、コンテキストメニュー > Show Sample Rateを選択します。

f:id:hiyotama:20210408011428p:plain
Show Sample Rateにチェック

するとSamplesという項目が出現するので、そちらに4と入力します。

f:id:hiyotama:20210408001522p:plain
Samplesに4と入力

無事サンプルレートが4に変わり、1秒間に4フレームのアニメーション速度となりました。

f:id:hiyotama:20210408001656p:plain
サンプルレートが変わる

f:id:hiyotama:20210408001836g:plain
アニメーション速度変わる

Animation Clipを切り替える

続いてAnimator ControllerからAnimation Clipを切り替えていきます。
まずはAnimationビューに戻り、Flyと書かれている箇所をクリックして下さい。
すると「Create New Clip...」とあるのでクリックし、「Cry」という名前のAnimation Clipを作成します。

f:id:hiyotama:20210408002810p:plain
「Cry」Animation Clipを新規作成

こちらのアニメーションもサンプルレートは4に変更します。

f:id:hiyotama:20210408002952p:plain
「Cry」Animationのサンプルレートを4に設定

完了しましたら各フレームにSpriteを設定していきます。
ドラッグ&ドロップで指定できるので、
0フレーム目:hiyoko_02
1フレーム目:hiyoko_03

のSpriteを指定します。

f:id:hiyotama:20210408003241p:plain
各フレームにSpriteを指定

完了しましたらAnimationビューの再生ボタンを押して動作確認してみます。

f:id:hiyotama:20210408003504g:plain

無事アニメーションしました。

続いてWindow > Animation > AnimatorからAnimatorビューを開きます。

f:id:hiyotama:20210408004039p:plain
Animatorビュー

f:id:hiyotama:20210408004050p:plain

FlyとCryのAnimation Clipが確認できます。

Animatorの詳細については過去記事をご参照下さい。

hiyotama.hatenablog.com

hiyotama.hatenablog.com

まずはBool型のParameter「Cry」を作成します。

f:id:hiyotama:20210408005204p:plain
Parametersを選択しBool型で変数作成

f:id:hiyotama:20210408005246p:plain
名前をCryとする

続いてTransitionを作成します。まずはFly→Cryから。

f:id:hiyotama:20210408005425p:plain
Flyを選択し右クリック→Make Transition

f:id:hiyotama:20210408005430p:plain
Cryに繋げます

作成したTransitionの矢印をクリックしてInspectorで遷移条件を設定していきます。
Has Exis Time: false
Transition Duration: 0

に変更し、
Conditionsに
Cry: true
を追加します。

f:id:hiyotama:20210408005844p:plain
Fly→CryのTransition設定

同じ要領でCry→FlyのTransitionも作成・設定します。
Conditionsだけ
Cry:false
とし、他は全く同じです。

f:id:hiyotama:20210408010057p:plain

この状態でゲームを再生しParametersのCryを変更すればアニメーションが切り替わります。

f:id:hiyotama:20210408010450g:plain


Scriptからのアニメーションを変更したい場合は、こちらの方法を参考にしてみて下さい。

using UnityEngine;
using System.Collections;


public class AnimController : MonoBehaviour
{
	[SerializeField] Animator animator;
	private bool cry;

	void Update()
	{
		if (Input.GetMouseButtonDown(0))
		{
			animator.SetBool("Cry", cry);
			cry = !cry;
		}
	}
}

AnimController.cs

animatorには今回作成したAnimatorを指定します。
SetBoolメソッドでAnimatorのパラメータを変更できます。
第一引数がstring型のパラメータ名、第二引数がパラメータとなります。

今回は以上となります。
ありがとうございました〜。