【Unity初心者向け】Cubeから卒業!Unityちゃんをプレイヤーキャラに導入しよう|追従カメラとの連携まで解説

Unityロゴの前でウィンクしながらポーズを決めるツインテールの女の子。Unityちゃんを操作するチュートリアル記事のアイキャッチ画像。

Unityの基本操作に慣れてきたら、「そろそろ本格的なキャラクターを動かしてみたい」と思う方も多いのではないでしょうか?
私自身、Cubeを使った移動やジャンプの練習を終えて、次は“見た目も動きもゲームらしいキャラ”を使ってみたくなりました。

そんなとき出会ったのが、Unity公式キャラクターの『Unityちゃん』です。
実際に導入して動かしてみると、操作感やアニメーションのリアルさに感動しました。まさにミニゲーム制作の“はじめの一歩”という感覚でした。

この記事では、Unityちゃんの導入手順からシーンへの配置、そしてこれまで作ってきた「追従型カメラ」との連携まで、初心者の方にも分かりやすく丁寧に解説していきます。

ゲームらしさがグンとアップする第一歩。あなたのUnity開発がもっと楽しくなるきっかけになれば嬉しいです!

目次

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

Unity Editorを開きながらノートパソコンで作業している金髪ツインテールの女の子。Unityちゃんをプロジェクトに導入しているシーンをイメージしたイラスト。

Unity公式キャラクター「Unityちゃん」は、可愛らしい見た目と豊富なアニメーションが特徴の3Dキャラです。
実は私、UnityちゃんはAsset Storeでしか入手できないと思い込んでいたのですが、公式サイトからも最新版が提供されていると知って驚きました。

しかも、最新版(v1.4.0)は「Unity Toon Shader」という別のパッケージも必要になるという点に、正直少し戸惑いも感じました。
でも、手順通りに進めれば意外とスムーズにインポートできたので、初心者の方にも安心して試していただける内容です。

Unityちゃんの3Dモデルデータをダウンロード

Unityちゃん公式サイトの3Dモデルデータのダウンロード画面

※画像はユニティちゃん公式サイト(https://unity-chan.com/)より引用
© Unity Technologies Japan/UCL

Unity公式キャラクター「Unityちゃん」の3Dモデルを使えば、見た目の印象が一気に“ゲームらしく”なります。
今回は、最新版であるv1.4.0を使用します。

このバージョンを利用するには「Unity Toon Shader」のインストールが必要です。
後述の手順であわせて導入しますのでご安心ください。

Unityへのインポート

UnityちゃんのアセットをUnityにインポートする画面

ダウンロードした.unitypackage を、UnityエディターのProject内のAssetsフォルダにドラッグ&ドロップするだけでインポートできます。

インポートウィンドウが表示されたら、すべてのチェックボックスに✔を入れて「Import」をクリックしましょう。

Toon Shaderを簡単に導入しよう(com.unity.toonshader)

UnityのPackage Managerから Toon Shader を名前指定でインストールする画面

Unityちゃんの見た目を美しく表示するために、**Unity公式のToon Shaderパッケージ(com.unity.toonshader)**を使用します。
この方法ならマテリアルをパーツごとに手動設定しなくても、見た目が一気に整います。

💡 インストール手順

  1. Unityメニューから「Window > Package Manager」を開く
  2. 左上の ボタンをクリック →「Install package by name…」を選択
  3. 下記の名前を入力し、「Install」ボタンをクリック
com.unity.toonshader

この手順により、Unityちゃんのマテリアルが自動的に Toon Shader に適用され、紫色になる表示バグが回避されます。

Unityちゃんプレハブをシーンに配置する

青い衣装のツインテールの女の子が屋外のシーンに立っているイラスト。Unityちゃんのプレハブをシーンに配置した様子をイメージ。

Unityちゃんをインポートしたら、次は実際にシーン上に配置してみましょう。
このセクションでは、Unityちゃんのプレハブを使ってシーンに登場させ、初期構成を確認するまでの流れを紹介します。

Unityちゃんのプレハブを探そう

Unityちゃんのアセットをインポートすると、Projectビュー内にUnityChanのフォルダが追加されます。

Assets/
└── Materials/
└── Scenes/
└──UnityChan/

この中にある unitychan という名前のプレハブ(Unityちゃん本体)を見つけましょう。

シーンにドラッグ&ドロップ!

Unityちゃんプレハブをシーンに配置した様子

unitychan プレハブをHierarchyビューにドラッグ&ドロップすると、シーンにUnityちゃんが出現します。

  • 配置後、TransformのPositionを (0, 0, 0) にリセットすると中央に表示されます。
  • InspectorTransform > Reset を使ってもOKです。

Unityちゃんの構成を確認してみよう(v1.4.0の場合)

Unityちゃん(ver 1.4.0)をシーンに配置し、Hierarchyビューを展開すると、
以下のように「mesh_root」というオブジェクトの下に多くのパーツが細かく分かれているのがわかります。

unitychan
├── Character1_Reference
├── LookPos
└── mesh_root
 ├── cheek
 ├── skin
 ├── hair_front
 ├── uwagi
 ├── tail
 ├── shirts
 └── …(他にも多数の部位あり)

これは最新バージョン(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ちゃんの後ろからカメラが追従しているプレイ画面

次に、カメラオブジェクトにこのスクリプトをアタッチし、追従対象に Unityちゃんの Transform を指定します。

手順

  1. Main Camera を選択
  2. InspectorCameraFollow スクリプトがアタッチされていることを確認
  3. Target フィールドに Hierarchy の unitychan をドラッグ&ドロップ
  4. Cubeオブジェクトは削除する

動作確認してみよう

Unityちゃんの後ろからカメラが追従しているプレイ画面

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

Unityちゃんを操作してみよう(移動&ジャンプ)

草原の中を笑顔でジャンプしながら駆け出す金髪ツインテールの女の子。Unityちゃんの移動とジャンプ操作を表現したイメージイラスト。

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

Unityちゃんに必要なコンポーネントを追加しよう

Rigidbody+Collider+Freeze設定を示すInspector画面

Unityちゃんを物理的に動かすには、まず以下の2つのコンポーネントを追加する必要があります。

Rigidbody(リジッドボディ)

  • Unityちゃんを選択し、Inspector の「Add Component」から Rigidbody を追加
  • 設定項目は以下のように:
項目設定
Use Gravity✅ ON(チェック入れる)
Is Kinematic❌ OFF(チェック外す)

Capsule Collider(カプセル型コライダー)

  • 同様に、Capsule Collider を追加
  • Unityちゃんの体に合わせて CenterHeight を微調整(目安: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ちゃんにスクリプトをアタッチしよう

Unityちゃんに操作スクリプトをアタッチしている様子
  1. Projectビューで上記スクリプトを作成
  2. Hierarchyunitychan を選択
  3. Inspectorにドラッグ&ドロップでアタッチ

デモ用UIを無効化しよう(チェックを外して制御を止める)

UnityちゃんのGUIControllerオブジェクトのチェックを外して非表示にしているInspector画面

再生中に意図しないアニメーションや表情が切り替わってしまう原因のひとつが、
Unityちゃんに最初から組み込まれている「サンプル制御スクリプト」です。

たとえば以下のようなUIや制御スクリプトがアクティブになっていると、SPACEキーや矢印キーなどでモーションが勝手に変化することがあります。

該当GameObject名概要
GUIController表情切替・制御
FaceUpdate表情アニメーション処理
MotionUIモーション変更UIボタン

無効化方法:Inspector上のチェックを外す

削除しても良いのですが、まずはオブジェクトのチェックを外して無効化してみましょう。

▶ 手順:

  1. Hierarchy 上で GUIController(または MotionUI, FaceUpdate)を選択
  2. Inspector の一番上にある チェックボックスをOFF にする
  3. 再生しても表示やアニメーション切り替えが発生しないことを確認

これは「GameObjectを一時的に非アクティブ」にする操作で、後からまた有効化も可能です。

地面オブジェクトに「Ground」タグを設定しよう

地面オブジェクトにGroundタグを設定している様子

ジャンプ後の着地判定を行うには、着地先(地面)に “Ground” タグを付ける必要があります。

✅ 設定手順:

  1. 地面となる Plane などのオブジェクトを選択
  2. Inspectorの上部にある「Tag」→「Add Tag」から Ground を作成
  3. 再度オブジェクトを選び、Tag を Ground に設定

ゲームを再生して動かしてみよう!

Unityちゃんが背を向けて歩いているゲーム画面

再生ボタン(▶)を押して、次の操作ができるか確認してみましょう。

  • WASD:前後左右に移動できる
  • Space:ジャンプできる
  • ジャンプ後、地面に触れたらもう一度ジャンプできる(2段ジャンプにならない)

この段階では、Unityちゃんは背を向けたままスライド移動するように見えます。
これは「アニメーション連動」がまだ行われていないためで、次のステップで対応します。

Animatorと連携してUnityちゃんにアニメーションをつけよう

金髪のツインテールの女の子が仲間たちと一緒に走ったり跳んだりしている様子。Unityちゃんのアニメーション遷移や状態管理をイメージしたイラスト。

キャラクターが動いても、アニメーションが連動していなければ「滑っているだけ」に見えてしまいます。
このセクションでは、Animatorとスクリプトを連携させて、移動やジャンプとアニメーションを自然に同期させる方法を解説します。

なぜアニメーションが動かないのか?

Unityちゃんには最初から Animator が設定されていますが、
キャラクターの動き(移動やジャンプ)とアニメーションが連動していない状態では、
たとえ動いていても「スライドしているだけ」に見えてしまいます。

Animator Controller を確認しよう

まずは、Unityちゃんに割り当てられている Animator Controller を確認します。

▶ 手順

  1. unitychan を選択
  2. InspectorAnimator コンポーネントを見る
  3. Controller という項目に .controller ファイルが指定されていることを確認

デフォルトでは unitychan アセットに含まれる UnityChanActionCheck が設定されています。
その他にはUnityChanARPoseUnityChanLocomotionsの2つのAnimator Controllerが存在するようです。

おすすめのAnimator Controller

Unityちゃんに付属する3つのAnimator Controllerの用途を整理します。

名前説明使用すべきか?
UnityChanActionCheckデモ操作用。SPACEやNextボタンで動く❌(今回の用途には不向き)
UnityChanARPoseAR用ポーズ確認用。動きなし
UnityChanLocomotions移動・ジャンプ・着地などを含む汎用的なキャラクター用Animator今回の用途に最適

今回はUnityChanLocomotionsを使っていくようにしましょう。

Animator Controllerの差し替え方法

Animator Controller を UnityChanLocomotions に切り替えているInspector画面
▶ 手順
  1. unitychan を選択
  2. Inspector > Animator コンポーネントの「Controller」欄
  3. UnityChanActionCheckUnityChanLocomotions に差し替える

Animatorウィンドウでステートを確認しよう

UnityちゃんのAnimatorでWAITからWALKへのステートがつながっている様子

次に、アニメーションの状態(ステート)遷移を確認します。

▶ 手順:

  1. メニューから「Window > Animator」を開く
  2. 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);  // ← 戻さないと「ジャンプしっぱなし」になる
        }
    }
}

UnityChanController.csに貼り付けたら再生ボタン(▶)を押して動かしてみましょう。
UnityちゃんをWASDキーで移動、SPACEキーでジャンプをすれば成功です!

まとめ|Unityちゃんを動かして“自分だけのプレイヤーキャラ”に

UnityちゃんがWASDキーで移動し、Spaceキーでジャンプしている様子

今回は、公式キャラクター「Unityちゃん」を使って、

  • プレイヤーキャラとしての基本操作(WASD移動+ジャンプ)
  • RigidbodyとColliderを使った物理演算
  • Animatorとの連携による自然なモーション制御

というステップを通して、**Unityちゃんを“動かせるプレイヤーキャラ”に仕上げました。

Unityちゃんを導入するだけで、見た目の可愛さや開発モチベーションもぐんとアップしますし、
スクリプトとアニメーションを連動させることで、一気に「ゲームらしさ」が高まります。

あなたのゲームが、ここから始まる!

「Cube」から始まり、「Unityちゃん」へ。
ひとつずつ積み上げていくことで、自分だけのオリジナルゲームに近づいていきます。

これからもUnityを使って、一緒にゲーム開発を楽しんでいきましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次