Unityのアニメーションに関わるクラスについての技術資料

2026年10月19日

広告

Unityでは、キャラクターやオブジェクトに動きをつけるためにいくつかのクラスやアセットを使います。この資料では、アニメーションに関わる4つの要素の役割と関係を、初学者向けにわかりやすく解説します。


1. 全体像:4つの要素の役割

名前が似ているため混乱しやすいのですが、4つの要素は役割が異なります。

名前種類役割
Animatorコンポーネントアニメーションを実行・制御する
Animator Controller(AnimatorController)アセットステートと遷移条件(Transition)を定義する
AnimationClipアセット実際の動きのデータを保持する
Animation旧方式のコンポーネントLegacyアニメーションを再生する

押さえておきたい関係は次のとおりです。

AnimatorがAnimator Controllerを使い、そのステートに登録されたAnimationClipを再生する。

たとえば「ジャンプ」の場合、Jumpの動きを記録したAnimationClipを、Animator ControllerのJumpステートに登録します。スクリプトからAnimatorを操作すると、遷移条件に従ってそのステートへ切り替わり、クリップが再生されます。


2. AnimationClip

AnimationClipは、時間の経過に応じて、GameObjectやコンポーネントのプロパティをどのように変化させるかを記録したデータです。

たとえば「0秒で位置が0、1秒で位置が5」というキーフレームを設定すると、Unityはその間の位置を補間してアニメーションさせます。「走る」「ジャンプする」など、1つの動作が1つのクリップになります。


3. Animator Controller

Animator Controllerは、複数のアニメーションを管理し、キャラクターの状態(「止まる」「走る」「ジャンプする」など)に応じて切り替えるための仕組みです。

  • ステートマシンで、アニメーションの遷移を管理できます。
  • パラメータを使って、切り替えの条件(Transition)を設定できます。

なお、C#のAnimatorControllerクラスはUnityEditor.Animationsに属する、エディタ上で作成・編集するためのクラスです。ゲーム実行中のスクリプトからは、Animatorコンポーネントを通して操作します。


4. Animatorコンポーネント

Animatorは、Unityでアニメーションを操作するための中心となるコンポーネントです。Animator Controllerを割り当て、スクリプトからパラメータを操作して、動作の切り替えを行います。

パラメータの種類と主なメソッド

Animator Controllerのパラメータには、Float・Int・Bool・Triggerの4種類があります。

種類メソッド使いどころ
TriggerSetTrigger(string name)ジャンプや攻撃など、1回だけ起こす動作
BoolSetBool(string name, bool value)「しゃがみ中」など、オン/オフの状態
FloatSetFloat(string name, float value)移動速度など、連続した値
IntSetInteger(string name, int value)状態を番号で表したいとき

SetTrigger()は、Animator Controllerに設定されたTriggerパラメータをオンにするメソッドです。対応する遷移条件が成立すると、ステートが切り替わります。アニメーションを直接再生するわけではない点に注意してください。

使用例

using UnityEngine;

[RequireComponent(typeof(Animator))]
public class PlayerAnimation : MonoBehaviour
{
    private Animator _animator;

    private void Awake()
    {
        _animator = GetComponent<Animator>();
    }

    public void Jump()
    {
        _animator.SetTrigger("Jump"); // "Jump"トリガーをオンにする
    }
}

このコードでアニメーションを再生するには、事前に次の準備が必要です。

  1. GameObjectにAnimatorコンポーネントを追加し、Animator Controllerを割り当てる。
  2. Animator Controllerに、Trigger型のパラメータJumpを追加する。
  3. ジャンプ用のステートを作成し、AnimationClipを登録する。
  4. Jumpトリガーを条件にしたTransitionを設定する。

SetTrigger()とPlay()の違い

メソッド動作
SetTrigger("Jump")Triggerをオンにし、遷移条件の判定で切り替える
Play("Jump")指定した名前のステートを直接再生する

Animator.Play()に渡すのは、クリップ名ではなくステート名です。


5. Animationコンポーネント

Animationは、Unityの旧アニメーションシステム(Legacy Animation)で使うコンポーネントです。複数のAnimationClipを登録し、名前を指定してスクリプトから再生できます。ブレンドやレイヤーにも対応しています。

互換性のために残されていますが、新規プロジェクトではAnimatorを使う方法が推奨されています。

主なメソッド

  • Play(string animationName): 指定した名前のアニメーションを再生します。
  • Stop(): 再生中のアニメーションを停止します。

使用例

Animation anim = GetComponent<Animation>(); // Animationを取得
anim.Play("Walk"); // "Walk"という名前のアニメーションを再生

Legacy Animationで使うクリップは、Legacy用として設定されている必要があります。


6. まとめ

  • Animator: アニメーションを実行・制御するコンポーネントです。パラメータを通して動作を切り替えます。
  • Animator Controller: ステートと遷移条件を定義するアセットです。
  • AnimationClip: 動きそのもののデータです。
  • Animation: 旧方式のコンポーネントです。新規プロジェクトではAnimatorを使います。

この資料を参考に、Unityでのアニメーション制御を身につけて、ゲームやアプリケーションに豊かな動きを加えてみましょう。


参考:Unity公式ドキュメント

訪問数 154 回, 今日の訪問数 1回

広告

Unity

Posted by hidepon