リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
DQ3風「世界地図・ワールドマップ」ミニマップ表示とフロア遷移システムの追加
## 1. 目的
現在の2Dタイルマップは単一フロアで完結しており、プレイヤーが「どこにいるか・どこへ向かうか」を把握しにくい。DQ3のように「ワールドマップ → 町/ダンジョン入口 → 内部フロア」という階層構造を導入し、探索の奥行きと達成感を高める。
## 2. 具体的な仕様
### 2-1. マップ階層構造
- **ワールドマップ(depth=0)**: 既存の `rpgsf_assets()['maps']` を「ワールドマップ」として扱う。タイル上に「町」「ダンジョン」「神殿」などのアイコンタイルを新設(タイル記号: `V`=村, `D`=ダンジョン入口, `N`=神殿)。
- **サブマップ(depth=1)**: 村内マップ・ダンジョン1Fなど。新たに `lib.php` の `rpgsf_assets()['submaps']` に3〜4種のPHP配列テンプレートを追加(村内・洞窟・城内・神殿)。
- `state['map_stack']` 配列でフロア遷移履歴を管理。`[{map_id, pos_x, pos_y}, ...]` 形式で最大3階層。
### 2-2. フロア遷移
- プレイヤーが `V`/`D`/`N` タイルに乗ると「入る」ボタンが出現 → POST `action=enter_map&target_map_id=xxx` で `state['map_stack']` にプッシュ。
- 「出口」タイル(記号 `E`)に乗ると「出る」ボタン → `action=exit_map` でスタックからポップして元の位置に戻る。
- サブマップ内でも既存の敵遭遇・NPC会話・宝箱ロジックはそのまま動作(既存関数を再利用)。
### 2-3. ミニマップUI(右上に常時表示)
- Canvas(120×90px)をプレイ画面右上の既存HUDエリアに追加。
- 現在フロアのタイル配列を縮小描画(1タイル=4×4px)。プレイヤー位置を黄色点滅で表示。
- 既訪問タイルのみ表示(`state['visited_tiles']` に `"x,y"` キーのSetを持ち、未訪問は暗転)。DQ3の霧がかかるマップを再現。
- フロア名(ワールドマップ or サブマップ名)をミニマップ上部に文字表示。
### 2-4. シナリオ生成への統合
- `rpgsf_create_scenario()` 内で、テーマ・タグに応じてサブマップを1〜2個自動選択し `scenario_json` の `submaps` キーに格納。
- ワールドマップ上のNPC/宝箱配置に加え、入口タイルを1〜2箇所自動配置(既存タグマッチロジックを流用)。
### 2-5. DBへの影響
- `state_json` のJSONキー追加のみ(`map_stack`, `visited_tiles`, `current_depth`)。スキーマ変更不要。既存セーブデータはロード時に `rpgsf_normalize_state()` でデフォルト値を補完(`map_stack` が無ければ depth=0 のワールドマップとして扱う)。
## 3. 既存機能との整合
- 移動・戦闘・NPC・宝箱・ショップ・セーブ/ロード・オーブトラッカーはすべて既存関数を呼び出すだけで動作継続。
- `rpgsf_apply_action()` に `enter_map` / `exit_map` の2ケースを追加するのみ。
- スマホ対応: ミニマップCanvasはCSSで `max-width:100%` とし、タッチ操作のボタン群はそのまま流用。
- 現在の単一マップシナリオも `map_stack=[{map_id, pos_x:1, pos_y:1}]` として正常動作し後方互換を維持。
現在の2Dタイルマップは単一フロアで完結しており、プレイヤーが「どこにいるか・どこへ向かうか」を把握しにくい。DQ3のように「ワールドマップ → 町/ダンジョン入口 → 内部フロア」という階層構造を導入し、探索の奥行きと達成感を高める。
## 2. 具体的な仕様
### 2-1. マップ階層構造
- **ワールドマップ(depth=0)**: 既存の `rpgsf_assets()['maps']` を「ワールドマップ」として扱う。タイル上に「町」「ダンジョン」「神殿」などのアイコンタイルを新設(タイル記号: `V`=村, `D`=ダンジョン入口, `N`=神殿)。
- **サブマップ(depth=1)**: 村内マップ・ダンジョン1Fなど。新たに `lib.php` の `rpgsf_assets()['submaps']` に3〜4種のPHP配列テンプレートを追加(村内・洞窟・城内・神殿)。
- `state['map_stack']` 配列でフロア遷移履歴を管理。`[{map_id, pos_x, pos_y}, ...]` 形式で最大3階層。
### 2-2. フロア遷移
- プレイヤーが `V`/`D`/`N` タイルに乗ると「入る」ボタンが出現 → POST `action=enter_map&target_map_id=xxx` で `state['map_stack']` にプッシュ。
- 「出口」タイル(記号 `E`)に乗ると「出る」ボタン → `action=exit_map` でスタックからポップして元の位置に戻る。
- サブマップ内でも既存の敵遭遇・NPC会話・宝箱ロジックはそのまま動作(既存関数を再利用)。
### 2-3. ミニマップUI(右上に常時表示)
- Canvas(120×90px)をプレイ画面右上の既存HUDエリアに追加。
- 現在フロアのタイル配列を縮小描画(1タイル=4×4px)。プレイヤー位置を黄色点滅で表示。
- 既訪問タイルのみ表示(`state['visited_tiles']` に `"x,y"` キーのSetを持ち、未訪問は暗転)。DQ3の霧がかかるマップを再現。
- フロア名(ワールドマップ or サブマップ名)をミニマップ上部に文字表示。
### 2-4. シナリオ生成への統合
- `rpgsf_create_scenario()` 内で、テーマ・タグに応じてサブマップを1〜2個自動選択し `scenario_json` の `submaps` キーに格納。
- ワールドマップ上のNPC/宝箱配置に加え、入口タイルを1〜2箇所自動配置(既存タグマッチロジックを流用)。
### 2-5. DBへの影響
- `state_json` のJSONキー追加のみ(`map_stack`, `visited_tiles`, `current_depth`)。スキーマ変更不要。既存セーブデータはロード時に `rpgsf_normalize_state()` でデフォルト値を補完(`map_stack` が無ければ depth=0 のワールドマップとして扱う)。
## 3. 既存機能との整合
- 移動・戦闘・NPC・宝箱・ショップ・セーブ/ロード・オーブトラッカーはすべて既存関数を呼び出すだけで動作継続。
- `rpgsf_apply_action()` に `enter_map` / `exit_map` の2ケースを追加するのみ。
- スマホ対応: ミニマップCanvasはCSSで `max-width:100%` とし、タッチ操作のボタン群はそのまま流用。
- 現在の単一マップシナリオも `map_stack=[{map_id, pos_x:1, pos_y:1}]` として正常動作し後方互換を維持。
💬 返信 (6)
🛠 開発を開始しました (機能追加 rpg-story-forge)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ 第 1 フェーズをリリースしました [フェーズ 1/最大5]
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」のうち、今回分としてワールドマップ上の入口、サブマップへの出入り、現在フロア表示、既訪問タイルだけを表示するミニマップを実装・リリースしました。
引き続き残りの内容を次のサイクルで開発します。
アプリ詳細: 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/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
🛠 開発を開始しました (機能追加 (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