1.はじめに|キャラクターアニメーションってなに?
Unityでゲームを作っていて、「キャラクターに動きをつけたい!」と思ったこと、ありませんか?
たとえば「歩く」「走る」「ジャンプする」など、ゲームのキャラクターがリアルに動くことで、プレイヤーにとってもっと楽しい体験になりますよね。でも、「アニメーションって難しそう…」「プログラミングが必要なのかな?」と不安になる人も多いと思います。
実は、Unityにはアニメーションを管理するための便利な仕組み(AnimatorとMecanim)が用意されているので、初心者でも簡単にキャラを動かせるようになります!
このページでは、そんなUnity初心者さんのために「キャラクターアニメーションの基本」を、やさしくステップバイステップで解説していきます。3Dモデルにアニメーションを設定する手順から、スクリプトを使ったアニメーションの切り替えまで、丁寧に紹介していくので安心してくださいね。
この記事を読めば…
- Unityでキャラクターを動かす基本がわかる
- Animator Controllerの使い方がわかる
- よくあるエラーやトラブルも防げる
ようになります!
さあ、一緒にキャラクターに命を吹き込んでいきましょう!
2. Unityで使うアニメーションの基礎知識
キャラクターを動かすには、まずUnityでアニメーションをどう扱うかを知っておくことが大切です。ここでは、基本的なアニメーションの種類や、Animator・Mecanimの仕組みについて、わかりやすく紹介していきます。
アニメーションの3つのタイプ
Unityでは、モデルの種類に応じてアニメーションタイプを選びます。
タイプ | 説明 | おすすめの用途 |
---|---|---|
Humanoid(ヒューマノイド) | 人型キャラクター用 | 人やモンスターなど |
Generic(ジェネリック) | 非人型キャラ用 | 動物やロボットなど |
Legacy(レガシー) | 古いアニメーション形式 | 非推奨(古いプロジェクト用) |
✅ 初心者は「Humanoid」がおすすめ!
Mixamoのような外部サイトからアニメーションを取り込んで、すぐに使えます。
Animatorってなに?
**Animator(アニメーター)**は、Unityのキャラクターに「どのアニメーションを再生するか」を教えるためのコントローラーです。
たとえば…
- 止まっているとき → idleアニメーション
- 移動中 → walkアニメーション
- ジャンプ中 → jumpアニメーション
といった動きの切り替えを自動で行ってくれるのが、Animatorです。
Mecanimってなに?
**Mecanim(メカニム)**は、Animatorを支えるアニメーションシステムの名前です。アニメーションクリップのつなぎ方、パラメータの設定、遷移条件など、すべてこのMecanimが管理してくれます。
🤖 簡単に言うと:
Animatorが「リモコン」、**Mecanimが「中のしくみ」**と考えるとわかりやすいです!
Animator Controllerとは?
Animator Controllerは、複数のアニメーションクリップ(歩く・走る・ジャンプなど)を管理して切り替える「設計図」です。これを使えば、条件に応じて自動でアニメーションが変わるようになります。

次は、実際にこのAnimator Controllerを使って、キャラクターにアニメーションを設定していきましょう!
3. 3Dキャラクターにアニメーションを設定する手順
ここからは、Unity上で実際にキャラクターを動かすための具体的な設定方法を見ていきましょう!
「歩く」「止まる」「ジャンプする」といった動作を、Animatorを使ってキャラクターに設定する方法をステップごとに解説していきますね。
3-1. 3Dモデルのインポート
まずは動かすための「3Dキャラクター」が必要です。以下の方法でUnityにモデルを読み込みましょう。
- Mixamo(https://www.mixamo.com)などから3Dモデルとアニメーションをダウンロードします(形式は
.fbx
がおすすめ!) - Unityの「Project」ウィンドウにファイルをドラッグ&ドロップします。

Mixamoでは「キャラ」も「アニメーション」も無料で手に入ります!初心者に超おすすめのサイトですよ。
▶ Unityで3Dブロック崩しゲームを作る手順を知りたい方はこちらもチェック!
Unityでゲーム開発を始めよう!簡単3Dブロック崩しゲームの作り方
3-2. Animator Controllerを作成しよう
次に、アニメーションの管理役である「Animator Controller」を作成します。
- Projectウィンドウを右クリック
- 「Create」→「Animator Controller」を選びます
- 名前を「Character_Controller」などにしておきましょう

これがキャラクターの「アニメーションの設計図」になります!
3-3. Animatorをキャラクターに設定しよう
- ヒエラルキー(Hierarchy)ウィンドウで、キャラクターを選択します
- インスペクターで「Animator」コンポーネントを確認します(なければ「Add Component」で追加)
- 「Controller」欄に、さっき作った
Character_Controller
をドラッグ&ドロップ!
これで、キャラクターとAnimatorがつながりました!
3-4. アニメーションを設定してみよう
- Animatorウィンドウを開きます(Window → Animation → Animator)
- Projectウィンドウにあるアニメーションクリップ(例:Idle、Walk)をドラッグして、Animatorウィンドウ内に追加
- 「Entry」ノードから最初のアニメーション(Idleなど)へ矢印でつなぎます
(例.Entryを、右クリック「MakeTransition」を選択)

🎯ポイント:
「遷移(Transition)」を作ることで、アニメーションが自動で切り替わるようになります!
3-5. アニメーションを切り替える条件をつけよう
- Animatorウィンドウ上部の「Parameters」タブをクリック
- 「+」ボタンから
Bool
やTrigger
を追加(例:「isRunning」など) - アニメーション同士の矢印(遷移)を選び、条件に「isRunning」がtrueのとき再生…など設定します


これでスクリプトから切り替えられる準備が整いました!
4. パラメータを使ってアニメーションを制御しよう
Animatorには「パラメータ(Parameters)」という便利な仕組みがあります。これは「アニメーションをいつ、どう切り替えるか?」を決めるスイッチのようなものです。
ここでは、スクリプトからアニメーションを切り替える基本的な方法を学びましょう!
パラメータってなに?
パラメータにはいくつかの種類があります:
種類 | 説明 | よく使う場面 |
---|---|---|
Bool(ブール) | true/false(オン・オフ)で切り替える | 走ってるかどうかなど |
Float(フロート) | 数字で制御する | スピードなど |
Int(整数) | 数字で状態を切り替える | モードの切替など |
Trigger(トリガー) | 一度だけ反応するスイッチ | ジャンプ・攻撃など |
🎯たとえば「isRunning」というBoolパラメータをtrueにすれば、Walkアニメーションに切り替わるように設定できます!
スクリプトからパラメータを変更してみよう
Animatorとスクリプトを連携させて、ボタンを押したときにアニメーションが切り替わるようにしてみましょう!
1. スクリプトを作成
プロジェクトウィンドウを右クリック →「Create」→「C# Script」を選んで、新しいスクリプトを作成し、「CharacterAnimator」と名前を付けます。
2. スクリプトを記述
using UnityEngine;
public class CharacterAnimator : MonoBehaviour
{
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
// Wキーを押したら走るアニメーションに切り替える
if (Input.GetKey(KeyCode.W))
{
animator.SetBool("isRunning", true);
}
else
{
animator.SetBool("isRunning", false);
}
}
}
3. スクリプトをキャラクターにアタッチ
ヒエラルキーにあるキャラクターに、このスクリプトをドラッグ&ドロップでアタッチします。
🧠 注意:Animator Controllerに「isRunning」というパラメータを追加しておくのを忘れずに!
Triggerを使ったアニメーション切り替え(ジャンプなど)
Triggerは、押した瞬間だけ反応して切り替わるパラメータです。ジャンプや攻撃など、1回きりのアクションにピッタリ!
if (Input.GetKeyDown(KeyCode.Space))
{
animator.SetTrigger("Jump");
}

ゲームを再生して、Wキーを押してみましょう。キャラクターが歩き(もしくは走り)アニメーションに切り替わったら大成功です!
💡キャラクターにスクリプトで動きをつける基本はこちらの記事も参考になります!
Unity初心者向け:CharacterControllerでキャラクター操作と発射機能を作成する方法
5. キャラを動かす!スクリプト連携の基本
ここでは、実際にキャラクターを動かしながらアニメーションを切り替える方法を解説します。
「移動してるときに歩く」「止まってるときにIdle(待機)」など、アニメーションとキャラの動きを連動させて、より自然な動作を目指してみましょう!
まずはキャラクターを移動させる
以下のような簡単なスクリプトで、キーボード操作(WASD)でキャラクターを動かします。
スクリプトを作成
プロジェクトウィンドウを右クリック →「Create」→「C# Script」を選んで、「CharacterMove」と名前をつけましょう。
スクリプトの内容はこちら👇
using UnityEngine;
public class CharacterMove : MonoBehaviour
{
public float moveSpeed = 3f;
Animator animator;
Rigidbody rb;
void Start()
{
animator = GetComponent<Animator>();
rb = GetComponent<Rigidbody>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v);
// 移動してるかチェック(歩いている=true)
bool isMoving = move.magnitude > 0.1f;
animator.SetBool("isRunning", isMoving);
// 実際に動かす
Vector3 moveDir = transform.TransformDirection(move);
rb.MovePosition(transform.position + moveDir * moveSpeed * Time.deltaTime);
}
}
スクリプトをキャラクターに設定しよう
- キャラクターにRigidbodyがアタッチされていることを確認(なければ追加)
- ヒエラルキーのキャラクターに、作成した
CharacterMove
スクリプトをドラッグ&ドロップでアタッチ - Animator Controllerの中に「isRunning」というBoolパラメータを忘れずに追加しておきましょう!
アニメーション切り替えの仕組み
- キーを押すとキャラクターが移動する
- 移動してる間は「isRunning = true」なので、歩くアニメーションに切り替わる
- 止まったら「isRunning = false」なので、Idle(待機)アニメーションに戻る
このように、動きとアニメーションをセットで連動させることで、ゲームの見た目が一気に自然になります!
うまく動かないときのチェックポイント
- Animator Controllerに「isRunning」パラメータがあるか?
- 遷移の設定で「isRunning = true」でWalk、falseでIdleになっているか?
- スクリプトが正しくアタッチされているか?
6. よくあるトラブルと解決法
Unityでキャラクターアニメーションを設定していると、うまく動かない・再生されないといったトラブルに出会うことがあります。でも大丈夫!よくある原因とその直し方を知っておけば、すぐに解決できますよ。
❗うまくいかないときはこちらの記事も参考にどうぞ
Unityのスクリプトが動かない!初心者がつまずく5つの原因と修正法
トラブル① アニメーションが再生されない!
原因として多いのは…
- Animator Controllerがキャラに設定されていない
- アニメーションクリップが遷移に登録されていない
- パラメータが設定されていない or スペルミスしている
対処法:
- キャラにAnimatorがついているか確認
- Animator Controllerがセットされているか確認
- Animatorウィンドウで「Entry → Idle」などにちゃんとつながっているか確認
SetBool("isRunning", true)
など、パラメータ名のスペルをチェック!
📝スペルミスが超ありがちです!”isRunning”と”IsRunning”は違うので注意!
トラブル② モデルが変な方向に動く・地面に沈む!
これは、インポートした3Dモデルの設定が原因なことが多いです。
チェックポイント:
- インポートしたモデルの「Rig」タブ → Animation Type が「Humanoid」になっているか?
- 「Apply Root Motion」のチェックをはずすと、移動バグが直ることがあります
- モデルのスケールが0.01など小さすぎないか?
トラブル③ 走るアニメーションに切り替わらない
「Wキー押してもIdleのまま…」というときは、スクリプト側の動作を見直しましょう。
animator.SetBool("isRunning", true);
この行が呼ばれているか、ConsoleにDebug.Log("移動中!")
などを入れて確認してみるとわかりやすいですよ!
トラブル④ キャラがアニメーション中に動かない(その場で足踏み)
これは、アニメーションクリップにRoot Motionが含まれているのに、それが使われていないケースです。
解決方法:
- キャラクターのAnimatorコンポーネントにある「Apply Root Motion」をオンにしてみましょう
トラブル⑤ Animatorウィンドウでノードが動かない?
再生中にAnimatorウィンドウを開いても、アニメーションのノード(状態)が切り替わらないときは…
- 正しいGameObjectを選択しているか?
- ステート遷移に「Exit Time」が設定されている場合、すぐに切り替わらないことも

一つずつ落ち着いてチェックすれば、原因は必ず見つかります!「スクリプト」「Animator」「モデルの設定」この3つを順に確認しましょう。
7. まとめ|まずは基本をマスターして動かしてみよう
ここまで読んでいただきありがとうございます!
Unityでキャラクターアニメーションを動かすのって、最初はちょっと難しそうに見えますよね。でも、やってみると意外とシンプル。
Animatorとパラメータ、スクリプトを少しずつ組み合わせることで、「止まる・歩く・ジャンプする」など、ゲームらしい動きが簡単に再現できちゃいます!
👇ほかにもUnityでキャラクターを動かす方法を知りたい人はこちら!
Unity初心者向け!クリック位置にオブジェクトを向ける方法を徹底解説
👣今日学んだポイントまとめ
- UnityのアニメーションにはAnimator ControllerとMecanimを使う
- 3DモデルにAnimatorを設定して、アニメーションクリップを登録
- スクリプトで
SetBool()
やSetTrigger()
を使って動きにあわせて切り替え - よくあるエラーも、落ち着いて見直せばしっかり直せる!
🎒初心者におすすめのアセット紹介
アニメーション付きのキャラや、サンプル付きのコントローラーがあれば、さらに楽しく練習できます。以下のアセットは特におすすめです!
アセット名 | 内容 | URL(Asset Store) |
---|---|---|
RPG Character Mecanim Animation Pack | 剣や魔法などRPG向けモーション | 初心者にも扱いやすい |
Final IK | 上級者向けのIK制御ツール | 精密な動きにチャレンジしたい人に |

🎮 まずは無料アニメーションとMixamoで、好きなキャラを動かしてみるところから始めてみましょう!
Unityのアニメーションは「作る」より「組み合わせる」が基本。難しく考えず、楽しく動かしていきましょうね!
あわせて読みたい
Unityでキャラクターアニメーションをさらにレベルアップさせたい方は、以下の記事もおすすめです!
🎓 キャラの動きや操作を強化したいなら
- Unity初心者でもできる!NavMeshAgentで簡単なAI追尾機能を作ろう
→ 自動で敵が追いかけてくる動きをつけたい人に! - UnityでAIを実装!ビヘイビアツリーと状態マシンで賢いNPCを作る方法
→ 状態管理で自然な動きを作りたい人に! - Unity初心者向け:CharacterControllerでキャラクター操作と発射機能を作成する方法
→ 物理演算ではなく「キャラ操作専用のコンポーネント」で動かしたい人へ
💡 アニメーション関連のスクリプトを学びたいなら
- 【Unity】2DアクションRPGの作り方②!フィールド・攻撃モーションの設定
→ 2Dゲームでも応用できる!攻撃やモーションの基本がわかります。 - Unity初心者必見!クリック位置にオブジェクトを向ける方法を徹底解説
→ プレイヤーの向きに応じたアニメーション連携のヒントにも!
よくある質問(FAQ)
- QAnimatorとAnimationってどう違うの?
- A
「Animator」は複数のアニメーションを管理して切り替える**仕組み(Mecanimシステム)**です。
一方「Animation」は古い方法で、単体のアニメーションを再生するだけの機能です。
今のUnityでは、Animatorを使った制御が主流です。
- Qアニメーションが再生されないんだけど…?
- A
以下のチェックをしてみてください:
- キャラに「Animator」がアタッチされているか?
- Animator Controller が設定されているか?
- アニメーションの遷移(Transition)が設定されているか?
- パラメータ名がスクリプトと一致しているか?
✅特にスペルミスに要注意!
- Qパラメータの「Trigger」と「Bool」はどう使い分けるの?
- A
- 「Bool」は「on/off」を切り替えるような継続系の動作(例:走る・歩く)に使います。
- 「Trigger」は「一度だけ起きる」動作(例:ジャンプ・攻撃)に使うのがベスト!