6.1 KiB
6.1 KiB
05c · 《剑与声》增补规范(26 号对齐)
补 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 可选 |
规则:
- 只有无声敌人用 danger earcon 当窗口;有声敌人只用
tel_*,不要叠 danger(danger 语义=「听不见招,但系统告诉你现在挡」)。 - 防御指令对所有平台必要(减伤 50%,不看时机)。不是 iOS 专属补丁。
- 听风剑窗口 1.0→1.3s,中点顺延。
- 判定与有声相同:窗口内单击或(有方向时)同向滑。无声敌人无方向,只认单击。
- 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. 流程细节
- 上滑链:探索
st_lv_*→st_hp_*→st_gold_*→st_weapon_*→st_armor_*,可打断。 - 战斗上滑:己方档 +
foe_hp_high/mid/low三句(不复用玩家档)。 - 连战:第一只死 →
btl_enemy_die→ 不停 BGM → 下一只btl_start_*+ 前摇;HP/MP 不回,指令重置为攻击。 stats.playSec:探索+战斗实际时长,菜单/结算不计。- schema≠1:可
sys_new_game重开,stats 保留。 - 探索菜单=左右滑+单击(与 00 §5.4 同构)。战斗下滑=逃跑,不设菜单。
- 教学战看门狗:每步静默走三档,不原样复读长说明书;第 3 次演示通过。
7. 施工核对
- 场景图 / 遭遇 / 10 状态机(chapter1)
- 数值 + 装备节点
- 存档 + summary + battlesWon
- 格挡=窗口单击;无声=earcon+防御
- amb 走 sfx loop + 10 号 BGM 表
- ch2/3 台词与正文
8. 废止
| 废止 | 改为 |
|---|---|
| 格挡成功靠「双击无延迟」 | doubleTapWindow: 0 或前摇期 immediateTap;手势是单击 |
| 无声窗口 = 仅 danger 震;iOS 不可格挡 | earcon 必响;防御全平台 |
| 「绝不回退提示音」理解成无声反馈 | 回执与 earcon 永远出声 |
探索期取消 bgm/explore 与 10 号打架 |
10 号:explore 宏观 + amb 景 |
| 菜单双击执行 | 单击确认 |