リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
DQ3風「日本語フルネーム入力+性格診断」でキャラクター個性パラメータを自動付与
## 1. 目的
DQ3の「名前入力→性格診断テスト」を模したキャラクター個性付与システムを実装する。
パーティ編成画面(party.php)で名前入力後に簡易診断(3〜4問の選択肢)を行い、「ゆうかん」「おっちょこちょい」「かしこい」などの性格をキャラに割り当て、その性格がステータス成長率や戦闘中の行動傾向に影響するようにする。
これによりキャラクターへの愛着が増し、リプレイ意欲が向上する。
## 2. 仕様
### 2-1. 性格テーブル(PHP配列)
`rpgsf_assets()` の `personalities` キーに以下を追加する(各性格6種程度):
```php
'personalities' => [
'brave' => ['name'=>'ゆうかん', 'atk_rate'=>1.10, 'def_rate'=>0.95, 'mp_rate'=>0.90, 'desc'=>'攻撃を優先する。'],
'clever' => ['name'=>'かしこい', 'atk_rate'=>0.95, 'def_rate'=>1.00, 'mp_rate'=>1.20, 'desc'=>'魔法の威力が増す。'],
'sturdy' => ['name'=>'がんばりや', 'atk_rate'=>1.00, 'def_rate'=>1.15, 'mp_rate'=>0.95, 'desc'=>'HPが多く育つ。'],
'reckless'=> ['name'=>'あばれんぼう', 'atk_rate'=>1.15, 'def_rate'=>0.85, 'mp_rate'=>0.90, 'desc'=>'攻撃は高いが守りが弱い。'],
'lucky' => ['name'=>'しあわせもの', 'atk_rate'=>1.00, 'def_rate'=>1.00, 'mp_rate'=>1.00, 'desc'=>'ゴールドを多く手に入れやすい。gold_bonus:1.2'],
'normal' => ['name'=>'ふつう', 'atk_rate'=>1.00, 'def_rate'=>1.00, 'mp_rate'=>1.00, 'desc'=>'バランス型。'],
]
```
### 2-2. 診断フロー(party.php)
- 名前入力後「性格を調べる」ボタンを押すとJSで診断モーダルを表示(PHPで描画したHTML、JS切り替えのみ)。
- モーダル内に3問(例:「戦いが始まったら? A:真っ先に飛び込む B:仲間を守る C:呪文を唱える」など)を表示。
- 全問回答すると選択パターンをhiddenフィールドに設定して閉じる。
- 未診断の場合はランダムで性格を割り当てる(スキップ可)。
### 2-3. 診断ロジック(PHP)
`rpgsf_diagnose_personality(array $answers): string` 関数を `lib.php` に追加。
回答パターンと性格IDのマッピングをPHP配列で管理。
### 2-4. ステータス反映
`rpgsf_create_party_member()` / `rpgsf_initial_state()` 時に `personality_id` をメンバーデータに保存。
レベルアップ時のHP/MP/ATK/DEF増分に `personalities[$id]['*_rate']` を乗算する(整数化)。
`lucky` の場合は戦闘後ゴールド取得時に `gold_bonus` を乗算。
### 2-5. 表示
- パーティ編成画面:各メンバーカードに性格名と説明を表示。
- ステータスカード(play.php):職業名の隣に性格名を `(ゆうかん)` 形式で小文字表示。
- 性格はセーブデータの `state_json` に含まれるため既存セーブとの互換は `personality_id` がなければ `'normal'` を使うフォールバックで保証。
## 3. 既存機能との整合
- `rpgsf_create_party_member()` の引数に `$personality_id = 'normal'` をデフォルト値で追加し後方互換を維持。
- 転職システム・スキル習得・モンスター勧誘には影響しない。
- DB変更不要(`state_json` に格納)。
- スマホ対応:診断モーダルはCSS flexboxで縦並びボタンにする。
## 4. 実装規模
PHP関数1つ追加、`rpgsf_assets()` 1配列追加、party.phpにHTML/JSモーダル追加、play.phpのステータス表示に1行追加、レベルアップ処理に乗算1箇所追加。1サイクルで完結する規模。
DQ3の「名前入力→性格診断テスト」を模したキャラクター個性付与システムを実装する。
パーティ編成画面(party.php)で名前入力後に簡易診断(3〜4問の選択肢)を行い、「ゆうかん」「おっちょこちょい」「かしこい」などの性格をキャラに割り当て、その性格がステータス成長率や戦闘中の行動傾向に影響するようにする。
これによりキャラクターへの愛着が増し、リプレイ意欲が向上する。
## 2. 仕様
### 2-1. 性格テーブル(PHP配列)
`rpgsf_assets()` の `personalities` キーに以下を追加する(各性格6種程度):
```php
'personalities' => [
'brave' => ['name'=>'ゆうかん', 'atk_rate'=>1.10, 'def_rate'=>0.95, 'mp_rate'=>0.90, 'desc'=>'攻撃を優先する。'],
'clever' => ['name'=>'かしこい', 'atk_rate'=>0.95, 'def_rate'=>1.00, 'mp_rate'=>1.20, 'desc'=>'魔法の威力が増す。'],
'sturdy' => ['name'=>'がんばりや', 'atk_rate'=>1.00, 'def_rate'=>1.15, 'mp_rate'=>0.95, 'desc'=>'HPが多く育つ。'],
'reckless'=> ['name'=>'あばれんぼう', 'atk_rate'=>1.15, 'def_rate'=>0.85, 'mp_rate'=>0.90, 'desc'=>'攻撃は高いが守りが弱い。'],
'lucky' => ['name'=>'しあわせもの', 'atk_rate'=>1.00, 'def_rate'=>1.00, 'mp_rate'=>1.00, 'desc'=>'ゴールドを多く手に入れやすい。gold_bonus:1.2'],
'normal' => ['name'=>'ふつう', 'atk_rate'=>1.00, 'def_rate'=>1.00, 'mp_rate'=>1.00, 'desc'=>'バランス型。'],
]
```
### 2-2. 診断フロー(party.php)
- 名前入力後「性格を調べる」ボタンを押すとJSで診断モーダルを表示(PHPで描画したHTML、JS切り替えのみ)。
- モーダル内に3問(例:「戦いが始まったら? A:真っ先に飛び込む B:仲間を守る C:呪文を唱える」など)を表示。
- 全問回答すると選択パターンをhiddenフィールドに設定して閉じる。
- 未診断の場合はランダムで性格を割り当てる(スキップ可)。
### 2-3. 診断ロジック(PHP)
`rpgsf_diagnose_personality(array $answers): string` 関数を `lib.php` に追加。
回答パターンと性格IDのマッピングをPHP配列で管理。
### 2-4. ステータス反映
`rpgsf_create_party_member()` / `rpgsf_initial_state()` 時に `personality_id` をメンバーデータに保存。
レベルアップ時のHP/MP/ATK/DEF増分に `personalities[$id]['*_rate']` を乗算する(整数化)。
`lucky` の場合は戦闘後ゴールド取得時に `gold_bonus` を乗算。
### 2-5. 表示
- パーティ編成画面:各メンバーカードに性格名と説明を表示。
- ステータスカード(play.php):職業名の隣に性格名を `(ゆうかん)` 形式で小文字表示。
- 性格はセーブデータの `state_json` に含まれるため既存セーブとの互換は `personality_id` がなければ `'normal'` を使うフォールバックで保証。
## 3. 既存機能との整合
- `rpgsf_create_party_member()` の引数に `$personality_id = 'normal'` をデフォルト値で追加し後方互換を維持。
- 転職システム・スキル習得・モンスター勧誘には影響しない。
- DB変更不要(`state_json` に格納)。
- スマホ対応:診断モーダルはCSS flexboxで縦並びボタンにする。
## 4. 実装規模
PHP関数1つ追加、`rpgsf_assets()` 1配列追加、party.phpにHTML/JSモーダル追加、play.phpのステータス表示に1行追加、レベルアップ処理に乗算1箇所追加。1サイクルで完結する規模。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (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