Unityのアニメーションに関わるクラスについての技術資料
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種類があります。
| 種類 | メソッド | 使いどころ |
|---|---|---|
| Trigger | SetTrigger(string name) | ジャンプや攻撃など、1回だけ起こす動作 |
| Bool | SetBool(string name, bool value) | 「しゃがみ中」など、オン/オフの状態 |
| Float | SetFloat(string name, float value) | 移動速度など、連続した値 |
| Int | SetInteger(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"トリガーをオンにする
}
}
このコードでアニメーションを再生するには、事前に次の準備が必要です。
- GameObjectに
Animatorコンポーネントを追加し、Animator Controllerを割り当てる。 - Animator Controllerに、Trigger型のパラメータ
Jumpを追加する。 - ジャンプ用のステートを作成し、
AnimationClipを登録する。 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でのアニメーション制御を身につけて、ゲームやアプリケーションに豊かな動きを加えてみましょう。








ディスカッション
コメント一覧
まだ、コメントがありません