【Unity】ChatGPT を使ってミニゲームを作った話(その1)
こんにちは、sakataです。
2か月ほど投稿できていなくてすみません。
実は去年の末から年始にかけて、Chat GPT を使ってUnityのミニゲームを作り、「unity 1 week」(Unityを使ったオンラインのゲーム展示会イベント) に参加しました。
Chat GPT を使うと意外と簡単にゲームを作れたので、
今回は「ChatGPTを使ったミニゲーム開発方法」を2回に分けて話をしていきます。
簡単なミニゲームであれば、1~2日ほどあれば作成できると思います。
実際に作成したゲーム ↓
ゲーム内容は、画面に表示される数字の中から1~9の内の欠けている数字をキー入力していく、シンプルなミニゲームです。
はじめに
重要なので先に言及したいことがあります。
ChatGPTを使ったしても、
1回もゲームを作ったことがない人やプログラミングの知識がゼロの人は、ゲーム開発に苦戦すると思います。
というのも、無加工のまま ChatGPT が出力したコードで、ゲームを動かすとバグが発生する可能性が高いです。
そのため、バグを取り除ける能力が必要となります。
初心者用のUnity開発やプログラミングの教本などを一読してから取り組むことをお勧めします。
ChatGPTを使ったゲーム開発方法
開発手順
主に3つの工程で、ゲームを開発を行ないます。
1. ゲーム内容を決める
2. メインのプレイ部分を作成
3. ゲームの完成度を上げていく
この記事では「1. ゲーム内容を決める」を紹介して、2と3は次回紹介します。
自分はすべての工程でChatGPTを使いましたが、部分的な利用でもいいかと思います。
例えば、ゲーム内容を決めたりアイデア作りが苦手な方は、ChatGPTでアイデアづくりを補うでいいと思います。
ゲーム内容を決める
ChatGPTに以下のような内容で質問すると、ゲーム内容を出力してくれます。
『
「ない」のコンセプトのミニゲームを考えて。ただし、以下を考慮して
・シンプルで簡単に作れること
・ランキングを設けること
・プレイして楽しいこと
』
※「ミニゲーム」などの単語を含ませないと大規模なゲームを生成される場合があるので注意です。
出力内容 ↓
コンセプト:
画面に表示されたアイテムの中から「ないもの」(=存在しない、ルール違反、仲間外れ)を探すシンプルなゲームです。
ルール:
スタート画面
- プレイヤーは「スタート」を押してゲームを開始。
- 制限時間(例:60秒)が設定される。
ゲーム画面
- ランダムに表示されるアイテム群(例:数字、文字、図形、動物、色)を観察。
- プレイヤーは「ないもの」を見つけてタップまたはクリックする。
- 例:
- 全部が青い丸なのに、1つだけ赤い四角。
- 1〜9の数字の中で7が抜けている。
- 食べ物の中にひとつだけ家具が混ざっている。
スコアリング
- 正解すればスコアが加算され、不正解ならペナルティ(例:数秒ロス)。
- ラウンドが進むごとに難易度が上がる(例:アイテム数増加、時間制限厳しく)。
ランキング
- 最終スコアとクリア時間が記録され、オンラインランキングに登録可能。
- 毎週トップ3やハイスコアを発表。
楽しさの要素:
直感的操作
画面を見て「ないもの」をタップするだけなので誰でも簡単にプレイ可能。スピード感
制限時間内に素早く見つける必要があるため、集中力と反射神経が試される。競争心
ランキングで他のプレイヤーと競えるため、繰り返し遊びたくなる。
開発の簡易性:
必要な要素:
- アイテム画像やシンボルの簡単なデザイン。
- 正解/不正解のチェックロジック。
- 制限時間とスコアのカウント機能。
- ランキング機能(ローカルでもオンラインでも)。
技術スタック例:
- Webブラウザ向け:HTML/CSS/JavaScript。
- モバイルアプリ:UnityやFlutterなどで簡単に構築可能。
このゲームは視覚的なパズルが中心なので、多くの人が気軽に楽しめるはずです!
出力内容は質問する度に変わります。
自分が面白いゲーム内容だなと思うまで出力を繰り返すのもいいと思いますが、
以下のように考慮部分に要素(例. シューティングゲーム)を追加して出力内容を調整するのもいいと思います
『
「ない」のコンセプトのミニゲームを考えて。ただし、以下を考慮して
・シンプルで簡単に作れること
・ランキングを設けること
・プレイして楽しいこと
・シューティングゲームの要素を入れて
』
また、部分的に面白い内容があったら、次の節のように面白い箇所をピックアップして具体化するのもありだと思います。
ゲーム内容を精査
面白い内容が出力されたら、内容を精査して具体化していきます。
自分は「1〜9の数字の中で7が抜けている。」の箇所のみをゲームにしたかったので、以下のようにChatGPTに入力すると、より具体的なゲームな内容が返ってきます。
『
1~9の数字が大小さまざまで画面上に表示し、そのなかで数が抜けているものをキー入力するゲームが面白そうです
』
出力内容 ↓
素晴らしいアイデアですね!「抜けている数字を探す」ゲームはシンプルで直感的なゲームプレイが可能で、多くの人に楽しんでもらえる内容です。これを元に具体的なゲームデザインを提案します。
ゲーム案:「Missing Number Hunt(抜けている数字探し)」
ルール:
ゲーム開始
- 画面上に1〜9の数字がランダムな大きさ・配置で表示されます。ただし、1つの数字だけが「抜けている」状態。
- プレイヤーは、その「抜けている数字」を素早くキーボードまたはタップで入力します。
時間制限
- 各ラウンドの制限時間は徐々に短縮され、プレッシャーが増していきます(例:初期5秒→ラウンドごとに0.5秒減少)。
正解/不正解の判定
- 正解:次のラウンドに進む+スコア加算。
- 不正解:ゲームオーバー(またはペナルティでスコア減少や時間短縮)。
ゲーム終了
- 制限時間が切れる、または一定回数ミスした時点で終了。
- 最終スコアをランキングに登録可能。
スコアリング:
- 正解時のスコアは以下の基準で決定:
- スピード:入力が早いほど高得点。
- ラウンド数:進むほど1問ごとのスコアが増加。
- ボーナス:連続正解でコンボスコア。
特徴:
視覚的な工夫
- 数字はランダムに動く、回転する、消えるなどのアニメーションを加える。
- 大きさや色が異なることで視認性がランダム化され、緊張感アップ。
挑戦要素
- ラウンド進行で難易度が上がる:
- 抜けている数字が2つになり、順番で入力。
- 数字の範囲が広がる(1〜20、1〜50)。
競争心
- ローカル&オンラインランキングでハイスコアを競う。
- フレンドとスコアを比較可能。
実装の流れ:
画面デザイン
- スタート画面:タイトル、遊び方、ランキング表示。
- ゲーム画面:数字が散らばるシンプルな背景+タイマー&スコア表示。
コアロジック
- 数字を1〜9からランダムに選び、1つを非表示。
- キー入力を受け付け、抜けている数字と照合。
タイム管理
- 各ラウンドごとにタイマーを設定。
- ラウンドごとにタイマー短縮処理。
ランキング
- スコアを保存&表示(ローカルならブラウザのローカルストレージ、オンラインならサーバー)。
簡単なプロトタイプ技術例:
- Web版:HTML/CSS/JavaScript(CanvasやSVGで数字を表示)。
- モバイルアプリ:UnityやFlutterを利用。
- ランキング機能:Firebaseなどのクラウドサービスで手軽に実装可能。
楽しさのポイント:
- 簡単なルールで直感的に楽しめる。
- 徐々に増す難易度で「もっとやりたい!」という中毒性。
- ランキングで他プレイヤーとの競争心が刺激される。
シンプルかつ奥深い楽しさがあるゲームになりそうですね!
先ほどと比べてゲームが具体化しイメージしやすくなりました。
ただし、出力内容によっては「ゲームバランス崩壊してね?」や「このオプション邪魔じゃね?」、「ゲーム性が複雑じゃない」という個所が出ると思います。
そのような個所があったらChatGPTに「XXXの機能はゲームバランスを崩壊するかもしれないです」や「XXXの機能はいらないと思います」といった感じに相談すると、それを対応したゲーム内容で出力されると思います。
このようにゲーム内容を精査していって、内容が気に入ったら実装していきます。逆につまらない内容だったら、はじめからやり直すのがいいかと思います。
終わりに
今回は ChatGPT を使ったゲーム内容決めについてお話しました。
次回はその内容で ChatGPT を使って実際にゲームを作成する作業となります。
具体的には、以下のような流れになる予定です
1. コアの部分を出力する
2. 出力したコードをコピペする
3. 実際に動かす
4. エラーが発生したらコードを修正し、3に戻る
5. 遊べるようになったら、ゲームバランスの調整や完成度を上げていく
私は Unity を使ってゲームを完成させていきますが、別に使い慣れているゲームエンジンにしても支障はないと思います。
ではまた。
補足 (蛇足?)
「はじめに」も言及しましたが、未経験者が ChatGPT を使ったとしても簡単にゲームを作れないかもしれません
ゲーム作りができるかどうかは、最低限のプラグラミング技術とゲーム開発が好きかどうか(何かを生み出したい・作りたい)という気持ちが根底としてあります。
その根底があることでゲーム開発ができ、経験が積まれていきます。
開発の経験がないと ChatGPT のコードに振り回されてバグが取り除けずにどこかで挫折する可能性があります。
(あくまで個人の考えです)

ChatGPT は万能な道具と思わずに、自分を補佐する道具で、開発のメインは自分と認識するのがいいと思います。