【Unity初心者】Cubeオブジェクトを動かしたりジャンプさせよう|物理挙動で学ぶ操作制御入門

UnityでCubeを移動・ジャンプさせるチュートリアル記事のアイキャッチ画像。初心者向けの操作解説をイメージ

Unityを始めたばかりのころ、
「まず何かオブジェクトを動かしてみたい!」
と思った経験はありませんか?

本記事では、Unity初心者向けに、最もシンプルなオブジェクト「Cube」を使って、
WASDキーでの移動操作と、スペースキーでジャンプさせる方法を、やさしく・丁寧に解説していきます。

このチャレンジを通じて
**「物理挙動(Rigidbody制御)」**の基本を身につけることができ、これから本格的なキャラクター操作やゲーム作りに進むための、大事な土台作りになります。
※今回はアニメーションではなく、物理的な制御に注目します。

こんな方におすすめ!

  • Unityの基本操作を体験したい
  • 自分でスクリプトを書いてオブジェクトを動かしたい
  • ゲーム開発に向けて「物理挙動の制御」に慣れたい

一緒に、Unityの世界を一歩ずつ進めていきましょう!

使用バージョンは Unity 2022.3(LTS)を使って進めていきます!

目次

UnityプロジェクトとCubeの準備

Unityでオブジェクトを動かすために、まずはプロジェクトを作成し、シーンにCubeを配置していきましょう!

シンプルなステップなので、初めての方でも安心して進められます。

新しいプロジェクトを作成する

Unity Hubで3Dプロジェクトを新規作成する画面

まずはUnity Hubを開き、新しいプロジェクトを作成します。

  1. Unity Hubを起動します。
  2. 「新しいプロジェクト」をクリックします。
  3. テンプレートは「3D(Built-In Render Pipeline)Core」を選択します。
  4. プロジェクト名は分かりやすく「CubeMoveJump」としましょう。
  5. 保存場所を指定して「作成」を押します。

これで、移動・ジャンプを試すためのシンプルな3D環境が整いました!

Plane(地面)オブジェクトを配置する

UnityエディターでPlane(平面)を追加する画像

プロジェクトが立ち上がったら、まずシーンに舞台となるPlane(地面)を配置していきます。

  1. Hierarchy(ヒエラルキー)ウィンドウ上で右クリック
  2. 【3D Object】→【Plane】を選択します
  3. シーン中央にPlane(地面)が配置されます
    ※もし中央に配置されていない場合、インスペクターのTransformPositionを全て0にする

Cubeオブジェクトを配置する

UnityのHierarchyウィンドウからCubeオブジェクトを作成する手順

プロジェクトが立ち上がったら、次はシーンにCubeオブジェクトを配置していきます。

  1. Hierarchy(ヒエラルキー)ウィンドウ上で右クリック
  2. 【3D Object】→【Cube】を選択します
  3. シーン中央に白いCubeが配置されます

これが、今回操作の対象になるオブジェクトです。

CubeオブジェクトがPlane(地面)に埋もれている場合は、CubeオブジェクトのTransformPositionYを0.5ほど上にあげるなど調整してみて下さい

Rigidbodyコンポーネントを追加する

UnityエディターでCubeにRigidbodyコンポーネントを追加する操作

次に、Cubeに「物理挙動」を持たせるためのコンポーネントを追加します。

  1. HierarchyでCubeを選択
  2. Inspector(インスペクター)ウィンドウで「Add Component」をクリック
  3. 「Rigidbody」と検索し、追加します

これでCubeに重力や物理演算が働くようになりました!

Rigidbodyがあることで、ジャンプや落下など「現実っぽい動き」ができるようになります。

Rigidbodyを追加するだけで、Unityは自動的に重力や衝突などの物理演算を有効にしてくれます。

Rigidbodyとは、オブジェクトに“重さや運動”の性質を持たせるためのコンポーネントです。
Unityの物理演算(重力・衝突・跳ね返りなど)を使うには、まずこのRigidbodyを追加する必要があります。

Cubeを移動させる(WASDキー操作)

UnityでCubeをWASDキーで操作している様子を表すイメージ図。物理挙動での移動制御を表現。

Cubeを前後左右に動かせるように、
WASDキーの入力を受け取り、Rigidbodyを使って物理的に動かすスクリプトを作成します。

これができると、ゲームキャラクターの**「基本の移動操作」**が自分で制御できるようになります!

移動用スクリプトを作成する

UnityエディターでCube用のC#スクリプトを作成する操作画面
  1. Assets フォルダで右クリック → Create > C# Script
  2. スクリプト名を CubeMover にします
  3. Cube オブジェクトを選択し、作成したスクリプトをドラッグ&ドロップでアタッチします

スクリプトがCubeに紐づいた状態になります!

UnityエディターでCubeオブジェクトにC#スクリプトをアタッチする

WASD入力を受け取る仕組みを理解しよう

CubeMoverファイルを開き、以下のようなコードを記述します。

using UnityEngine;

public class CubeMover : MonoBehaviour
{
    public float moveSpeed = 5f;
    private Rigidbody rb;

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    private void FixedUpdate()
    {
        float moveX = Input.GetAxis("Horizontal");
        float moveZ = Input.GetAxis("Vertical");

        Vector3 move = new Vector3(moveX, 0f, moveZ) * moveSpeed;
        rb.velocity = new Vector3(move.x, rb.velocity.y, move.z);
    }
}

解説

  • Input.GetAxis("Horizontal") → A・Dキー(または←→キー)
  • Input.GetAxis("Vertical") → W・Sキー(または↑↓キー)
  • FixedUpdate() → Rigidbodyを扱うときに使うフレーム制御関数

WASDの入力をリアルタイムに取得し、Rigidbodyの速度として反映させます。

Cubeオブジェクトが回転してしまうときは…

UnityエディターでFreeze Rotationを設定する

Rigidbodyを使った移動では、オブジェクトが物理的に回転してしまうことがあります。
それが気になる場合は、Cubeのインスペクターで Constrains→Freeze Rotation のX/Zにチェックを入れておくと、地面の上をまっすぐ動かすことができます。

今回はCubeオブジェクトの物理さしさを生かすため、回転はあえてそのままでもOKです。
お好みに合わせて設定してみてください。

Cubeオブジェクトをジャンプさせる(スペースキー)

Cubeをジャンプしようとしているイメージ図。

キャラクターのジャンプは、ゲームらしい操作のひとつです。
ここでは Cube にジャンプ機能を追加して、スペースキーで「ぴょんっ」と跳ねる動きを実装してみましょう!

スクリプトにジャンプ処理を追加する

前回作成した CubeMover.cs に、ジャンプのための変数と処理を追記します。

public float jumpForce = 5f;
private bool isGrounded = true;

そして Update() メソッド内に以下の処理を追加します

if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
    rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
    isGrounded = false;
}

このコードではスペースキー押下と「地面にいるとき」にジャンプできるようにしています。

地面に触れたら再びジャンプできるようにする

ジャンプのあとに再びジャンプができるように、
OnCollisionEnter() を使って「何かに触れたら着地したとみなす」処理を追加します。

private void OnCollisionEnter(Collision collision)
{
    isGrounded = true;
}

ここではすべてのオブジェクトとの接触で isGrounded = true にしていますが、
あとで「地面だけに限定する」処理も追加可能です。今回は省略します。

完成したジャンプコードの全体像

最終的に、CubeMover.cs は以下のようになります。

using UnityEngine;

public class CubeMover : MonoBehaviour
{
    public float moveSpeed = 5f;
    private Rigidbody rb;

    public float jumpForce = 5f;
    private bool isGrounded=true;

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
    private void Update()
    {
        // ジャンプ
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
            isGrounded = false;
        }
    }
    private void FixedUpdate()
    {
        float moveX = Input.GetAxis("Horizontal");
        float moveZ = Input.GetAxis("Vertical");

        Vector3 move = new Vector3(moveX, 0f, moveZ) * moveSpeed;
        rb.velocity = new Vector3(move.x, rb.velocity.y, move.z);
    }
    private void OnCollisionEnter(Collision collision)
    {
        // 地面に触れたら再ジャンプ可能にする(Planeなど)
        isGrounded = true;
    }

}

動きの完成!プレイしてみよう

Cubeオブジェクトを移動させたりジャンプさせている画像

これまでの作業で、CubeはWASDキーでの移動スペースキーでのジャンプができるようになりました。
ここでは、実際にプレイして動作を確認してみましょう。

ゲームを再生して操作を試そう

Unityエディター上部の【▶️再生ボタン】をクリックすると、
ゲームがスタートします。

以下の操作を試してみましょう

操作キー内容
W / A / S / D前後左右に移動
Spaceジャンプ(空中では無効)

スムーズに動けば成功です!

思った通り動かないときのチェックポイント

うまく動かない場合は、次のポイントを確認してみてください:

移動しない場合

  • RigidbodyがCubeにアタッチされているか
  • スクリプト内の moveSpeed が0になっていないか

ジャンプしない場合

  • Input.GetKeyDown(KeyCode.Space)Update() に書かれているか
  • isGroundedfalse のままになっていないか(OnCollisionEnter の書き忘れ)

回転してしまうのが嫌な場合

  • Rigidbody の Freeze Rotation(X/Z) にチェックを入れると安定します

まとめ|操作制御の第一歩を体験しよう!

Unity初心者がCube操作を学び終えた達成感を表現したイラスト。シンプルな成功体験のイメージ

今回の記事では、Unityで最もシンプルな3Dオブジェクト「Cube」を使って、

  • キーボードでの移動(WASD)
  • ジャンプ(スペースキー)
  • Rigidbodyによる物理挙動の基本

を一つずつ確認しながら、ゲームの操作制御の基礎を体験しました。

これだけのシンプルな構成でも、

  • 動くって面白い!
  • ゲームっぽくなってきた!
  • Rigidbodyってこう使うんだ!

という、小さな「気づき」と「できた!」を得られたはずです。

それこそが、Unity初心者にとって一番大切なステップです。

次のステップに進みたくなったら…

もしあなたが「もっと見た目を整えたい」「キャラクターっぽくしたい」と思ったら、
次は アニメーション付きの3Dキャラクターで、同じように移動やジャンプを実装してみましょう!

あるいは、**カメラの視点をプレイヤーに追従させたい!**と感じたなら、
次は Unity標準のカメラを使って、カメラをキャラクターに追従させる方法をチェックしましょう。

読者様への一言

読者の方へ向けたメッセージのイメージ。

Unityの開発は、ひとつずつ動かして試すことが最短ルートです。

うまくいかなくても大丈夫。
次に「なぜだろう?」と手を止めて考える時間こそが、
あなたの実力をグンと伸ばしてくれます。

📌このブログでは、Unityをこれから学ぶ方へ向けて、
「動く楽しさ」「わかる安心感」を軸に、丁寧な記事を発信しています。

また一歩進みたいときに、ぜひ戻ってきてくださいね!
次のチャレンジも、一緒に取り組んでいきましょう😊

使用しているソフトウェア

  • Unity Editor 2022.3.61f1(LTS)
    ※本文中のエディター画面のスクリーンショットは、Unity Technologies社が提供する開発環境の画像を紹介・解説目的で引用しています。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次