ゲームプログラミング独学ブログ

ゲームプログラミングを初心者・未経験から独学で身に着けるための情報をまとめていきます。Unityを使った2D・3Dゲームの開発方法やゲームクリエイターになるための情報もまとめていきます。

Unityで作る!マリオ風3Dアクションゲーム入門ガイド

【必見】ゲームプログラミング初心者向けのUnityを使ったゲームプログラミング講座サイト「Unity入門の森」の講座ショップ。RPG、アクションゲーム、ノベルゲーム、タワーディフェンス、FPS、レースゲーム、ローグライクゲームと盛りだくさんの講座サイトです。ここで独学でゲーム開発できるようになりました。

Unityを使って、あのマリオのような3Dアクションゲームを作ってみませんか?

初心者でもわかりやすい手順で、キャラクター操作からステージ構築、敵の配置まで丁寧に解説します。

また、最後には学習を進めるための役立つリソースもご紹介します。

Unityの基本操作とプロジェクト設定

Unityを初めて使う方は、ツールの全体像を把握することが重要です。

必須の初期設定

  1. Unity Hubのインストール
    Unity Hubは、Unityプロジェクトを管理するための公式ツールです。公式サイトからダウンロードしてインストールしてください。

  2. 新規プロジェクトの作成

    • Unity Hubを開き、「新規作成」をクリック。
    • テンプレートは「3D」を選択。
    • プロジェクト名は自由ですが、ここではMarioStyle3Dとします。
    • 保存場所を設定して作成をクリック。
  3. 作業領域の確認

    • シーンビュー:3D空間を編集するメイン画面。
    • ヒエラルキー:プロジェクト内のオブジェクトの一覧。
    • インスペクター:オブジェクトの詳細設定。

キーボードショートカット

  • 移動: マウス右クリック + WASDキー。
  • ズーム: マウスホイール。

プレイヤーキャラクターの作成と操作

3Dアクションゲームではキャラクター操作が基本です。ここでは、簡単なプレイヤーキャラクターを作成します。

モデルのインポート

  1. Unityアセットストアで無料のキャラクターモデルをダウンロードします(例:Robot Kyle)。
  2. モデルをインポートするには、アセットストアから「ダウンロード」→「プロジェクトに追加」を選択。

リジッドボディとコライダーの設定

  1. インポートしたモデルをシーンにドラッグ。
  2. リジッドボディ(物理挙動)を追加。
    • 選択したモデルの「Inspector」ウィンドウで「Add Component」をクリック。
    • Rigidbodyを検索して追加。
  3. コライダー(当たり判定)を追加。
    • 同様にCapsule Colliderを追加。

スクリプトを使った移動処理

以下のスクリプトを作成し、キャラクターにアタッチします。

 

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;
    public float jumpForce = 5f;
    private Rigidbody rb;

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

    void Update()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
        rb.AddForce(movement * speed);

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

ゲームステージのデザインと構築

ゲームにおけるステージは、プレイヤーの冒険を形作る重要な要素です。

地形ツールで地面を作成

  1. GameObject > 3D Object > Terrainを選択して地形を追加。
  2. Terrainツールバーで「ペイント」オプションを選択。
    • 丘や谷を作ることでステージに変化をつけましょう。

プラットフォームの追加

  1. GameObject > 3D Object > Cubeで足場を作成。
  2. サイズを調整し、ステージ上に配置。
  3. 同様に複数の足場を作成し、プレイヤーがジャンプして移動できるようにします。

敵キャラクターの配置と簡単なAI設定

ゲームの面白さを高めるには、動く敵キャラクターが欠かせません。

敵の配置

  1. Unityアセットストアから無料の敵キャラクターモデルをダウンロード(例:Basic Enemy)。
  2. シーン上に敵を配置。

トロールAIの作成

敵が特定のポイント間を巡回する簡単なAIを設定します。

  1. シーン内に「空のオブジェクト」を作成し、巡回ポイント用のオブジェクト(例:PointA、PointB)を配置。
  2. 以下のスクリプトを敵キャラクターに追加します。
 

using UnityEngine;

public class EnemyAI : MonoBehaviour
{
    public Transform[] points;
    private int destPoint = 0;
    private UnityEngine.AI.NavMeshAgent agent;

    void Start()
    {
        agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
        GoToNextPoint();
    }

    void GoToNextPoint()
    {
        if (points.Length == 0)
            return;

        agent.destination = points[destPoint].position;
        destPoint = (destPoint + 1) % points.Length;
    }

    void Update()
    {
        if (!agent.pathPending && agent.remainingDistance < 0.5f)
            GoToNextPoint();
    }
}

 

さらなる学習とUnity入門の森の活用

Unityでのゲーム開発の基本を理解した後は、Unity入門の森の「Unity 2Dアクションの作り方」を活用するのがおすすめです。

2Dアクションの基礎を学ぶことで、より高度なゲーム開発スキルを身につけることができます。

まとめ

  • Unityの基本操作から、キャラクターや敵の設定まで解説しました。
  • シンプルな構造でも、少しずつ工夫することでゲームは完成します。
  • 次のステップとして、より高度なUnityの機能を学んでみましょう。

ゲーム開発の道はここから始まります。ぜひ、自分だけのゲームを完成させてみてください!