Unity Animator 学習シリーズ ― Animation Clipからステート制御まで
「AnimatorとAnimation Clipは何が違うの?」「IdleからWalkには、どうやって切り替わるの?」という疑問から、入力とアニメーションを連動させるところまで。ソフトライムの既存記事を、初学者向け → 実践 → 発展の順にまとめました。

まずはSTEP 1とSTEP 2を進めてください。個別PNGの素材を使う場合はSTEP 2Bを選べます。STEP 3以降は、基本の切り替えができてから必要に応じて進みましょう。
このシリーズの対象とゴール
UnityのHierarchy・Project・Inspectorの基本操作が分かる人向けです。コードを使う段階では、C#の変数・メソッド・条件分岐の基礎を使います。Unity自体が初めての場合は、Unity 入門シリーズから始めてください。
ゴールは、Animation Clip・Animator Controller・Animatorの役割を説明し、Idle/Walkを条件で切り替えられること。その後、攻撃の入力、判定、効果音などへつなげます。
迷ったら、この順番がおすすめです
STEP 1:仕組みの全体像
↓
STEP 2:2Dアニメーションを作り、Idle/Walkを切り替える
↓
STEP 3:入力・攻撃判定・演出と連動させる
↓
STEP 4:ステートの開始・終了をコードで扱う
↓
STEP 5:Root Motionへ進む(希望者向け)
STEP 2AとSTEP 2Bは素材に応じて選ぶルートです。両方を終える必要はありません。クラスの参考資料は、途中で用語を調べたいときに使ってください。
STEP 1:Animatorの全体像を知る
GameObject、Animation Clip、Animator、Animator Controllerの関係を確認します。まずは「動きのデータ」と「切り替えの設定」と「再生するコンポーネント」を区別しましょう。
確認:Animation Clipは時間に沿った変化のデータ、Animator Controllerはステートと遷移の設定、AnimatorはGameObject上でそれを再生・制御するコンポーネント、と自分の言葉で説明できれば次へ進めます。
STEP 2A:スプライトシートから作る【おすすめの本線】
1枚の画像からスプライトを切り出し、Animation Clipを作って再生します。Unity 6を前提とした記事で、Animator Controllerの確認、再生タイミングの調整、Idle/Walkの切り替えまで扱います。
まずは1つのClipを再生し、その後にIdleとWalkを用意しましょう。AnimatorのParametersにBool型のisWalkingを作り、Idle → Walkをtrue、Walk → Idleをfalseで切り替えます。
確認:再生中にParametersの値を変えて、両方向に切り替わりますか? 手動で切り替わったら、記事の入力サンプルでSetBoolとのつながりを確かめましょう。入力サンプルはClip・ステート・遷移を設定したうえで使います。
STEP 2B:個別PNGから作る【素材に応じた別ルート】
Unityチュートリアル:個別スプライトからはじめる2Dアニメーション
1枚=1フレームのPNGが複数ある場合はこちらです。画像を順番に選択し、Unityの自動生成機能でClipとControllerを作成します。再生確認とファイル整理まで進めてください。
Idle/Walkの切り替えは、STEP 2Aの「アニメーション切り替え(Idle / Walk)」へ進めます。個別PNGの記事の制御例は右矢印キーとSetBoolを使うコードです。本文のスペースキーの説明とは一致しないため、入力とParameterの名前はコードに合わせて確認してください。
STEP 3:入力・攻撃判定・演出と連動させる【実践】
スペースキーで攻撃アニメーションを再生し、判定・効果音・エフェクトを連動させる方法(Unity 6・新Input System対応)
Idle/Walkを切り替えられたら、入力からAttackを開始する実践へ進みます。Input SystemのAction、AnimatorのTrigger、Animation Event、StateMachineBehaviourを組み合わせる記事です。2Dの基本練習から、記事の3Dシーン構成を使う応用へ進む位置づけです。
初めての用語が多ければ、先に【Unity】アニメーションイベントとSTEP 4を読みましょう。Animation EventはClip内の指定したタイミングで関数を呼び出す仕組みです。StateMachineBehaviourはステートの開始・更新・終了などに処理を追加します。
進め方:最初に入力 → IdleからAttackへの遷移を確認し、次にイベントでHitBoxのON/OFF、最後に効果音とエフェクトを確認します。素材、InputActionAsset、HitBoxなどの参照も設定してください。
確認:AttackのBindingはスペースキーです。記事末尾の「マウス左クリック」という表記と異なるため、設定したBindingで試してください。攻撃開始、判定の有効・無効、Idleへの復帰を順に確認しましょう。
STEP 4:ステートの開始・終了をコードで扱う【発展】
【Unity】StateMachineBehaviourを使ったステートマシン(チュートリアル)
Animatorを使った経験がある人向けの記事です。ステートにAdd Behaviourで処理を追加し、OnStateEnter・OnStateUpdate・OnStateExitのログを確認します。STEP 3で使ったAttackStateの役割を理解するためにも役立ちます。
確認:IdleからWalkに切り替えたとき、どのログが表示されますか? サンプルのWalk欄にもクラス名Idleが記載されています。別のWalkスクリプトを作る場合は、ファイル名とクラス名をWalkに揃えてください。
STEP 5:Root Motionを知る【希望者向け】
【Unity】アニメーションルートモーションのシンプルなサンプル
移動を含むアニメーションを扱うときの発展資料です。Apply Root Motionの有効・無効を比較し、アニメーションによる移動とスクリプトによる移動の役割を考えます。
2DスプライトのIdle/Walk切り替えを終えるために、Root Motionの学習は必須ではありません。移動データを持つアニメーションを使う段階で進んでください。確認:自分のキャラクターの位置を、アニメーション・スクリプト・物理処理のどれが動かしているか説明してみましょう。
用語に迷ったときの参考資料
Animator、Animation、AnimatorController、AnimationClipをC#のクラスとして整理する資料です。STEP 1は仕組みの入口、こちらは学習中にクラスを調べる参考資料として使ってください。
このシリーズではAnimatorを使うルートを進みます。Animationクラスは別の従来の仕組みとして区別してください。また、SetBool・SetTriggerはAnimatorのParameterを変更します。Clip名を指定して直接再生する操作として覚えるのではなく、Controllerに設定した遷移条件とセットで確認しましょう。
切り替わらないときの確認ポイント
AnimatorのControllerに正しいアセットが入っているか、各ステートにClipが設定されているか、Parameterの名前・型がコードと一致しているか、遷移のConditionsやHas Exit Timeが意図に合っているかを順に確認します。入力を調べる前に、Animatorウィンドウで手動の切り替えを試すと原因を絞れます。
リンク先の記事は公開時期や想定環境が異なります。Unityの画面表示や入力方式が違う場合は、使用中のバージョンとプロジェクト設定を確認しながら進めてください。
学んだことを小さな作品につなげる
まずはIdleとWalkの2つだけで、入力に応じて動きが変わるキャラクターを作ってみましょう。できたらAttackを1つ追加し、「入力 → Parameter → ステートの遷移 → イベント処理」の流れを説明してみてください。









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