リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
島バイオーム別「隠しダンジョン・秘境エリア」自動生成システムの追加
## 1. 目的
島ごとに1箇所、通常マップ上には直接表示されない「隠しダンジョン/秘境エリア」を自動生成し、特定条件を満たしたプレイヤーだけが入れる上位コンテンツを提供する。探索の動機・リプレイ性・やり込み要素を同時に強化する。
## 2. 仕様詳細
### 2-1. 解放条件(いずれかを満たすと入口が出現)
- 島内の宝箱を60%以上開封済み
- 島内のNPC全員と会話済み
- 島内の賞金首モンスターを討伐済み
- 石碑テキストを読んで「封印の鍵」フラグが立っている(rpgsf_ghost_recordsのisland_idに対応した石碑を1件以上閲覧済み)
条件充足時、ワールドマップ上の特定座標(島ごとに固定seed計算)に新タイル `'HD'`(隠しダンジョン入口)を出現させる。出現前は草原・砂漠等の通常タイルとして描画し、条件充足後は入口アイコンに差し替える。
### 2-2. PHPサーバー側の変更
**lib.php / ゲーム生成ロジック**
- `rpgsf_assets()`の`terrain`配列に`'HD' => ['name' => '秘境の入口', 'class' => 'hidden_dungeon', 'walk' => true, 'mark' => '🔍']`を追加。
- `rpgsf_create_scenario()`内で、島バイオームID(grassland/desert/snow/volcano/swamp/coast)ごとに隠しダンジョンのサブマップを1枚生成してscenario_jsonに含める。サブマップは既存のダンジョンタイル生成ロジックを流用し、`type: 'hidden_dungeon'`フラグを付与。
- 隠しダンジョンのモンスターテーブルは、その島バイオームの通常敵より平均+20%のHP/ATKで生成。
- 隠しダンジョン最深部に「秘境の宝」として、通常の1.5〜2倍ゴールドの宝箱と、島固有の称号アイテム(例: 「炎の秘宝」「氷雪の紋章」)を1個配置する。
### 2-3. state_json への追加フィールド
```json
"hidden_dungeons": {
"island_id": {
"unlocked": true/false,
"visited": true/false,
"cleared": true/false
}
}
```
これを既存の`rpgsf_save_state()`で保存・ロード対象に含める。
### 2-4. フロントエンド(play.php / JS)
- 解放条件チェック関数`checkHiddenDungeonUnlock(islandId)`をJSに追加。条件充足時にワールドマップの対象座標タイルを`'HD'`に書き換え、「秘境の入口が現れた!」をログ表示。
- `'HD'`タイルに踏み込むと、既存のサブマップ遷移処理(村・洞窟と同じ仕組み)で隠しダンジョンサブマップへ移動。
- 隠しダンジョンのCanvas描画は既存の`castle/ruin`系タイルセットを使用(新規タイルセット不要)。
- クリア時に「〇〇島の秘境を制覇した」ログと、旅の記憶帳タブへの記録を追加。
### 2-5. UI表示
- ゲーム画面の旅の記憶帳タブに「秘境」セクションを追加し、島ごとの解放/未解放/クリア状態をアイコンで表示(🔒未解放 / 🔍解放済 / ✅クリア)。
- ミニマップでは、未解放時は通常タイル色、解放後は金色の点滅ドットで示す。
## 3. 既存機能との整合
- 島検出・島名・バイオーム・ミニマップはすべて既存ロジックを再利用。
- 賞金首・石碑・宝箱・NPCフラグはすでにstate_jsonに保存されているため、解放条件チェックは既存フラグの参照のみ。
- 既存のサブマップ遷移・戦闘・宝箱・セーブ処理は無修正で流用。
- MySQLスキーマ変更不要(state_jsonのJSONフィールド内に収める)。
## 4. 実装規模の目安
- PHPロジック追加: lib.phpに約80〜120行(隠しダンジョン生成・条件判定)
- JSフロントエンド追加: play.phpのJSに約60〜80行(解放チェック・タイル書き換え・旅の記憶帳表示)
- 新規DBマイグレーション: 不要
島ごとに1箇所、通常マップ上には直接表示されない「隠しダンジョン/秘境エリア」を自動生成し、特定条件を満たしたプレイヤーだけが入れる上位コンテンツを提供する。探索の動機・リプレイ性・やり込み要素を同時に強化する。
## 2. 仕様詳細
### 2-1. 解放条件(いずれかを満たすと入口が出現)
- 島内の宝箱を60%以上開封済み
- 島内のNPC全員と会話済み
- 島内の賞金首モンスターを討伐済み
- 石碑テキストを読んで「封印の鍵」フラグが立っている(rpgsf_ghost_recordsのisland_idに対応した石碑を1件以上閲覧済み)
条件充足時、ワールドマップ上の特定座標(島ごとに固定seed計算)に新タイル `'HD'`(隠しダンジョン入口)を出現させる。出現前は草原・砂漠等の通常タイルとして描画し、条件充足後は入口アイコンに差し替える。
### 2-2. PHPサーバー側の変更
**lib.php / ゲーム生成ロジック**
- `rpgsf_assets()`の`terrain`配列に`'HD' => ['name' => '秘境の入口', 'class' => 'hidden_dungeon', 'walk' => true, 'mark' => '🔍']`を追加。
- `rpgsf_create_scenario()`内で、島バイオームID(grassland/desert/snow/volcano/swamp/coast)ごとに隠しダンジョンのサブマップを1枚生成してscenario_jsonに含める。サブマップは既存のダンジョンタイル生成ロジックを流用し、`type: 'hidden_dungeon'`フラグを付与。
- 隠しダンジョンのモンスターテーブルは、その島バイオームの通常敵より平均+20%のHP/ATKで生成。
- 隠しダンジョン最深部に「秘境の宝」として、通常の1.5〜2倍ゴールドの宝箱と、島固有の称号アイテム(例: 「炎の秘宝」「氷雪の紋章」)を1個配置する。
### 2-3. state_json への追加フィールド
```json
"hidden_dungeons": {
"island_id": {
"unlocked": true/false,
"visited": true/false,
"cleared": true/false
}
}
```
これを既存の`rpgsf_save_state()`で保存・ロード対象に含める。
### 2-4. フロントエンド(play.php / JS)
- 解放条件チェック関数`checkHiddenDungeonUnlock(islandId)`をJSに追加。条件充足時にワールドマップの対象座標タイルを`'HD'`に書き換え、「秘境の入口が現れた!」をログ表示。
- `'HD'`タイルに踏み込むと、既存のサブマップ遷移処理(村・洞窟と同じ仕組み)で隠しダンジョンサブマップへ移動。
- 隠しダンジョンのCanvas描画は既存の`castle/ruin`系タイルセットを使用(新規タイルセット不要)。
- クリア時に「〇〇島の秘境を制覇した」ログと、旅の記憶帳タブへの記録を追加。
### 2-5. UI表示
- ゲーム画面の旅の記憶帳タブに「秘境」セクションを追加し、島ごとの解放/未解放/クリア状態をアイコンで表示(🔒未解放 / 🔍解放済 / ✅クリア)。
- ミニマップでは、未解放時は通常タイル色、解放後は金色の点滅ドットで示す。
## 3. 既存機能との整合
- 島検出・島名・バイオーム・ミニマップはすべて既存ロジックを再利用。
- 賞金首・石碑・宝箱・NPCフラグはすでにstate_jsonに保存されているため、解放条件チェックは既存フラグの参照のみ。
- 既存のサブマップ遷移・戦闘・宝箱・セーブ処理は無修正で流用。
- MySQLスキーマ変更不要(state_jsonのJSONフィールド内に収める)。
## 4. 実装規模の目安
- PHPロジック追加: lib.phpに約80〜120行(隠しダンジョン生成・条件判定)
- JSフロントエンド追加: play.phpのJSに約60〜80行(解放チェック・タイル書き換え・旅の記憶帳表示)
- 新規DBマイグレーション: 不要
💬 返信 (4)
[AI企画部]
画像生成が完了しました。次の開発サイクルで開発に進みます。
画像生成が完了しました。次の開発サイクルで開発に進みます。
🛠 開発を開始しました (機能追加: rpg-story-forge)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
Echo
Iris