0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントと共創するRPG開発体験~第2章~

0
Posted at

ものがたり

序章:全国展開への旅立ち

プロトタイプという名の小さな箱庭を抜け出し、我々は果てしない「全国展開」の旅へと歩みを進めた。関西・中国地方を中心とする新たなマップの大量追加。それは、世界の境界線を押し広げる創造の儀式であった。

image.png

第一の試練:通行不可の呪いとワープの陥穽

しかし、世界を繋ぐ道で予期せぬトラブルが発生した。マップの端、異邦へと続くワープゾーンに到達しても、世界は微動だにしない。「山」や「川」といった通行不可のタイルにワープが重なり、足を踏み入れることすら拒まれていたのだ。

  • プロジェクトの掟(projectrules.md)
    この呪いを解くため、我々は世界の根源たる「プロジェクトルール」を更新した。ワープゾーンは必ず通行可能タイルに設定すること。アイテムやキャラクターを通行不可マスに置かないこと。この絶対のガイドラインを敷くことで、世界は再び繋がりを取り戻した。

image.png

第二の試練:自己増殖する混沌と統一感の喪失

世界が広がるにつれ、新たな住人(妖怪)が必要となった。しかし、画像生成AIの自由奔放すぎる創造力が仇となる。生成される姿は背景色が混ざり、解像度もバラバラ。RPG世界のアセットとしての「統一感」が崩壊の危機に瀕していた。

  • 錬成陣:asset_generator スキル
    この混沌に秩序をもたらすため、新たな魔法陣「asset_generator」スキルを構築した。スクリプトを用いた単色ベタ塗り処理による確実な背景透過と、均一な画像抽出フロー。これにより、美しく統一されたレトロ風スプライトを量産するパイプラインが完成したのだ。

image.png

  • 【ステータス画面】Developer Status: Lv.2
    試練を乗り越え、私のステータス一覧は以下のように更新された。
項目 ステータス 備考
称号 アセット錬金術師 (Lv.2) 混沌としたAI生成画像から、無駄のないゲーム素材を抽出する術を得た。
メイン武器 Python / pygame-ce 世界を繋ぎ広げるための確かな刃。
習得スキル Systematic Asset Generation asset_generator を操り、統一された素材を量産する力。
習得スキル Rule Centralization projectrules.md に規律を集約し、バグの再発を防ぐ環境構築力。
現在の任務 安定したデータ拡張化 マップやアセットの安定した拡大化を行うツールを手に入れた。

image.png

次回予告:第3章「ゲーム性の目覚めとシステム構築」

広大な世界と、そこに住まう妖怪たちは用意された。次なる試練は、我々の世界に「RPGとしての面白さ」を吹き込むことだ。GitHub MCPを通じ、次なるタスク群はすでにIssueとして刻み込まれた。真のゲーム開発が今、幕を開ける。

image.png

成果物

マップや妖怪の種類が拡充しました。
Video Project 1.gif

解説

技術的知見

1. マップ拡張における整合性

課題

jsonでマップデータを管理し、AIへの指示で適当に順次拡張していたものの、マップ作成時に、別のエリアの通行個所に移動不可のオブジェクトが置いてあり、移動ができなかったり、移動できない箇所にキャラクターが設置されていたりして、ゲームとして成り立たない状態となっていました。

対応方法

Antigravityの rurles にマップ拡張のルールを記載しました。
これにより、マップ拡張時にマップ拡張ルールを毎回注意せずとも反映してくれる様になりました。
(前回は使用言語などの基本的なルールのみであったが、開発が進むにつれ、このrulesを拡張させながら開発を進めることになりそうです。)

2. キャラクター用画像作成手順のSkill化

課題

ゲームで使う妖怪の画像などはAntigravityから呼ばれるNanoBananaを活用して作成していました。
しかし、下記の様な手番を伝える必要があり、手順や質が割とその場のコメント次第でバラバラになっていました。

  • 妖怪の名前を伝え、32×32ピクセルのイメージで作成させる
  • 背景を作成しない様に指示する
  • 背景部分を切り取る処理をPythonスクリプトで実装させる
対応方法

Skills という仕組みを利用し、画像作成からゲームで使うためのアセット化までを一連の手順として保管することにしました。

これにより、毎回丁寧な指示を行わなくても、スクリプトの実行やプロンプトの実行を安定した品質で実行することに成功しました。

さいごに

AIエージェントに指示を出して作成させる、ということを繰り返せば動くものはでてくるものの、どこか場当たり的な対応になりがちでした。
今回の様に、Skillsとして作業単位で内容を整理したり、rulesとして実施すべきルールを明確化していくことで成果物の品質が少しずつコントロールできている様な感覚はありました。
どうしてもAIを使うとコードのスピードが速いのでアイデアを形にするところを急いでしまうのですが、このあたりのモノづくりの考え方というか、プロセスを形式知化していく作業もAIを活用した開発では重要なのではないかと感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?