Unityの基本操作に慣れてきたら、「そろそろ本格的なキャラクターを動かしてみたい」と思う方も多いのではないでしょうか?
私自身、Cubeを使った移動やジャンプの練習を終えて、次は“見た目も動きもゲームらしいキャラ”を使ってみたくなりました。
そんなとき出会ったのが、Unity公式キャラクターの『Unityちゃん』です。
実際に導入して動かしてみると、操作感やアニメーションのリアルさに感動しました。まさにミニゲーム制作の“はじめの一歩”という感覚でした。
この記事では、Unityちゃんの導入手順からシーンへの配置、そしてこれまで作ってきた「追従型カメラ」との連携まで、初心者の方にも分かりやすく丁寧に解説していきます。
ゲームらしさがグンとアップする第一歩。あなたのUnity開発がもっと楽しくなるきっかけになれば嬉しいです!

Unityちゃんをプロジェクトに導入しよう

Unity公式キャラクター「Unityちゃん」は、可愛らしい見た目と豊富なアニメーションが特徴の3Dキャラです。
実は私、UnityちゃんはAsset Storeでしか入手できないと思い込んでいたのですが、公式サイトからも最新版が提供されていると知って驚きました。
しかも、最新版(v1.4.0)は「Unity Toon Shader」という別のパッケージも必要になるという点に、正直少し戸惑いも感じました。
でも、手順通りに進めれば意外とスムーズにインポートできたので、初心者の方にも安心して試していただける内容です。
Unityちゃんの3Dモデルデータをダウンロード

※画像はユニティちゃん公式サイト(https://unity-chan.com/)より引用
© Unity Technologies Japan/UCL
Unity公式キャラクター「Unityちゃん」の3Dモデルを使えば、見た目の印象が一気に“ゲームらしく”なります。
今回は、最新版であるv1.4.0を使用します。
- 配布サイト:Unityちゃん公式ダウンロードページ
- 使用バージョン:ユニティちゃん 3Dモデルデータ ver 1.4.0(リリース日:2023.02.17)
- 形式:
.unitypackage
このバージョンを利用するには「Unity Toon Shader」のインストールが必要です。
後述の手順であわせて導入しますのでご安心ください。
Unityへのインポート

ダウンロードした.unitypackage
を、UnityエディターのProject
内のAssets
フォルダにドラッグ&ドロップするだけでインポートできます。
インポートウィンドウが表示されたら、すべてのチェックボックスに✔を入れて「Import」をクリックしましょう。
Toon Shaderを簡単に導入しよう(com.unity.toonshader)

Unityちゃんの見た目を美しく表示するために、**Unity公式のToon Shaderパッケージ(com.unity.toonshader
)**を使用します。
この方法ならマテリアルをパーツごとに手動設定しなくても、見た目が一気に整います。
💡 インストール手順
- Unityメニューから「Window > Package Manager」を開く
- 左上の
+
ボタンをクリック →「Install package by name…」を選択 - 下記の名前を入力し、「Install」ボタンをクリック
com.unity.toonshader
Unityちゃんプレハブをシーンに配置する

Unityちゃんをインポートしたら、次は実際にシーン上に配置してみましょう。
このセクションでは、Unityちゃんのプレハブを使ってシーンに登場させ、初期構成を確認するまでの流れを紹介します。
Unityちゃんのプレハブを探そう
Unityちゃんのアセットをインポートすると、Projectビュー内にUnityChan
のフォルダが追加されます。
この中にある unitychan
という名前のプレハブ(Unityちゃん本体)を見つけましょう。
シーンにドラッグ&ドロップ!

unitychan
プレハブをHierarchyビューにドラッグ&ドロップすると、シーンにUnityちゃんが出現します。
- 配置後、TransformのPositionを
(0, 0, 0)
にリセットすると中央に表示されます。 Inspector
でTransform > Reset
を使ってもOKです。
Unityちゃんの構成を確認してみよう(v1.4.0の場合)
Unityちゃん(ver 1.4.0)をシーンに配置し、Hierarchy
ビューを展開すると、
以下のように「mesh_root
」というオブジェクトの下に多くのパーツが細かく分かれているのがわかります。
これは最新バージョン(v1.4.0)特有の構成です。
肌、髪、服、しっぽなどがパーツ単位で分かれており、見た目の再現度が高くなっています。
追従型カメラにUnityちゃんを連携させよう

ゲームらしい臨場感を出すには、プレイヤーキャラに合わせて動く「追従型カメラ」が欠かせません。
ここでは、あらかじめ用意したカメラスクリプトとUnityちゃんを連動させ、常にカメラが後ろから追いかける仕組みを作ります。
追従カメラとは?
ゲームらしさを一気に高める要素のひとつが、「カメラの追従」です。
プレイヤーが移動するたびにカメラが自動で後ろからついてくることで、臨場感や操作性がぐっと向上します。
このセクションでは、すでに作成済の追従カメラスクリプトをUnityちゃんに連動させる方法を解説します。
カメラスクリプトを確認しよう
すでに用意してある CameraFollow.cs
などのカメラスクリプトを確認しましょう。
このような構成になっていればOKです。
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
// 対象となるプレイヤー(Cube)
public Transform target;
// カメラの相対位置(Yが高さ、Zが後ろ)
public Vector3 offset = new Vector3(0f, 3f, -5f);
void LateUpdate()
{
if (target == null) return;
// プレイヤーの位置にオフセットを加えてカメラ位置を決定
transform.position = target.position + offset;
// 常にプレイヤーの方向を向く
transform.LookAt(target);
}
}
Unityちゃんをターゲットに設定しよう

次に、カメラオブジェクトにこのスクリプトをアタッチし、追従対象に Unityちゃんの Transform を指定します。
手順
Main Camera
を選択Inspector
でCameraFollow
スクリプトがアタッチされていることを確認Target
フィールドに Hierarchy のunitychan
をドラッグ&ドロップCube
オブジェクトは削除する
動作確認してみよう

再生ボタン(▶)を押して動かしてみましょう。
少し離れたとことからUnityちゃんをカメラが映していることを確認できれば成功です!
Unityちゃんを操作してみよう(移動&ジャンプ)

いよいよUnityちゃんをプレイヤーキャラとして動かしてみましょう!
このセクションでは、RigidbodyとColliderを活用して、WASDキーによる移動とSpaceキーによるジャンプ操作を実装します。
Unityちゃんに必要なコンポーネントを追加しよう

Unityちゃんを物理的に動かすには、まず以下の2つのコンポーネントを追加する必要があります。
Rigidbody(リジッドボディ)
- Unityちゃんを選択し、
Inspector
の「Add Component」からRigidbody
を追加 - 設定項目は以下のように:
項目 | 設定 |
---|---|
Use Gravity | ✅ ON(チェック入れる) |
Is Kinematic | ❌ OFF(チェック外す) |
Capsule Collider(カプセル型コライダー)
- 同様に、
Capsule Collider
を追加 - Unityちゃんの体に合わせて
Center
やHeight
を微調整(目安:Center = (0, 0.8, 0)
,Height = 1.5
)
Freeze Rotation を設定
Rigidbody の「Constraints」から、以下の3つをすべてチェック
- Freeze Rotation X
- Freeze Rotation Y
- Freeze Rotation Z
移動&ジャンプ用スクリプトを用意しよう
Unityちゃんに動きをつけるには、自分でスクリプトを用意して制御する必要があります。
ここでは、WASDキーでの移動とSpaceキーでのジャンプを実装します。
▶ スクリプト名:UnityChanController.cs
using UnityEngine;
public class UnityChanController : MonoBehaviour
{
private Rigidbody rb;
public float moveSpeed = 20f;
public float jumpForce = 7f;
private bool isGrounded = true;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v) * moveSpeed * Time.deltaTime;
rb.MovePosition(transform.position + move);
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
Unityちゃんにスクリプトをアタッチしよう

Project
ビューで上記スクリプトを作成Hierarchy
でunitychan
を選択Inspector
にドラッグ&ドロップでアタッチ
デモ用UIを無効化しよう(チェックを外して制御を止める)

再生中に意図しないアニメーションや表情が切り替わってしまう原因のひとつが、
Unityちゃんに最初から組み込まれている「サンプル制御スクリプト」です。
たとえば以下のようなUIや制御スクリプトがアクティブになっていると、SPACEキーや矢印キーなどでモーションが勝手に変化することがあります。
該当GameObject名 | 概要 |
---|---|
GUIController | 表情切替・制御 |
FaceUpdate | 表情アニメーション処理 |
MotionUI | モーション変更UIボタン |
無効化方法:Inspector上のチェックを外す
削除しても良いのですが、まずはオブジェクトのチェックを外して無効化してみましょう。
▶ 手順:
Hierarchy
上でGUIController
(またはMotionUI
,FaceUpdate
)を選択Inspector
の一番上にある チェックボックスをOFF にする- 再生しても表示やアニメーション切り替えが発生しないことを確認
地面オブジェクトに「Ground」タグを設定しよう

ジャンプ後の着地判定を行うには、着地先(地面)に “Ground” タグを付ける必要があります。
✅ 設定手順:
- 地面となる
Plane
などのオブジェクトを選択 Inspector
の上部にある「Tag」→「Add Tag」からGround
を作成- 再度オブジェクトを選び、Tag を
Ground
に設定
ゲームを再生して動かしてみよう!

再生ボタン(▶)を押して、次の操作ができるか確認してみましょう。
WASD
:前後左右に移動できるSpace
:ジャンプできる- ジャンプ後、地面に触れたらもう一度ジャンプできる(2段ジャンプにならない)
Animatorと連携してUnityちゃんにアニメーションをつけよう

キャラクターが動いても、アニメーションが連動していなければ「滑っているだけ」に見えてしまいます。
このセクションでは、Animatorとスクリプトを連携させて、移動やジャンプとアニメーションを自然に同期させる方法を解説します。
なぜアニメーションが動かないのか?
Unityちゃんには最初から Animator
が設定されていますが、
キャラクターの動き(移動やジャンプ)とアニメーションが連動していない状態では、
たとえ動いていても「スライドしているだけ」に見えてしまいます。
Animator Controller を確認しよう

まずは、Unityちゃんに割り当てられている Animator Controller を確認します。
▶ 手順
unitychan
を選択Inspector
のAnimator
コンポーネントを見るController
という項目に.controller
ファイルが指定されていることを確認
デフォルトでは unitychan
アセットに含まれる UnityChanActionCheck
が設定されています。
その他にはUnityChanARPose
、UnityChanLocomotions
の2つのAnimator Controllerが存在するようです。
おすすめのAnimator Controller
Unityちゃんに付属する3つのAnimator Controllerの用途を整理します。
名前 | 説明 | 使用すべきか? |
---|---|---|
UnityChanActionCheck | デモ操作用。SPACEやNextボタンで動く | ❌(今回の用途には不向き) |
UnityChanARPose | AR用ポーズ確認用。動きなし | ❌ |
UnityChanLocomotions | 移動・ジャンプ・着地などを含む汎用的なキャラクター用Animator | ✅ 今回の用途に最適 |
今回はUnityChanLocomotions
を使っていくようにしましょう。
Animator Controllerの差し替え方法

▶ 手順
unitychan
を選択Inspector > Animator
コンポーネントの「Controller」欄UnityChanActionCheck
をUnityChanLocomotions
に差し替える
Animatorウィンドウでステートを確認しよう

次に、アニメーションの状態(ステート)遷移を確認します。
▶ 手順:
- メニューから「Window > Animator」を開く
unitychan
を選択すると Animatorウィンドウにステートが表示されます
初期状態では:
WAIT00
(待機)WALK00_B
(後進歩き)- その他ジャンプやポーズなど
が登録されているはずです。
スクリプトを修正してアニメーションを連動させる
UnityChanController.cs
に以下のような修正を加えます。
※そのままコピーしてお使い下さい。
using UnityEngine;
public class UnityChanController : MonoBehaviour
{
private Rigidbody rb;
private Animator animator;
public float moveSpeed = 20f;
public float jumpForce = 7f;
private bool isGrounded = true;
void Start()
{
rb = GetComponent<Rigidbody>();
animator = GetComponent<Animator>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v) * moveSpeed * Time.deltaTime;
rb.MovePosition(transform.position + move);
if (move != Vector3.zero)
{
Quaternion toRotation = Quaternion.LookRotation(move, Vector3.up);
transform.rotation = Quaternion.RotateTowards(transform.rotation, toRotation, 720 * Time.deltaTime);
}
// Animatorにスピード値を渡す
float speed = new Vector3(h, 0, v).magnitude;
animator.SetFloat("Speed", speed);
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
animator.SetBool("Jump", true); // ← 再生トリガー
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
animator.SetBool("Jump", false); // ← 戻さないと「ジャンプしっぱなし」になる
}
}
}
まとめ|Unityちゃんを動かして“自分だけのプレイヤーキャラ”に

今回は、公式キャラクター「Unityちゃん」を使って、
- プレイヤーキャラとしての基本操作(WASD移動+ジャンプ)
- RigidbodyとColliderを使った物理演算
- Animatorとの連携による自然なモーション制御
というステップを通して、**Unityちゃんを“動かせるプレイヤーキャラ”に仕上げました。
Unityちゃんを導入するだけで、見た目の可愛さや開発モチベーションもぐんとアップしますし、
スクリプトとアニメーションを連動させることで、一気に「ゲームらしさ」が高まります。
あなたのゲームが、ここから始まる!
「Cube」から始まり、「Unityちゃん」へ。
ひとつずつ積み上げていくことで、自分だけのオリジナルゲームに近づいていきます。
これからもUnityを使って、一緒にゲーム開発を楽しんでいきましょう!