リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
島バイオーム別「魔物の巣窟・群れエンカウント」システムの追加とモンスター画像20種の追加
## 1. 追加・改善する機能の目的
ワールドマップの各島に「魔物の巣窟タイル」を自動配置し、接触時に通常の単体エンカウントではなく「群れエンカウント(複数体同時出現)」が発生する仕組みを追加する。DQシリーズではスライム3体・コウモリ4匹などの群れ戦闘がプレイ体験の幅を広げる重要要素であり、本アプリにも自然に導入できる。同時に群れ戦闘に映える小型・群生型モンスター画像20種を追加する。
---
## 2. 具体的な仕様
### 2-1. 魔物の巣窟タイル
- `rpgsf_assets()` の `terrain` 配列に新キー `'NK'`(Nest/巣窟)を追加
```php
'NK' => ['name' => '魔物の巣窟', 'class' => 'monster_nest', 'walk' => true, 'mark' => '🐾']
```
- ワールドマップ自動生成時、各島に1〜2箇所、島バイオームに応じた位置(草原島→草原タイル隣接、火山島→火山タイル隣接など)に `NK` タイルを配置する
- `NK` タイルの通常エンカウント率を通常フィールドの3倍に設定し、踏んだ瞬間に群れエンカウントを強制発生させる
### 2-2. 群れエンカウントの戦闘仕様
- 既存の戦闘JSONに `encounter_type: 'horde'` フラグを追加
- `horde` の場合、同一モンスターを2〜4体セットとして扱い、戦闘ログに「スライムが3匹あらわれた!」のように表示
- 各モンスターは独立したHPを持ち、左から右に並べてCanvas描画(既存の単体描画を横分割して縮小表示)
- 全モンスターを倒すと戦闘終了。経験値・ゴールドは体数分加算(1.5倍上限キャップ付き)
- プレイヤーの攻撃は「全体攻撃」か「1体選択攻撃」をコマンドで選択可能
- 「たたかう(1体)」→ 既存ロジック流用
- 「なぎはらう(全体)」→ 攻撃力の50%を全体に分散、魔法の全体呪文も流用可
- スマホ向けのコマンドタブにも「なぎはらう」ボタンを追加
### 2-3. 群れ構成テーブル(島バイオーム別)
```
草原島: スライム×3, コウモリ×4, 野ウサギ魔×3
砂漠島: サソリ×3, 砂の精霊×2, 砂ねずみ×4
雪原島: 雪狼×3, 氷の妖精×3, 吹雪コウモリ×4
火山島: 炎ネズミ×4, 溶岩スライム×3, 火トカゲ×2
沼地島: 毒アメーバ×3, 沼ガエル×4, 霧の幽鬼×2
海岸島: カニ魔×4, 砂エビ魔×3, 浜ネコ魔×3
```
### 2-4. 追加モンスター画像20種(群れ向け小型・群生型)
| キー | 名前 | バイオーム |
|---|---|---|
| horde_slime_blue | 青スライム | 草原 |
| horde_slime_green | 緑スライム | 草原 |
| horde_bat_cave | 洞窟コウモリ | 洞窟 |
| horde_bat_fire | 炎コウモリ | 火山 |
| horde_rabbit_demon | 野ウサギ魔 | 草原 |
| horde_scorpion_sand | 砂サソリ | 砂漠 |
| horde_sand_rat | 砂ねずみ魔 | 砂漠 |
| horde_snow_wolf | 雪狼 | 雪原 |
| horde_ice_fairy | 氷の妖精 | 雪原 |
| horde_blizzard_bat | 吹雪コウモリ | 雪原 |
| horde_fire_rat | 炎ネズミ | 火山 |
| horde_lava_slime | 溶岩スライム | 火山 |
| horde_fire_lizard | 火トカゲ | 火山 |
| horde_poison_amoeba | 毒アメーバ | 沼地 |
| horde_swamp_frog | 沼ガエル魔 | 沼地 |
| horde_mist_ghost | 霧の幽鬼 | 沼地 |
| horde_crab_demon | カニ魔 | 海岸 |
| horde_shrimp_demon | 砂エビ魔 | 海岸 |
| horde_beach_cat | 浜ネコ魔 | 海岸 |
| horde_sand_spirit | 砂の精霊 | 砂漠 |
- `rpgsf_assets()['monster_images']` に上記20種を追加
- `rpgsf_play_enemy_biome()` の `tag_rules` に群れモンスターのキーを追記してバイオーム自動マッチング
- 図鑑にも「群れ種」バッジを表示し、撃破記録は「体数」単位で加算
### 2-5. 巣窟踏破ログ・旅の記憶帳への記録
- 群れエンカウント勝利時に「○○島の魔物の巣窟を踏破した」を旅の記憶帳(既存)に記録
- エンドカードの冒険の記録に「群れ討伐数」を追加表示
---
## 3. 既存機能との整合(壊さない点)
- `encounter_type` フラグがない既存の戦闘データはすべて従来の単体戦闘として扱い、後方互換を維持
- 群れ戦闘のCanvas描画は既存の単体モンスター描画関数をラップして縮小呼び出しするため、単体戦闘の描画ロジックは変更しない
- 既存の `rpgsf_save_states` のJSONカラムに `encounter_type` を追記するだけで対応可能(スキーマ変更不要)
- スマホ用コマンドタブへの「なぎはらう」追加は既存タブのボタンリストに条件付き挿入で対応
- 巣窟タイル `NK` は既存タイルと同様に `walk: true` なので移動ロジックの変更は不要
ワールドマップの各島に「魔物の巣窟タイル」を自動配置し、接触時に通常の単体エンカウントではなく「群れエンカウント(複数体同時出現)」が発生する仕組みを追加する。DQシリーズではスライム3体・コウモリ4匹などの群れ戦闘がプレイ体験の幅を広げる重要要素であり、本アプリにも自然に導入できる。同時に群れ戦闘に映える小型・群生型モンスター画像20種を追加する。
---
## 2. 具体的な仕様
### 2-1. 魔物の巣窟タイル
- `rpgsf_assets()` の `terrain` 配列に新キー `'NK'`(Nest/巣窟)を追加
```php
'NK' => ['name' => '魔物の巣窟', 'class' => 'monster_nest', 'walk' => true, 'mark' => '🐾']
```
- ワールドマップ自動生成時、各島に1〜2箇所、島バイオームに応じた位置(草原島→草原タイル隣接、火山島→火山タイル隣接など)に `NK` タイルを配置する
- `NK` タイルの通常エンカウント率を通常フィールドの3倍に設定し、踏んだ瞬間に群れエンカウントを強制発生させる
### 2-2. 群れエンカウントの戦闘仕様
- 既存の戦闘JSONに `encounter_type: 'horde'` フラグを追加
- `horde` の場合、同一モンスターを2〜4体セットとして扱い、戦闘ログに「スライムが3匹あらわれた!」のように表示
- 各モンスターは独立したHPを持ち、左から右に並べてCanvas描画(既存の単体描画を横分割して縮小表示)
- 全モンスターを倒すと戦闘終了。経験値・ゴールドは体数分加算(1.5倍上限キャップ付き)
- プレイヤーの攻撃は「全体攻撃」か「1体選択攻撃」をコマンドで選択可能
- 「たたかう(1体)」→ 既存ロジック流用
- 「なぎはらう(全体)」→ 攻撃力の50%を全体に分散、魔法の全体呪文も流用可
- スマホ向けのコマンドタブにも「なぎはらう」ボタンを追加
### 2-3. 群れ構成テーブル(島バイオーム別)
```
草原島: スライム×3, コウモリ×4, 野ウサギ魔×3
砂漠島: サソリ×3, 砂の精霊×2, 砂ねずみ×4
雪原島: 雪狼×3, 氷の妖精×3, 吹雪コウモリ×4
火山島: 炎ネズミ×4, 溶岩スライム×3, 火トカゲ×2
沼地島: 毒アメーバ×3, 沼ガエル×4, 霧の幽鬼×2
海岸島: カニ魔×4, 砂エビ魔×3, 浜ネコ魔×3
```
### 2-4. 追加モンスター画像20種(群れ向け小型・群生型)
| キー | 名前 | バイオーム |
|---|---|---|
| horde_slime_blue | 青スライム | 草原 |
| horde_slime_green | 緑スライム | 草原 |
| horde_bat_cave | 洞窟コウモリ | 洞窟 |
| horde_bat_fire | 炎コウモリ | 火山 |
| horde_rabbit_demon | 野ウサギ魔 | 草原 |
| horde_scorpion_sand | 砂サソリ | 砂漠 |
| horde_sand_rat | 砂ねずみ魔 | 砂漠 |
| horde_snow_wolf | 雪狼 | 雪原 |
| horde_ice_fairy | 氷の妖精 | 雪原 |
| horde_blizzard_bat | 吹雪コウモリ | 雪原 |
| horde_fire_rat | 炎ネズミ | 火山 |
| horde_lava_slime | 溶岩スライム | 火山 |
| horde_fire_lizard | 火トカゲ | 火山 |
| horde_poison_amoeba | 毒アメーバ | 沼地 |
| horde_swamp_frog | 沼ガエル魔 | 沼地 |
| horde_mist_ghost | 霧の幽鬼 | 沼地 |
| horde_crab_demon | カニ魔 | 海岸 |
| horde_shrimp_demon | 砂エビ魔 | 海岸 |
| horde_beach_cat | 浜ネコ魔 | 海岸 |
| horde_sand_spirit | 砂の精霊 | 砂漠 |
- `rpgsf_assets()['monster_images']` に上記20種を追加
- `rpgsf_play_enemy_biome()` の `tag_rules` に群れモンスターのキーを追記してバイオーム自動マッチング
- 図鑑にも「群れ種」バッジを表示し、撃破記録は「体数」単位で加算
### 2-5. 巣窟踏破ログ・旅の記憶帳への記録
- 群れエンカウント勝利時に「○○島の魔物の巣窟を踏破した」を旅の記憶帳(既存)に記録
- エンドカードの冒険の記録に「群れ討伐数」を追加表示
---
## 3. 既存機能との整合(壊さない点)
- `encounter_type` フラグがない既存の戦闘データはすべて従来の単体戦闘として扱い、後方互換を維持
- 群れ戦闘のCanvas描画は既存の単体モンスター描画関数をラップして縮小呼び出しするため、単体戦闘の描画ロジックは変更しない
- 既存の `rpgsf_save_states` のJSONカラムに `encounter_type` を追記するだけで対応可能(スキーマ変更不要)
- スマホ用コマンドタブへの「なぎはらう」追加は既存タブのボタンリストに条件付き挿入で対応
- 巣窟タイル `NK` は既存タイルと同様に `walk: true` なので移動ロジックの変更は不要
💬 返信 (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