unityでキャラクターの2Dアニメーションを作成する #3 Prefab作成編
Unityを使って 2Dアニメーションを作ります。
備忘メモも兼ねて、記事に起こそうと思います。
→前回
シーンに追加してみる
はじめにインポートしたイメージをシーンにドラッグ&ドロップすると、シーン上にアセットが追加されます。
中身を見てみるとイメージが同一階層に、Boneが今まで編集してきた通りに生成されています。
このままだとちょっと都合が悪いので別途Prefabを作成します。
この時original Prefabで作成しておきます。
アニメーション作成にあたり必要なもの
今後ポチポチアニメーションを作るにあたり必要なものをまとめておきます。
- Animator
- sprite library
- 各種エフェクト
それぞれを新しく作成したprefabに追加していきます。
Animator
Animatorはアニメーションの管理を行うアセットで、ここからアニメーションを実行されます。
キャラクターのステータスやアクションなどによって、イイカンジにアニメーションを実行できるように設定できます。
Animator Controller作成
アニメーションをまとめておきたいフォルダを作成しておいて、右クリックから作成できます。
Animator紐付け
アセットのベースにAnimatorコンポーネントを紐付け、そこにAnimator Controllerを設定します。
ステータスと変数
するとこのようなGUIが表示されます。
仕組みとしてはこの四角が1つの状態となり、アニメーションを1つ設定できます。
条件による状態遷移が可能で、パラメータを変化させることでアニメーションをコントロールします。
sprite library
表情のレイヤーをワンタッチで切り替えられるようにします。
sprite libraryを作成します。
sprite libraryの設定
作成したsprite libraryにImageを設定します。
適当なカテゴリー名をつけて、表情のレイヤーを追加します。
同じカテゴリーのImageをラベルによってよって切り替えることができます。
sprite resolver
表情のレイヤーの一つにsprite resolverとsprite libraryコンポーネントを追加します。
対象のカテゴリーを選択し、不要なレイヤーは非表示にします。
するとワンタッチでImageを切り替えることができます。
各種エフェクト
Animatorは配下のオブジェクトを参照でき、GUIから操作できることは大体アニメーションとして再現できます。
そのことを利用してアニメーションからパーティクルなどの各種エフェクトを実行します。
エフェクト実行用のスクリプト
アニメーションからはAnimatorと同じオブジェクトに紐づくコンポーネントであればEventとして実行できます。
下記のようなコンポーネントを用意して置くと便利です。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class FeedbackKicher : MonoBehaviour
{
public UnityEvent @event;
public UnityEvent @event2;
public UnityEvent @event3;
public enum eventtype
{
none,work,dash,junp
}
public void eventKick(eventtype key)
{
if (key == eventtype.none)
{
return;
}
switch (key)
{
case eventtype.none:
return;
case eventtype.work:
@event.Invoke();
break;
case eventtype.dash:
@event2.Invoke();
break;
case eventtype.junp:
@event3.Invoke();
break;
default:
break;
}
}
}
GUIから実行するParticleやサウンドなどを設定できます。
MMFeedback
エフェクト関連でオススメのアセットです。
2Dアクションゲームですが、付属されているMM feedbackは各種エフェクトのイベント操作がちょっと便利になります。
Discussion