敵も罠もない探索から「猫パンチとひみつの迷宮」へ

ゲームを作らせてみた

最初から、猫がネズミを殴るゲームを作ろうと思っていたわけではありません。

最初に頼んだのは、部屋を移動してゴールへ行くだけの3Dダンジョンでした。敵も罠もありません。まず動くものを作り、遊んでから次を考えることにしました。

そこへランダムマップ、難易度、ゲームパッド、猫、ネズミ、猫パンチ、HP、罠を加えていきました。最後には「猫パンチとひみつの迷宮」という名前のゲームになりました。タイトルを考えて変更する作業までAIに頼みました。

第3段階では、Codex上のAstraに、一度に完成仕様を渡さず、段階的にゲームを育ててもらいました。

※Astraは、ChatGPTを提供するOpenAIのAIモデル「GPT-6 Astra」です。今回は、ファイルの作成やテストをAIに任せる開発ツール「Codex」で使っています。AstraとCodexとは。

制作・動作確認はWindowsのPCで行っています。筆者の使用環境と、macOS・Linuxなどで手順を読み替える際の案内は、準備編をご覧ください。

猫パンチとひみつの迷宮

猫・ネズミ・罠が加わった完成段階の画面です。右上には探索途中の地図、右側にはHP 3/5が表示されています。

最初は、歩いてゴールできればいい

最初の指示は次のとおりです。

3D見下ろし型のダンジョン探索ゲームを作りたい。
プレイヤーは部屋から部屋へ移動してゴールを目指す。
1つの部屋から進める次の部屋は、戻る方向を含めて最大4方向。
まずは敵や罠などは一切なしで、スタートから複数の部屋を移動してゴールできるところまで作って。

最初の指示ではUnityと指定していませんでした。すると、ブラウザ版にするか、それとも作業フォルダに以前作成したUnity版があるので今回もUnityで作成するかを聞かれました。そこで、「Unityで作って」と回答しました。

AIは分岐と行き止まりのある12部屋を用意し、探索マップ、ゴール判定、リスタートを追加したと報告しました。操作はWASDか矢印キーです。金色のクリスタルに触れるとクリアする構成でした。

ビルド時にはライセンスサービスへの接続制限に対処したという進捗報告もありましたが、その後、ビルドと自動テスト、実画面の表示確認を終えたと報告されました。

私は外部チャットへ、こう書いています。

きっちり3Dで仕上げてきやがった。ロボ君静止画だと分からないだろうが影含めて3Dだ。迷路の答えが右上にあるのは審議あるがw

動くものはできました。ただ、すぐに次の注文が見えてきました。

最初の探索ゲーム

初期の探索ゲームです。主人公はまだ猫ではなく、敵も罠もありません。6/12部屋を探索した段階で、右上の地図にはゴールのGも表示されています。

答えが見えていると、探索する楽しみが薄い

右上のマップには、最初から全体の構造とゴールが表示されていました。部屋を探索するゲームなのに、行き先が先に分かってしまいます。

そこで、実際に遊んだ感想から変更を頼みました。

遊んでみた。右上の探索マップに最初から全体構造とゴールが表示されているので、探索する楽しみが薄い。最初はスタート地点だけ表示し、訪れた部屋とそこから確認できた通路だけが徐々に地図に追加されるようにして。ゴールは実際に到達するまで地図に表示しない。マップはランダム生成とし、初級・中級・上級を開始時に選べるようにする。

ここは、AIが明示した要件に違反したという話ではありません。最初の指示ではランダム生成とも、地図を隠すとも言っていませんでした。固定のマップを遊んでみて、私が欲しいものを追加した場面です。

AIは初級12部屋、中級24部屋、上級42部屋とし、難易度ごとに広さとゴールまでの距離を変えると説明しました。地図には訪問済みの部屋を描き、未探索方向の通路は短い線で示します。地図の縮尺も、発見済みの範囲から決めるようにしたそうです。

この縮尺の工夫は、私が細かく指定したものではありません。遊んだ後には、こう感想を残しました。

かなりゲームになってる。マップがオートで探索範囲広がるとサイズが可変なところあたりニクい

「全体を見せない」という注文から、未探索の広さまで察せない表示へ踏み込んできました。仕様補完が、単に足りない項目を埋めるだけではなく、遊びの意図に沿う形で働いた例です。

地図の見え方は、上の初期画面と冒頭の完成段階の画面で確認できます。初期画面では未探索部分とゴールが見え、完成段階の画面では探索途中の地図が表示されています。別の制作段階・別の地形の画像なので、同じマップを変更前後で比較したものではありません。

履歴管理は、このプロジェクトでも頼み直した

最初の試作の後、ローカルの変更履歴も残すよう依頼しました。

ブロック崩しではすでに同じ注文をしていましたが、外部チャットには「さっきの指示はさっきのスレ限定だったと言うことか」という私の反応があります。

少なくともこの実験では、別プロジェクトでも同じ運用が始まっているとは考えず、改めて指示しました。AIはその時点の状態からGit管理を始め、以後のまとまった変更と検証後に履歴を保存すると報告しました。

自然言語で任せられる仕事が増えても、どの指示がどこまで適用されているかは確認する必要があります。

開発環境を選ぶ場面でも触れましたが、以前の作業で指示したことが、今回もそのまま適用されるとは限りません。作業フォルダに以前の成果物があることと、そのときの指示が継続して有効であることは、分けて考えたほうがよさそうです。

継続して使いたい方針は、その場限りの依頼ではなく「今後も適用するルールとしてメモリに記録して」と明示しておくとよいです。こうしたルールを記録してもらう使い方も活用できます。その際は、このプロジェクトだけのルールなのか、ほかの作業にも共通するルールなのかも伝え、何をどの範囲に保存したかを確認しておきます。

ゲームパッド対応は、操作の割り当てごと任せた

次は、キーボードに加えて一般的なWindows用ゲームパッドでも遊べるようにしました。

私が頼んだのは、パッド対応と、既存のキーボード操作を残すことです。AIは左スティックと方向キーによる移動、Aで決定、Yでやり直し、StartやBで難易度選択へ戻る操作を用意したと報告しました。

さらに、スティックの小さなずれで勝手に動かないこと、斜め移動で速くならないこと、接続し直した後の入力なども検証対象にしていました。

AI側の記録には、仮想ゲームパッドでのテストと画面確認が残っています。私から動作確認の結果を報告していなかったため、会話記録には残っていませんが、実際にはPS5コントローラーで試し、1回目の動作確認で期待どおりに動きました。

なお、「一般的なWindows用ゲームパッド」と指定したため、操作説明はPS5コントローラーの×○□△ではなく、ABXY表記になっていました。使うコントローラーまで伝えておけば、説明の表記も合わせてもらえそうです。

「猫にして」で、モデルと動きが付いてきた

次の注文は短いです。

今のプレイヤーキャラクターを猫に変更して。ゲームに合う3Dモデルを使って。

既存の猫モデルを探してくるかと思うような注文ですが、AIからはオリジナルのローポリ猫を作ったと報告されました。白とグレーの毛並み、翡翠色のスカーフがあり、四足歩行としっぽの動きも付いています。見下ろしでも耳としっぽが分かるように、表示サイズも調整したそうです。

私の第一声は、こうでした。

おいおい猫だ。デメでブルドッグっぽいがw

造形に感想はあります。それでも、主人公が猫になると、その後に足したくなるものも変わってきます。

次に頼んだのは、猫を見ると逃げるネズミです。AIは、猫に気づくと「!」を出し、壁や角を避けて逃げ、離れると止まるネズミを追加したと報告しました。部屋を出入りしても位置を保持する、という挙動まで補いました。

猫パンチができると、次は戦いになる

逃げるネズミがいるなら、猫パンチで倒せるようにしたい。

その依頼に対し、AIはSpaceまたはJキーと、ゲームパッドのXボタンに攻撃を割り当てました。正面の近いネズミに当たり、一撃で倒します。パンチの動きと軌跡、撃破数の表示、倒したネズミが再入室でも復活しない処理を追加したそうです。

実際に遊んだ私は、こう書いています。

猫パンチっw あたり判定がシビアだが機能してる。そのあたりの調整は最後でいいや。

機能していることと、操作感に満足していることは別でした。この時点では調整を後へ回し、先にゲームの要素を増やすことにしました。会話記録には、その当たり判定を後で調整し終えたことまでは残っていません。

続いて、逃げずに猫へ向かってきて攻撃するネズミと、猫のHPを追加しました。

AIは攻撃型を赤系の体色で区別し、近づくと少し構えてから攻撃するようにしました。猫のHPは5、1回の被弾で1減り、直後は1秒間無敵になります。HPがなくなるとゲームオーバーになり、同じ地図で再挑戦できるという構成です。

HPとゲームオーバーは頼みましたが、被弾直後の無敵時間や敵の攻撃前の構えまでは指定していません。こうしたゲームとしての調整も、AI側から加わりました。

私のプレイ記録には「ライフ1/5で初級クリア。これは慣れないときっつい」とあります。歩くだけだった迷宮が、操作を覚え、敵との距離を見ながら進むゲームになってきました。

猫とネズミがいる部屋で、HPが5/5と表示された画面

完成段階のゲームで猫パンチを出した場面です。パンチの軌跡とHP表示が確認できます。この画像はHP 5/5で、本文の「ライフ1/5で初級クリア」とは別のプレイ場面です。

毎部屋同じ敵では単調なので、出現も変える

今度は、部屋ごとのネズミの数と種類が固定なのが気になりました。

そこで、部屋ごとにランダムにし、ネズミがいない部屋も作り、難易度で出現傾向を変えるよう頼みました。

AIの実装報告は次のとおりです。

難易度 1部屋の出現数 1匹ごとの攻撃型の抽選率
初級 0〜2匹 20%
中級 0〜3匹 45%
上級 0〜4匹 70%

開始部屋は安全な空室とし、ほかにも最低1部屋は空室にします。再入室では位置と撃破状態を保持し、同じ地図でやり直すと元の配置へ戻します。

私は「単調なので変えたい」と注文しました。具体的な数、抽選率、再挑戦時の扱いは、AIが詰めています。

罠は、自作せず既存のモデルを探してもらった

猫とネズミの次は罠です。今回は、作り方にも条件を付けました。

ダンジョンに何種類か罠を追加したい。今回は自作せず、ゲームに合う既存の3Dアセットを探して使って。

会話記録では、AIはKenneyの「Platformer Kit」から床トゲ、丸ノコ、トゲ付きブロックを選び、CC0のモデルとして採用したと報告しています。モデルの原本とライセンスをプロジェクトへ同梱したという説明もあります。

床トゲは予告の後に飛び出し、丸ノコは回転しながら往復し、トゲ付きブロックは触れるとダメージを与えます。見た目を置くだけではなく、すでにあるHPや再挑戦の仕組みへ接続しています。

開始部屋や扉の近くを避け、部屋の中央から各扉へ進めるように配置したという報告もありました。素材探し、利用条件の確認、取り込み、動き、ゲームルールへの接続までが、一つの依頼から続きました。

この段階の私の感想は、「きっちり仕事してきた。そしてかなりゲームになった」でした。

逃げるネズミに猫パンチをしようと追いかけていたら、罠に誘導される形になってダメージを受けました。罠を加えたことで、意図していなかったゲーム性まで生まれました。

ダンジョンの部屋に配置された丸ノコの罠

丸ノコの罠が2個ある部屋です。本文で紹介した3種類の罠のうち、丸ノコが写っています。

最後に、今のゲームに合う名前を付けてもらう

当初の探索ゲームとは内容がずいぶん変わりました。そこで、現在の内容に合うタイトルを考え、変更するよう頼みました。

AIが選んだのが「猫パンチとひみつの迷宮」でした。

猫パンチでネズミと戦うことと、地図を少しずつ埋める探索を表した名前だそうです。ゲーム内の表示、ウィンドウ名、説明書を変更し、Windows用の実行ファイルも新しい名前でビルドしたと報告されました。

最初に渡したのは、「部屋を移動してゴールできるところまで」という指示です。最終タイトルから逆算した仕様書を、最初から持っていたわけではありません。

何をAIが決め、何を私が決めたのか

今回、人間側で決めたのは、主に次のようなことでした。

私が判断したこと AIが具体化したこと
全体が見えると探索が面白くない 訪問済みだけの地図、発見範囲に応じた縮尺
主人公を猫にしたい ローポリの造形、配色、歩行としっぽの動き
猫パンチと戦闘を加えたい 攻撃判定、演出、HP、被弾後の無敵時間
毎部屋同じ敵では単調 難易度別の抽選、空室、再入室時の状態保持
既存モデルの罠を使いたい 素材の選定、取り込み、罠の挙動とダメージ

実装の方法だけでなく、遊びや操作の細部までAIが補っていました。人間に要件定義力が必要だとしても、最初からすべての数値や画面を決める形とは違います。

私が繰り返していたのは、何を作りたいか決め、実際に遊び、良い・悪い・面白い・面白くないを判断し、次の注文を決めることでした。

ただし、これでゲームの品質評価が済んだわけではありません。猫パンチの当たり判定には不満が残り、初級でも難しく感じました。AIの自動テスト報告も、面白さや難易度の評価を代わりに済ませるものではありません。

また、私にはプログラミングやソフトウェア開発の経験があります。指示や確認の際に、その経験が働いている可能性はあります。今回の結果を、そのまま「誰でも知識なしで同じようにできる」と一般化はしません。

利用枠は、相談と実装を分けて使った

3段階の実験の組み立てや途中の感想整理には、外部チャットも使っています。相談と実装を分ける運用は準備編にまとめています。このゲーム単独の消費量や、最低限必要な料金は算出していません。

今回、AIに渡せた仕事は想像していたより広かったです。一方、遊んで次を決める役割は、繰り返し私の側に戻ってきました。コードを書く作業を任せた先で、人間が何を担うのか。この問いは、ゲーム以外のソフト制作でも確かめていきたいと思っています。

前の記事:速くしてもらったら、今度は速すぎた。3Dブロック崩しをAIと調整する

次の記事:ShareX用の自分専用ツールをAIに作らせた

ゲーム制作の一覧へ

afさんのAIラボのトップへ

ソース一式と最新バイナリー

この記事で制作したWindows用ゲームの配布ZIPです。ZIPをすべて展開してから、フォルダ内の NekoDungeon.exe を起動してください。

最新バイナリーの案内ページから、配布ZIPをダウンロードできます。

ソリューション名とリポジトリ名は、旧称DungeonExplorer3DからNekoDungeonへ変更しました。ゲーム内のタイトル「猫パンチとひみつの迷宮」はそのままです。公開初版には、現在の検証済みWindows版を1.0.0として採用しています。

コメント

タイトルとURLをコピーしました