概要
動作確認環境: Unity 2022.3 LTS / Unity 6
「キャラクターに複数のアニメーションを付けたい…」「歩きからジャンプへスムーズに切り替えたい…」
Unity開発でキャラクターやオブジェクトにアニメーションを実装していると、こうした課題に直面することがあります。Animator Controller(アニメーターコントローラー) は、Unity公式のアニメーション管理システムです。複数のアニメーションクリップを視覚的に管理し、State Machine(ステートマシン)を使って、アニメーション間の遷移を制御します。
Animator Controllerの作成方法
方法1:手動で作成
- Projectウィンドウで右クリック
- 「Create」→「Animator Controller」を選択
- ファイル名を設定(例:「PlayerAnimator」)
方法2:自動作成
Animation Windowでゲームオブジェ クトをアニメーション化すると、Animator Controllerが自動的に作成されます。
ゲームオブジェクトに割り当てる
- ゲームオブジェクトを選択
- インスペクターで「Add Component」→「Animator」を選択
- AnimatorコンポーネントのControllerフィールドに、作成したAnimator Controllerをドラッグ&ドロップ
Apply Root Motionについて
Animatorコンポーネントには「Apply Root Motion」というチェックボックスがあります。
| 設定 | 動作 |
|---|---|
| オン | アニメーションに含まれる移動・回転がキャラクターに適用される |
| オフ | アニメーションの移動・回転は無視され、スクリプトで制御する |
初心者向けアドバイス: キャラクターの移動をスクリプトで制御している場合は オフ にしてください。オンのままだと、アニメーションとスクリプトの両方で移動が適用され、意図しない動きになることがあります。
State Machineの基本
Animator Windowを開くと、いくつかのStateが最初から用意されています。
| State | 説明 |
|---|---|
| Entry | アニメーションの遷移がスタートするState |
| Any State | どの状態からでも好きな状態に遷移できるState |
| Exit | Sub-State Machineから上位レイヤーに戻る(ルートレイヤ ーではEntry直後のデフォルトStateに戻る) |
Exitの動作について: ExitはSub-State Machine内で使用すると親のState Machineに制御を戻します。ルートレベルのState Machineでは、Exitに遷移するとEntryを経由してデフォルトStateに戻ります。
Stateの作成
- Animator Windowの何もないところを右クリック
- 「Create State」→「Empty」を選択
- アニメーションクリップをMotionフィールドに割り当て
または、Projectウィンドウからアニメーションクリップを直接ドラッグ&ドロップすることで、Stateが自動作成されます。
Transitionの作成
- 遷移元のStateを右クリック
- 「Make Transition」を選択
- 遷移先のStateをクリック
Transitionの設定
| 設定 | 説明 |
|---|---|
| Has Exit Time | オンでアニメーション終了後に遷移、オフで即座に遷移 |
| Transition Duration | 遷移の持続時間(ブレンドの滑らかさ) |
| Conditions | 遷移が発生する条件 |
Parametersの使い方
Parameters(パラメータ) は、スクリプトとAnimator Controller間の通信に使用します。
Parametersの種類
| 種類 |
|---|