132 lines
6.1 KiB
Markdown
132 lines
6.1 KiB
Markdown
# 05c · 《剑与声》增补规范(26 号对齐)
|
||
|
||
> 补 [05-rpg-chapter1.md](05-rpg-chapter1.md):战斗事件×音效、无声前摇、amb 与 BGM、流程细节。与主文档冲突时:**数值与资产以 chapter1 为准;交互以 26 号 + 05 号 §0 为准。**
|
||
|
||
---
|
||
|
||
## 0. 设计单增量
|
||
|
||
格挡教学手势=前摇内单击。无声敌人窗口=系统 `danger` earcon(必出声)+ 可选震动补充。防御指令全平台兜底。回执 ok/invalid/busy ≤100ms,禁止只震。
|
||
|
||
---
|
||
|
||
## 1. 战斗事件 × 音效 × 回执(震动只能补充)
|
||
|
||
手势识别震(swipe/confirm)由 gesture.js 内置,下表不重复。
|
||
|
||
| 战斗事件 | sfx | 回执 | 震动(补充) | 语音 |
|
||
|---|---|---|---|---|
|
||
| 遭遇开始 | — | — | — | `btl_start_<enemy>` |
|
||
| 指令切换 | — | `ok` 或报名即 silent-ok | swipe 内置 | `cmd_*` |
|
||
| 攻击命中 | `atk_swing` + `atk_hit` | silent-ok | — | 半血/死亡见下 |
|
||
| 破空斩 | `skill_slash` | silent-ok | — | mp 不足 `btl_nomp` |
|
||
| 防御指令 | — | `ok` | — | 无播报,下回合减伤自明 |
|
||
| 金疮药 | `potion` | silent-ok | pickup | 无药 `btl_noitem` |
|
||
| **有声前摇** | `tel_<enemy>` | — | 可选一次 `beat` | — |
|
||
| **无声前摇开窗** | **`danger` earcon(系统合成,必响)** | — | 可选 danger 型 | — |
|
||
| **格挡成功**(窗口单击或同向滑) | `parry` | silent-ok | confirm 可选 | — |
|
||
| 窗口内无效手势 | — | `invalid` | error 可选 | 该格首次:「现在点一下挡住。」 |
|
||
| 受击未格挡 | `hurt` | — | hit 可选 | 降档才 `st_hp_mid/low` |
|
||
| 敌方半血 | — | — | — | `npc_*_half` / Boss §4 |
|
||
| 击杀 | `enemy_die` | — | success 可选 | `btl_enemy_die` |
|
||
| 胜利 | `victory` | — | — | `btl_win` + `btl_loot_*` |
|
||
| 升级 | `levelup` | — | success 可选 | `btl_levelup` |
|
||
| 逃跑成功 | `flee` | silent-ok | — | `btl_flee` |
|
||
| 逃跑失败 | — | `invalid` | error 可选 | `btl_noflee` 或 `btl_flee_fail` |
|
||
| 战败 | `hurt` | — | hit 可选 | `btl_lose` → `btl_lose_hint` |
|
||
|
||
**前摇窗口标识**:有声敌人靠 `tel_*`;无声敌人靠 **danger earcon**。iOS 无震动:**零信息损失**——earcon + 格挡单击 + 防御指令都在。废止「iOS 无声敌人不可格挡」。
|
||
|
||
---
|
||
|
||
## 2. Boss 无声前摇协议(影卫 / 白无瞳)
|
||
|
||
| 时刻 | 声音(主) | 震动(补充) |
|
||
|---|---|---|
|
||
| 窗口开 t=0 | `danger` earcon | 可选 danger 脉冲 |
|
||
| 窗口中点 t=0.5s(听风剑则 0.65s) | 可选极轻 nudge,不得新语言 | 可选 heartbeat |
|
||
| 格挡成功 | `parry` | confirm 可选 |
|
||
| 未格挡关闭 | `hurt` | hit 可选 |
|
||
|
||
规则:
|
||
|
||
1. 只有无声敌人用 danger earcon 当窗口;有声敌人只用 `tel_*`,不要叠 danger(danger 语义=「听不见招,但系统告诉你现在挡」)。
|
||
2. **防御指令对所有平台必要**(减伤 50%,不看时机)。不是 iOS 专属补丁。
|
||
3. 听风剑窗口 1.0→1.3s,中点顺延。
|
||
4. 判定与有声相同:窗口内单击或(有方向时)同向滑。无声敌人无方向,只认单击。
|
||
5. NPC 进场句可暗示「点一下」或「选防御」,**不要教双击、不要暗示只有震动能挡**。
|
||
|
||
---
|
||
|
||
## 3. 音频层叠(保留裁定,对齐 10 号)
|
||
|
||
| 场景/状态 | bgm 层 | amb(sfx loop) |
|
||
|---|---|---|
|
||
| village | `bgm/village` | `amb_village`(bgm=0 时垫底) |
|
||
| 其他探索 | `bgm/explore` 0.35 | `amb_<scene>` |
|
||
| 普通战斗 | `bgm/battle` | amb 停 |
|
||
| Boss | `bgm/boss` | amb 停 |
|
||
| 章结算 | `bgm/ending` | amb 停 |
|
||
| 玩家回合 | battle 不切 | —;起等待声或靠指令名 |
|
||
|
||
`bgm=0`:不加载任何 `bgm/`;amb 仍循环。等待声、回执、earcon 仍在。amb 实现:`audio._load` + BufferSource loop 接 `_sfxBus`。
|
||
|
||
整条语音链期间 BGM duck,句间不得抬回。
|
||
|
||
---
|
||
|
||
## 4. Boss 阶段转换(保留)
|
||
|
||
| Boss | 阶段 | 触发 | 表现 |
|
||
|---|---|---|---|
|
||
| 黑风寨主 | 二阶段 ATK 10→12 | HP≤50% | warning 可选 + `npc_boss1_2` + `tel_boss1` playbackRate 1.2 |
|
||
| 腐沼祭主 | 二阶段 | HP≤50% | 召唤 2 毒蛛入连战队列 + 半血句 |
|
||
| 白无瞳 | 三阶段完全无声 | HP≤50% / ≤25% | 每阶段 warning 可选;三阶段进场教学句后走 §2 earcon 协议 |
|
||
|
||
---
|
||
|
||
## 5. 补充台词(ch2/3 最小集,不改 ch1 voice-ids 文件)
|
||
|
||
| id | 角色 | 全文 | 用途 |
|
||
|---|---|---|---|
|
||
| `npc_boss3_warn` | 旁白 | 他没有声音。竖起耳朵也没用。听到叮一声,点一下挡住。来不及,就选防御。 | 白无瞳三阶段;明示单击+防御,不提双击/只靠手震 |
|
||
| `btl_half_shaman` | 蛊师 | (ch2 表补全文) | 半血 |
|
||
| `btl_half_shadow` | 影卫 | (ch3 表补全文) | 半血 |
|
||
|
||
ch2/3 表格式沿用 ch1 voice-ids。
|
||
|
||
---
|
||
|
||
## 6. 流程细节
|
||
|
||
1. 上滑链:探索 `st_lv_*` → `st_hp_*` → `st_gold_*` → `st_weapon_*` → `st_armor_*`,可打断。
|
||
2. 战斗上滑:己方档 + `foe_hp_high/mid/low` 三句(不复用玩家档)。
|
||
3. 连战:第一只死 → `btl_enemy_die` → 不停 BGM → 下一只 `btl_start_*` + 前摇;HP/MP 不回,指令重置为攻击。
|
||
4. `stats.playSec`:探索+战斗实际时长,菜单/结算不计。
|
||
5. schema≠1:可 `sys_new_game` 重开,stats 保留。
|
||
6. 探索菜单=左右滑+单击(与 00 §5.4 同构)。战斗下滑=逃跑,不设菜单。
|
||
7. 教学战看门狗:每步静默走三档,不原样复读长说明书;第 3 次演示通过。
|
||
|
||
---
|
||
|
||
## 7. 施工核对
|
||
|
||
- [x] 场景图 / 遭遇 / 10 状态机(chapter1)
|
||
- [x] 数值 + 装备节点
|
||
- [x] 存档 + summary + battlesWon
|
||
- [x] 格挡=窗口单击;无声=earcon+防御
|
||
- [x] amb 走 sfx loop + 10 号 BGM 表
|
||
- [ ] ch2/3 台词与正文
|
||
|
||
---
|
||
|
||
## 8. 废止
|
||
|
||
| 废止 | 改为 |
|
||
|---|---|
|
||
| 格挡成功靠「双击无延迟」 | `doubleTapWindow: 0` 或前摇期 immediateTap;手势是单击 |
|
||
| 无声窗口 = 仅 danger 震;iOS 不可格挡 | earcon 必响;防御全平台 |
|
||
| 「绝不回退提示音」理解成无声反馈 | 回执与 earcon 永远出声 |
|
||
| 探索期取消 `bgm/explore` 与 10 号打架 | 10 号:explore 宏观 + amb 景 |
|
||
| 菜单双击执行 | 单击确认 |
|