AIを使ってドラクエみたいなゲームを作ってみる②

 AIにいわれるがままに

🎮 Step 1:Unityのインストール(最短)

すでに済んでいたらスキップしてOK。

✔ 必要なもの

  • Unity Hub

  • Unity Editor(推奨:LTS版 例:2022.3 LTS

  • Android Build Support
    (Unity Hub → Installs → Editor 右側の方から “Add modules”)


🎮 Step 2:最初の「ドラクエ風2Dプロジェクト」を作る

Unity Hub → 「New Project」
テンプレート:2D Core を選択
プロジェクト名:MyFirstRPG


🎮 Step 3:まず“動く主人公” を作ってみる

C#を触ったことがなくても大丈夫!
これをコピーして Unity に入れたら動きます。


🧙【サンプル①】主人公を上下左右に動かすC#スクリプト

① Unityで作業する

  1. Projectウィンドウで右クリック
    → Create → C# Script
    → 名前:PlayerMove

  2. キャラクター用のスプライト(画像)を Hierarchy にドラッグ(名前:Player

  3. PlayerMove.cs を Playerにドラッグしてアタッチ


② PlayerMove.cs の中身をこれに差し替える

using UnityEngine; public class PlayerMove : MonoBehaviour { public float speed = 3f; private Vector2 input; void Update() { // 入力取得(WASD / 矢印キー) input.x = Input.GetAxisRaw("Horizontal"); input.y = Input.GetAxisRaw("Vertical"); // 移動 transform.Translate(input * speed * Time.deltaTime); } }

これで ↑↓←→でプレイヤーが動くドラクエ風の基礎が完成!


🎮 Step 4:NPC に話しかける仕組みを追加

次に「会話」を作ります。


🧙【サンプル②】話しかけるとテキストが表示される

① UI準備

Unity 上部メニュー
GameObject → UI → Text (TMP) を追加
(画面にテキストが出る)

Textの名前を MessageText に変更
Text の中身は空にしておく(表示なし)

② 会話スクリプトを作る

TalkNPC.cs を作成して中身を差し替え

using UnityEngine; using TMPro; public class TalkNPC : MonoBehaviour { public string message = "こんにちは、旅の人!"; public TextMeshProUGUI messageText; void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Player")) { messageText.text = message; } } void OnTriggerExit2D(Collider2D other) { if (other.CompareTag("Player")) { messageText.text = ""; } } }

③ NPCに設定

  1. NPCオブジェクトに BoxCollider2D をつける(Trigger にチェック)

  2. NPC に TalkNPC をアタッチ

  3. MessageText に UI の Text (TMP) をドラッグ

→ プレイヤーが近づくとセリフが出る!
これで 村人との会話が完成 ✨


🎮 Step 5:スライムと戦闘を作る(最小)

次はドラクエっぽい ターン制の戦闘 を作ります。
ここもコピペで動きます。


🧙【サンプル③】シンプルなターン制バトル

① BattleManager.cs を作る

using UnityEngine; using TMPro; public class BattleManager : MonoBehaviour { public TextMeshProUGUI battleText; int playerHP = 20; int slimeHP = 10; void Start() { battleText.text = "スライムがあらわれた!"; } public void OnAttackButton() { slimeHP -= 4; battleText.text = "ゆうしゃのこうげき! スライムに4ダメージ!"; if (slimeHP <= 0) { battleText.text = "スライムをたおした!"; return; } Invoke("SlimeAttack", 1f); } void SlimeAttack() { playerHP -= 3; battleText.text = "スライムのこうげき! ゆうしゃは3ダメージ!"; if (playerHP <= 0) { battleText.text = "ゆうしゃはたおれた…"; } } }

② Attackボタンを配置

  1. UI → Button (TMP) を作成(名前:AttackButton)

  2. OnClick に BattleManager → OnAttackButton を登録

ボタン連打でターンが進む超シンプル戦闘が完成!


📱 Step 6:Androidに書き出して動かす(最短)

  1. File → Build Settings → Android を選択 → Switch Platform

  2. Build → .apk を作成

  3. Android端末に転送してインストール

これで あなたが作った“ドラクエ風RPG”がスマホで動く!


🚀 次はどう進みたい?(選択式)

あなたの進みたい方向に合わせて、
より具体的なプロジェクト・コード・作業手順を作成します。

どれにしますか?👇

1️⃣ マップ(タイルマップ)を作れるようになりたい

2️⃣ プレイヤーの歩行アニメ(上下左右)をつけたい

3️⃣ 戦闘をもっとドラクエ風にしたい(コマンド式にする)

4️⃣ すべてまとめて「ひな形プロジェクト」一式がほしい

5️⃣ C#の超基礎から教えてほしい(Unity初心者用)

どれでもOK!番号で答えてください 😊

エピローグ — 小さな光は続く(暁晶の旅団と虚竜ヴェルド)

  暁晶は完全に元へ戻ったわけではない。欠けた爪痕や代償は確かに残る。しかし、世界は再び輪郭を取り戻し、人々は選ぶことの重みと尊さを噛みしめた。虚竜ヴェルドは影として存在し続けるが、その存在はもはや単純な破壊者ではなく、忘却と対峙するための警鐘でもある。

 物語は終わらない。人々が名を唱え続ける限り、黎光は新しい担い手たちに渡り、暁晶は小さな光を保ち続けるだろう。カイとその仲間たちの旅は、いつしか伝説となり、新しい語り部たちに織り込まれていく。だが語り継がれるのは単なる勝利譚ではない。忘却と選択、痛みと再生の話だ。

 空は静かに暗くなり、星がまたたく。どこか遠くで、ヴェルドの咆哮が低く響く。それは終わりではなく、「これからも続く問いかけ」だ。

 そして、桟橋の端で短剣を握るカイは小さく笑った。波は寄せては返し、彼らの物語もまた、寄せては返す人々の記憶の中で生き続ける。