Unityでマリオ風3Dアクションゲームを作る: 基礎から完成まで
Unityを使用して、簡単な3Dアクションゲームを作成したいと考えている方のためのガイドです。本記事では、プロジェクトのセットアップからキャラクター操作、ステージデザイン、敵のAI設定までを、実際のコード例を交えて説明します。
必要な準備
環境設定
-
Unity Hubをインストール
Unity公式サイトからUnity Hubをダウンロードします。 -
新規プロジェクトを作成
- テンプレート: 3D
- プロジェクト名:
MarioStyle3D
必要なリソース
- キャラクターと敵のモデル(Unity Asset Storeからダウンロード可能)
- 基本的なC#スクリプトの理解
キャラクター操作の実装
まず、プレイヤーキャラクターを操作可能にします。
モデルの設定
-
モデルのダウンロード
Unityアセットストアで無料のキャラクターモデル(例: Robot Kyle)をダウンロードします。 -
モデルの配置
ダウンロードしたモデルをシーンにドラッグして配置します。
移動スクリプト
以下のスクリプトを作成し、キャラクターにアタッチします。
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
public float jumpForce = 7f;
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);
}
}
}
ステージデザイン
次に、ゲームの舞台となるステージを作ります。
地形の作成
-
Terrainオブジェクトを追加
GameObject > 3D Object > Terrain
を選択します。 -
地形ツールを使用
ペイント機能で起伏をつけ、リアルな地形を作成します。
足場の配置
敵が巡回する簡単なAIを実装します。
巡回AIのスクリプト
以下のコードを敵に適用します。
using UnityEngine;
public class EnemyPatrol : MonoBehaviour
{
public Transform[] patrolPoints;
private int currentPoint = 0;
public float speed = 3f;
void Update()
{
if (patrolPoints.Length == 0) return;
Transform target = patrolPoints[currentPoint];
transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
if (Vector3.Distance(transform.position, target.position) < 0.1f)
{
currentPoint = (currentPoint + 1) % patrolPoints.Length;
}
}
}
ビルドとデプロイ
ビルド設定
-
File > Build Settings
を開き、ターゲットプラットフォームを選択します。 - 必要に応じて解像度や設定を調整します。
ビルド実行
- プロジェクトをビルドして、PCやスマートフォン用にエクスポートします。
- エクスポート後、動作確認を行い、必要に応じて調整します。
さらなる学習リソース
Unityでのスキルを向上させるには、Unity入門の森が非常に役立ちます。
2Dゲームの基礎を学ぶことで、さらに洗練された3Dゲームを作成するスキルを得られます。
まとめ
- Unityでマリオ風3Dアクションゲームを作成する基礎手順を学びました。
- キャラクター操作や敵AIの設定を行うことで、動的なゲームを完成させられます。
- 次のステップは、さらなるカスタマイズや高度な機能の実装です。
ゲーム開発の楽しさを存分に味わってください!