リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
戦闘・マップ画面にアニメーション付きステータスHUDバーを追加(HP/MP/EXPゲージのリアルタイム変化演出)
## 1. 目的
現在のHP/MP/EXPはテキスト数値やCSSバーで表示されているが、ダメージ・回復・経験値獲得時に数値がただ変わるだけで視覚的フィードバックが薄い。SFC風RPGらしい「ゲージが滑らかに増減するアニメーション」と「ダメージ時の赤フラッシュ・回復時の緑フラッシュ」をCanvasまたはCSS Transitionで実装し、戦闘の臨場感を大幅に向上させる。
## 2. 具体的な仕様
### 2-1. HPゲージアニメーション
- 戦闘画面・マップ画面の主人公・仲間HPバー要素(`.hp-bar-fill` 相当)に `transition: width 0.45s cubic-bezier(0.4,0,0.2,1)` を適用
- ダメージ時:バーの色を一瞬赤 (`#ff4444`) にしてから元色(緑→黄→赤グラデーション)に戻すCSSアニメーション `@keyframes hp-damage-flash`
- 回復時:バーの色を一瞬水色 (`#44eeff`) にしてから元色に戻す `@keyframes hp-heal-flash`
- HP残量に応じてバー色を変化:75%以上=緑 `#44bb44`、50-74%=黄緑 `#aacc00`、25-49%=黄 `#ddaa00`、25%未満=赤 `#cc2222`(ピコピコ点滅アニメ `@keyframes hp-danger-blink` を追加)
### 2-2. MPゲージアニメーション
- 魔法使用時:バーが縮む際に `transition: width 0.35s ease-in` + 一瞬紫フラッシュ `#aa44ff`
- MP回復時:バーが伸びる際に `transition: width 0.6s ease-out` + 一瞬水色フラッシュ
### 2-3. EXPゲージアニメーション
- 経験値獲得時:バーが右に伸びる際 `transition: width 0.8s ease-out` + 金色フラッシュ `#ffdd44`
- レベルアップ時:EXPバーが一度満タンになってからリセットされる2段階アニメーション(既存のfx-levelupクラスと連動)
### 2-4. ダメージ数値ポップアップ(フロートテキスト)
- 戦闘画面でダメージ・回復が発生した際、対象キャラのステータスカード上部に数値をふわりと浮かび上がらせるCSS演出
- ダメージ: 赤色テキスト `-{数値}` が上方向にフェードアウト(duration 1.2s)
- 回復: 緑色テキスト `+{数値}` が上方向にフェードアウト(duration 1.2s)
- `@keyframes float-damage { 0%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-40px)} }`
- JS側:rpgsf_apply_action後のリダイレクト時にsessionStorageへ `{target:'hero'|'party0'|'enemy0', value:数値, type:'damage'|'heal'}` を一時保存し、ページロード後にJSがsessionStorageを読んでDOMに`.float-number`要素を動的生成して演出を発火
### 2-5. 仲間HPバーの危機演出
- 戦闘画面の仲間ステータスカードで、HPが25%未満の仲間のカード全体を薄赤背景 `rgba(200,30,30,0.18)` にし、0.8sでゆっくり点滅するCSSアニメーションを付与
- `.party-card.danger { animation: card-danger-pulse 0.8s ease-in-out infinite alternate; }`
## 3. 実装箇所
- `pages/play.php` のCSSブロック(`<style>`)にアニメーション定義を追加
- 同ページ末尾の`<script>`ブロックにsessionStorage読み取り→フロートテキスト生成のJS(約30行)を追加
- PHPアクション処理後のリダイレクト直前に `$_SESSION['battle_fx']` へダメージ値を一時格納し、ページ初期表示時にJSへJSON埋め込みで渡す(既存のfx_class変数と同様の手法)
- 既存のHP/MPバー要素のCSSクラスに `transition` と `data-hp-pct` 属性を追加するのみで、既存レイアウトは一切変更しない
## 4. 既存機能との整合
- 既存の `fx-damage`, `fx-levelup`, `fx-attack` などのCSSクラスとは別のアニメーションとして定義し、競合しない
- スマホ・PCともにCSSアニメーションのみで動作するため追加ライブラリ不要
- `prefers-reduced-motion` メディアクエリで `animation: none; transition: none;` にフォールバックし、アクセシビリティに配慮
- sessionStorage使用のためDB変更・schema変更は一切不要
現在のHP/MP/EXPはテキスト数値やCSSバーで表示されているが、ダメージ・回復・経験値獲得時に数値がただ変わるだけで視覚的フィードバックが薄い。SFC風RPGらしい「ゲージが滑らかに増減するアニメーション」と「ダメージ時の赤フラッシュ・回復時の緑フラッシュ」をCanvasまたはCSS Transitionで実装し、戦闘の臨場感を大幅に向上させる。
## 2. 具体的な仕様
### 2-1. HPゲージアニメーション
- 戦闘画面・マップ画面の主人公・仲間HPバー要素(`.hp-bar-fill` 相当)に `transition: width 0.45s cubic-bezier(0.4,0,0.2,1)` を適用
- ダメージ時:バーの色を一瞬赤 (`#ff4444`) にしてから元色(緑→黄→赤グラデーション)に戻すCSSアニメーション `@keyframes hp-damage-flash`
- 回復時:バーの色を一瞬水色 (`#44eeff`) にしてから元色に戻す `@keyframes hp-heal-flash`
- HP残量に応じてバー色を変化:75%以上=緑 `#44bb44`、50-74%=黄緑 `#aacc00`、25-49%=黄 `#ddaa00`、25%未満=赤 `#cc2222`(ピコピコ点滅アニメ `@keyframes hp-danger-blink` を追加)
### 2-2. MPゲージアニメーション
- 魔法使用時:バーが縮む際に `transition: width 0.35s ease-in` + 一瞬紫フラッシュ `#aa44ff`
- MP回復時:バーが伸びる際に `transition: width 0.6s ease-out` + 一瞬水色フラッシュ
### 2-3. EXPゲージアニメーション
- 経験値獲得時:バーが右に伸びる際 `transition: width 0.8s ease-out` + 金色フラッシュ `#ffdd44`
- レベルアップ時:EXPバーが一度満タンになってからリセットされる2段階アニメーション(既存のfx-levelupクラスと連動)
### 2-4. ダメージ数値ポップアップ(フロートテキスト)
- 戦闘画面でダメージ・回復が発生した際、対象キャラのステータスカード上部に数値をふわりと浮かび上がらせるCSS演出
- ダメージ: 赤色テキスト `-{数値}` が上方向にフェードアウト(duration 1.2s)
- 回復: 緑色テキスト `+{数値}` が上方向にフェードアウト(duration 1.2s)
- `@keyframes float-damage { 0%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-40px)} }`
- JS側:rpgsf_apply_action後のリダイレクト時にsessionStorageへ `{target:'hero'|'party0'|'enemy0', value:数値, type:'damage'|'heal'}` を一時保存し、ページロード後にJSがsessionStorageを読んでDOMに`.float-number`要素を動的生成して演出を発火
### 2-5. 仲間HPバーの危機演出
- 戦闘画面の仲間ステータスカードで、HPが25%未満の仲間のカード全体を薄赤背景 `rgba(200,30,30,0.18)` にし、0.8sでゆっくり点滅するCSSアニメーションを付与
- `.party-card.danger { animation: card-danger-pulse 0.8s ease-in-out infinite alternate; }`
## 3. 実装箇所
- `pages/play.php` のCSSブロック(`<style>`)にアニメーション定義を追加
- 同ページ末尾の`<script>`ブロックにsessionStorage読み取り→フロートテキスト生成のJS(約30行)を追加
- PHPアクション処理後のリダイレクト直前に `$_SESSION['battle_fx']` へダメージ値を一時格納し、ページ初期表示時にJSへJSON埋め込みで渡す(既存のfx_class変数と同様の手法)
- 既存のHP/MPバー要素のCSSクラスに `transition` と `data-hp-pct` 属性を追加するのみで、既存レイアウトは一切変更しない
## 4. 既存機能との整合
- 既存の `fx-damage`, `fx-levelup`, `fx-attack` などのCSSクラスとは別のアニメーションとして定義し、競合しない
- スマホ・PCともにCSSアニメーションのみで動作するため追加ライブラリ不要
- `prefers-reduced-motion` メディアクエリで `animation: none; transition: none;` にフォールバックし、アクセシビリティに配慮
- sessionStorage使用のためDB変更・schema変更は一切不要
💬 返信 (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