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!番号で答えてください 😊

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

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

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

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

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

フェルトのぬいぐるみを作ってみる

なぜか作りたくなったので

ダイソーでキットを買ってきて

作ってみました。

難しいけど、楽しい。




#フェルトぬいぐるみ

第十七章(終章) それぞれの旅立ち — 小さな光を抱えて(暁晶の旅団と虚竜ヴェルド)

  幾つかの月日が流れた。暁晶の欠片はいくつかが完璧に戻り、塔は再び守りの光を放つ。人々は選び直し、傷を抱えながらも前へ進む術を見つけた。ヴェルドは核の側に留まる決意をし、完全な敵として滅ぼされることはなかった。彼の存在は警告となり、また守りの一端としての教訓となった。

 旅団の仲間たちはそれぞれの道を歩み始める。ユイはアークで写本の修復と詠唱の教育を行い、古語を守るための図書館を作る。ガロはかつての仲間たちを追い、レオンの背後にある更なる陰謀の痕跡を洗い流すための旅に出る。トウヤは路地で小さな劇団を作り、子どもたちに物語と注意深い選択の大切さを教える。リナは巡礼を続けながら、失われた記憶を新しい儀式で埋めていく。カイは港に戻り、だが以前とは違う。彼は短剣を海辺の杭にかけ、時折遠くへ旅に出ることもある。黎光の担い手としての責務は終わらないが、彼は人々の声に耳を傾けながら小さな光を分け与える道を選んだ。

 ある夕暮れ、カイとリナとトウヤとユイとガロが再びノースリーフの桟橋に集まった。海は静かに光り、遠くにヴェルドの影が浮かぶ。彼らは笑いを交わし、互いの肩を叩いた。

「これで終わりってわけじゃないな」――トウヤが言う。

「終わりは、いつも次の始まり」――ユイが補う。

 カイは波を見つめ、短剣を軽く握った。「でも、今日ここにいるのは、一つの区切りだ。これから先も、誰かが選択を迷うとき、僕らは名を呼び、手を差し伸べる」

 彼らは夜に灯る小さな祭りへ向かった。子どもたちが歌い、老人が昔の名前を口にする。焚き火の周りに集まる人々の顔には、確かな輪郭があった。忘却の影は消えないが、人々はそれを恐れずに選び直す術を学んでいた。

第十六章 選び直す世界 — 再生と代償(暁晶の旅団と虚竜ヴェルド)

  暁晶の核が完全には復元されないまでも、再び輝きを取り戻したとき、周囲の世界が徐々に変わり始めた。塔に宿った欠片はより安定し、風や炎や水や土の守環は以前より確かな調和を見せる。人々の記憶も戻りつつある。だが代償は確かにあった。リナはいくつかの個人的な記憶を失い、その代わりに新しい役割を得た。ユイは書庫で消耗し、知識の一部が薄れた。ガロはレオンのことを完全には赦さないが、己の守る意味を新たに定めた。トウヤは旧知の死に泣き、しかし自らの選択を肯定する道を歩み始める。カイは父の短剣を握り、黎光の担い手としての使命をより深く理解した。

 ヴェルドは核の脇に座し、鱗の一片を人々に返すわけではなかったが、その巨大な体はもはや無差別に虚を撒き散らすことはなかった。彼は孤独な存在のまま、だが世界との新たな均衡の中に留まる道を選んだ。人々は彼を完全には信頼しないが、少なくとも今は「敵」ではなく「難しい守り手」として受け止められていった。

 世界は完全に元へ戻ったわけではない。記憶は戻り、名は再び唱えられるが、新しい痛みも伴う。人々は自らの選択の意味を見つめ直し、忘却の安易な救済に頼らない共同体を再構築していった。小さな祭りが増え、名を祝う儀が各地で行われた。ユイは学術都市に戻り、写本の保全と語り継ぎの制度を整備する仕事を始め、ガロは失った仲間のための慰霊を続け、トウヤは路地で子どもたちに糸の仕込みを教え、リナは巡礼を続けながらも自らの失った記憶を時折取り戻すために静かに祈りを捧げた。

 ある日、カイは静かに海辺の桟橋に立ち、空を見上げた。遠くで、ヴェルドの影が雲の合間に滑るのが見える。彼は短剣を握りしめ、柔らかく呟いた。

「忘れることを与えるのは簡単だ。でも、その代わりに何かを失う。君たちは、その何かを取り戻す道を選んだ。……それでよかったんだ」

 遠くから、リナの声が波音に混じって聞こえた。「私たちはまだ、学ぶ途中よ。けれど、あなたがいてくれるから大丈夫」