リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
ワールドマップ全域を256×256タイルへ拡張し、大陸・海洋・島嶼バイオームを階層的に自動配置
## 1. 目的
現状の128×128タイルワールドマップをさらに広大な256×256タイルへ拡張し、大陸・半島・離島・大洋・海峡を自然に見えるバイオーム分布で自動生成することで、探索の没入感と規模感を大幅に向上させる。
## 2. 具体的な仕様
### 2-1. マップサイズ変更
- ワールドマップのタイル配列を128×128から256×256へ拡張
- Canvasビューポートはプレイヤー中心追従のまま変更なし(既存のCanvasビューポート実装を流用)
- ミニマップも256×256グリッドに対応(既訪問タイルのみ表示の仕様は維持)
### 2-2. 階層的バイオーム自動配置アルゴリズム(PHP側・シナリオ生成時)
PHPの`rpgsf_create_scenario`内で呼ぶワールドマップ生成関数を以下ロジックで刷新する:
1. **大陸マスク生成**:疑似パーリンノイズ相当の簡易ランダムウォーク法で「陸地/海」を決定。全体の約55%が陸、45%が海・大洋になるよう閾値調整
2. **バイオームゾーン割当**:陸地を以下の優先順位でゾーン化
- 北端20%行 → 雪原(`I`)中心
- 南端20%行 → 砂漠(`S`)中心
- 中央帯 → 草原(`G`)・森(`F`)混在
- 海岸隣接タイル → 海岸草原・砂地(`S`)
- 内陸高標高(山塊)→ 山(`M`)・火山(`火`)
- 低地河川ライン → 河川(`RV`)を1〜3本横断配置
3. **海洋タイル**:大陸外周と内海は大洋(`O`)、浅瀬は水辺(`W`)
4. **島嶼**:大洋内にランダムで3〜6個の小島(5×5〜10×10タイル程度)を配置。テーマに応じて火山島・砂漠島・雪島を選択
5. **ランダムイベントタイル再配置**:旅の商人・野営地・回復の泉・隠し宝・罠床を新マップサイズに合わせてスケールした数量で再配置
### 2-3. サブマップ出入口の自動配置
- 村(`V`)・洞窟(`D`)・神殿(`N`)・転職神殿(`J`)の配置数を現状より1.5〜2倍に増やし、広大なマップ全域に分散配置
- 各バイオームゾーンに最低1つのランドマークが入るよう制約を追加
### 2-4. ミニマップ表示の対応
- 既存の128×128ミニマップCanvas描画関数のグリッド解像度を256×256に変更
- ミニマップ1ピクセル=1タイルのまま、表示領域を128px→256px(または2倍ズームアウト)に対応
### 2-5. 既存機能との整合
- 町・村でのエンカウント禁止ロジック、フィールド別エンカウントテーブル、昼夜天候サイクルは変更なし
- シナリオJSONの`world_map`キー以下の構造を拡張するだけで、戦闘・セーブ・ショップ等のロジックへの影響なし
- 既存の128×128シナリオは旧フォーマットのまま読み込み可能とし、`map_size`キーで判別して描画分岐
## 3. 実装規模の見積もり
- PHPのワールドマップ生成関数(約150〜200行)の書き換えが中心
- JS側のCanvasビューポート・ミニマップは定数変更(`MAP_W`, `MAP_H`を128→256)のみ
- 1サイクルで完結できる現実的な規模
現状の128×128タイルワールドマップをさらに広大な256×256タイルへ拡張し、大陸・半島・離島・大洋・海峡を自然に見えるバイオーム分布で自動生成することで、探索の没入感と規模感を大幅に向上させる。
## 2. 具体的な仕様
### 2-1. マップサイズ変更
- ワールドマップのタイル配列を128×128から256×256へ拡張
- Canvasビューポートはプレイヤー中心追従のまま変更なし(既存のCanvasビューポート実装を流用)
- ミニマップも256×256グリッドに対応(既訪問タイルのみ表示の仕様は維持)
### 2-2. 階層的バイオーム自動配置アルゴリズム(PHP側・シナリオ生成時)
PHPの`rpgsf_create_scenario`内で呼ぶワールドマップ生成関数を以下ロジックで刷新する:
1. **大陸マスク生成**:疑似パーリンノイズ相当の簡易ランダムウォーク法で「陸地/海」を決定。全体の約55%が陸、45%が海・大洋になるよう閾値調整
2. **バイオームゾーン割当**:陸地を以下の優先順位でゾーン化
- 北端20%行 → 雪原(`I`)中心
- 南端20%行 → 砂漠(`S`)中心
- 中央帯 → 草原(`G`)・森(`F`)混在
- 海岸隣接タイル → 海岸草原・砂地(`S`)
- 内陸高標高(山塊)→ 山(`M`)・火山(`火`)
- 低地河川ライン → 河川(`RV`)を1〜3本横断配置
3. **海洋タイル**:大陸外周と内海は大洋(`O`)、浅瀬は水辺(`W`)
4. **島嶼**:大洋内にランダムで3〜6個の小島(5×5〜10×10タイル程度)を配置。テーマに応じて火山島・砂漠島・雪島を選択
5. **ランダムイベントタイル再配置**:旅の商人・野営地・回復の泉・隠し宝・罠床を新マップサイズに合わせてスケールした数量で再配置
### 2-3. サブマップ出入口の自動配置
- 村(`V`)・洞窟(`D`)・神殿(`N`)・転職神殿(`J`)の配置数を現状より1.5〜2倍に増やし、広大なマップ全域に分散配置
- 各バイオームゾーンに最低1つのランドマークが入るよう制約を追加
### 2-4. ミニマップ表示の対応
- 既存の128×128ミニマップCanvas描画関数のグリッド解像度を256×256に変更
- ミニマップ1ピクセル=1タイルのまま、表示領域を128px→256px(または2倍ズームアウト)に対応
### 2-5. 既存機能との整合
- 町・村でのエンカウント禁止ロジック、フィールド別エンカウントテーブル、昼夜天候サイクルは変更なし
- シナリオJSONの`world_map`キー以下の構造を拡張するだけで、戦闘・セーブ・ショップ等のロジックへの影響なし
- 既存の128×128シナリオは旧フォーマットのまま読み込み可能とし、`map_size`キーで判別して描画分岐
## 3. 実装規模の見積もり
- PHPのワールドマップ生成関数(約150〜200行)の書き換えが中心
- JS側のCanvasビューポート・ミニマップは定数変更(`MAP_W`, `MAP_H`を128→256)のみ
- 1サイクルで完結できる現実的な規模
💬 返信 (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