Files
SoundGame/tools/voice_lines_26/bridge.md
T
xsl ee5d4d2544 feat(playbook): 26 号交互手册全量落地——剩余 12 款深度重构 + 语音全量重制
storyline/escape/simon 首批之后的推广收官:15 款全部按 26 号模式运行
(发言权/回执/三档提示/迷茫接管/手势阶梯/断点复述),旧「双击重听/格挡/
菜单确认」等反模式口径全线废除,开场零规则念白(首句即动手)。

游戏层(12 款):rpg(格挡=前摇窗口内再单击)/ rhythm / space / radio /
dungeon / abyss / detective / cipher / teahouse / keeper / bridge /
hunt(联机切片):
- 每款 game.js 接引擎六模块 + makeInputPipeline(doubleTapWindow:0);
  四向玩法类 swipeCore + 长按帮助;双击是玩法的(space 护盾 / hunt
  旋风斩)按手势阶梯阶段 3 分档恢复双击窗口(doubletapCore)
- 每款 playtest 重写:玩法断言 + §6.2 乱点机器人(无声操作 / 被动
  原句重复 / 打断失败 = 0);15 款 3900+ 断言全绿
- 12 份 docs/design/26-apply-*.md 施工单 + tools/voice_lines_26/
  台词清单 + voice-ids 文档同步 + 转写会话剧本按新口径重写

引擎层(web/engine/,6 处修复):pipeline 增 doubletapCore;novice
teachLine 带 voice/ 前缀(此前教学句被静默丢弃);confusion.record
前置到新手门(锁定手势的乱点也计信号);InvalidHints 播完恢复解释前
状态(根治孤儿 BUSY);WaitPoint takeover(2) 台账去重;台账只在
speak 真正播出时登记。遗留引擎债登记 roadmap §3.1。

语音资产:台词表合并(新增 ~250 系统句 / 改 ~50 旧口径 / 删 ~110
废止句;合并器 tools/merge_voice_lines_26.py + 引用校验器
tools/validate_voice_refs.py),GPU 重录 1536 wav → 4204 ogg/m4a
落地,check_all_assets + validate_voice_refs 双绿;键盘变体同步扩表。

大厅/文档:15 款统一新交互口径(「新交互」徽标退役);README /
HANDOVER / rpg README 旧口径修正;roadmap P0-P3 置完成。
2026-10-02 12:33:20 +08:00

152 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 《星环舰长》26 号重构台词清单(bridge)
> 生成依据:`tools/gen_voice_dual.py` BRIDGE_LINES 段(变量名 `_BRIDGE`,全表同一
> instruct 常量)。本清单为 BRIDGE_LINES 的**增量替换稿**:新增 / 修改 / 删除 /
> 键盘变体四节。交互与写作规范:
> [26-audio-interaction-playbook.md](../../docs/design/26-audio-interaction-playbook.md);
> 施工图(状态×手势矩阵/等待点/首 3 分钟)[22-bridge.md 附录 C](../../docs/design/22-bridge.md);
> 施工单 [26-apply-bridge.md](../../docs/design/26-apply-bridge.md);登记副本同步
> [22-bridge-voice-ids.md](../../docs/design/22-bridge-voice-ids.md)。
>
> 写作检查:指令 ≤12 字;`_short` ≤6 字;叙事 ≤25 字;每句标类别
> (critical / content / hint / feedback);「重听」一律作「重新听」(多音字,
> 本表用「再听一遍/听完」绕开);通用系统句与 storyline 文案逐字一致
> (sys_first_tap / sys_first_tap_short / sys_turn_teach / sys_say_again /
> sys_unlock_up / sys_unlock_down / sys_unlock_dt)。
>
> 双性别:male=Uncle_Fu / female=Serena;instruct 沿用 `_BRIDGE`
> (「低沉沉稳的男声,舰载系统音,冷静克制」/「清晰沉稳的女声,舰载系统音,
> 冷静克制,句读干净」)。NPC 12 句(BRIDGE_NPC:大副 Dylan / 工程师 Eric /
> 医师 Vivian 平铺单音色)**一字不动**。四象限靠听、左右滑换选项、单击下令、
> 上滑巡检=我在哪、下滑菜单是本作核心,全部新句按此口径措辞。
## 1. 新增(23 句)
```python
BRIDGE_LINES += [
# ---- 通用系统句(文案与 STORYLINE_LINES 逐字一致,00 号 §5.2 阶梯表)----
("sys_first_tap", _BRIDGE, "点一下屏幕。"), # critical(开场唯一一次指令)
("sys_first_tap_short", _BRIDGE, "点一下。"), # hint(intro/title 等待点短档)
("sys_turn_teach", _BRIDGE, "听到这个声音,就是轮到你了。"), # content(等待声首现教学,挂 D0 链首)
("sys_say_again", _BRIDGE, "再说一遍:"), # hint(主动重听前缀,阶段 3)
("sys_unlock_up", _BRIDGE, "想知道自己在哪,就向上滑。"), # content(D0 巡检链尾,阶段 1 提前解锁)
("sys_unlock_down", _BRIDGE, "向下滑,可以打开菜单。"), # content(第一次返航结算链尾,阶段 2)
("sys_unlock_dt", _BRIDGE, "没听清,就双击,再听一遍。"), # content(累计 3 局,阶段 3)
# ---- 等待点提示两档(22 附录 C §5 表逐字;_short ≤6 字)----
("hint_inspect_full", _BRIDGE, "向上滑,听四个系统。"), # hint(inspect 等待点)
("hint_inspect_short", _BRIDGE, "向上滑。"), # hint
("hint_route_full", _BRIDGE, "左右滑选航线。点一下定。"), # hint(route 等待点)
("hint_route_short", _BRIDGE, "左右滑。"), # hint
("hint_decide_full", _BRIDGE, "左右滑听命令。点一下下令。"), # hint(decide 等待点;22 附录 C 原文「点一下下」系笔误,按指令句式落定)
("hint_dock_full", _BRIDGE, "点一下,启航。"), # hint(dock 等待点)
("hint_dock_short", _BRIDGE, "单击。"), # hint
# ---- 无效操作解释(原则 7:每「状态×手势」一次)----
("inv_detect", _BRIDGE, "先听类型和方位。"), # feedback(检测链被打断,续播链头)
("inv_cruise", _BRIDGE, "现在不用选。点一下听警报,或向上滑。"), # feedback(巡航空闲乱滑,22 §7 失败表逐字)
("inv_tour", _BRIDGE, "巡检中,先听完。"), # feedback(巡检链播中乱滑)
("inv_drill", _BRIDGE, "先向上滑,听全舰。"), # feedback(教学等上滑步乱按)
("inv_title", _BRIDGE, "点一下开始,右滑进星港。"), # feedback(标题页左滑)
("inv_report", _BRIDGE, "巡逻结束了。点一下,返航。"), # feedback(结算完左右滑)
("inv_up_locked", _BRIDGE, "上滑还没解锁。先点一下继续。"), # feedback(锁定手势首次解释,管道口径)
("inv_down_locked", _BRIDGE, "菜单,玩完一局解锁。"), # feedback(锁定手势首次解释)
# ---- 菜单(00 §5.4:左右滑换项+单击确认;破坏性二次确认)----
("menu_restart_confirm", _BRIDGE, "放弃就丢了这局。再点一下。"), # feedback(「放弃巡逻」二次确认)
]
```
## 2. 修改(2 句;旧文案废止口径见 §3)
```python
# 旧 → 新(整句替换,id 不变)
("sys_menu", _BRIDGE, "菜单。左右滑换项,单击确认。"), # 旧「菜单。单击切换,双击确认。」——菜单双击确认废止(00 §5.4);hint
("sys_help", _BRIDGE, "上滑巡检全舰,点一下重播告警。危机时,左右滑听命令,单击下令。"), # 旧含「下滑菜单,双击重新听」——双击重新听废止(新手期);hint
```
> 沿用不重录:gd_invalid「这个操作,这里用不上。」——角色从看门狗纠错句改为锁定
> 手势(长按)首次解释句,文案不变。
## 3. 删除(11 句;音频随本轮 convert 后删除)
```python
# id:废止原因
("intro_1",) # 开场规则念白废除(§4.10 反模式 6)——第一句即 critical 指令句;方位教学由 D0 巡检四音当场承担
("intro_2",) # 同上
("intro_3",) # 同上
("intro_4",) # 同上
("intro_5",) # 同上(受殃规则承诺改由检测链方位句+危机矩阵当场兑现)
("tut_d0",) # 「先试巡检。向上滑,听全舰状态。」→ hint_inspect_full(22 附录 C §5 逐字)
("tut_skip",) # 教学不可跳(下滑=菜单在阶段 2 才解锁;D0/D3 由迷茫 L3 替播巡检自动过步)
("gd_decide",) # 看门狗重播说明书废除——decide 等待点两档提示 + 窗内 tick 已催(22 附录 C §5 注)
("gd_dock",) # 同上——dock 等待点两档提示 + 迷茫 L3 替启航承接
("hint_dock3",)# 「整备完毕,就启航。」——DOCK 无进展轨三级提示由等待点提示+接管 L3 替启航承接
("sys_menu_help",) # 菜单项「重新听帮助」——菜单内上滑=sys_help 已覆盖(00 §5.4 菜单三态)
```
## 4. 键盘变体(KEY_LINES["bridge"] 替换稿 31 句;措辞照 KEY_LINES["storyline"] 口径)
> 规则同 KEY_LINES["storyline"]:向左滑→按左方向键(四向同理);单击→按空格;
> 双击→按回车;长按→按住空格。只改操作词,其余一字不动。
```python
KEY_LINES["bridge"] = [
# ---- 通用系统句 ----
("sys_first_tap", "按空格。"),
("sys_first_tap_short", "按一下空格。"),
("sys_turn_teach", "听到这个声音,就是轮到你了。"),
("sys_say_again", "再说一遍:"),
("sys_unlock_up", "想知道自己在哪,就按上方向键。"),
("sys_unlock_down", "按下方向键,可以打开菜单。"),
("sys_unlock_dt", "没听清,就按回车,再听一遍。"),
# ---- 等待点提示两档 ----
("hint_inspect_full", "按上方向键,听四个系统。"),
("hint_inspect_short", "按上方向键。"),
("hint_route_full", "左右方向键选航线。按空格定。"),
("hint_route_short", "左右方向键。"),
("hint_decide_full", "左右方向键听命令。按空格下令。"),
("hint_dock_full", "按空格,启航。"),
("hint_dock_short", "按空格。"),
# ---- 无效操作解释 ----
("inv_detect", "先听类型和方位。"),
("inv_cruise", "现在不用选。按空格听警报,或按上方向键。"),
("inv_tour", "巡检中,先听完。"),
("inv_drill", "先按上方向键,听全舰。"),
("inv_title", "按空格开始,右方向键进星港。"),
("inv_report", "巡逻结束了。按空格,返航。"),
("inv_up_locked", "上方向键还没解锁。先按空格继续。"),
("inv_down_locked", "菜单,玩完一局解锁。"),
("menu_restart_confirm", "放弃就丢了这局。再按一次。"),
# ---- 沿用句的键盘变体(触屏版不变,键盘态换操作词)----
("sys_menu", "菜单。左右方向键换项,按空格确认。"),
("sys_help", "上方向键巡检全舰,按空格重播告警。危机时,左右方向键听命令,按空格下令。"),
("tut_decide", "方向键听选项,按空格下令。"),
("cr_decide", "听选项,按空格下令。"),
("dock_open", "靠港整备。方向键看项目,按空格执行。"),
("gd_cruise", "还在巡航。按上方向键,巡检全舰。"),
("sys_continue_ask", "检测到未完成的巡逻。按空格继续,右方向键进星港。"),
("settle_hook", "星港期待你的下一次巡逻。按空格,返航。"),
]
```
> 沿用不重录(触屏/键盘通用,无操作词或两态一致):除上表外全部主表句
> (含 st_* / evt_* / dir_* / opt_* / res_* / loy_* / sup_* / rep_* / die_* /
> rate_* / merit_* / upg_* / port_* / route_* / sys_*_dmg/off / sys_new_patrol /
> sys_saved / settings_hint / recap_go / tut_crisis / tut_all_ok / tut_aid /
> tut_after / tut_loyal / tut_done / trap_hint / cr_timeout / gd_invalid)。
> NPC 12 句(BRIDGE_NPC)平铺不动。
## 生成与验收口径
- 汇总表 = 沿用 119 + 修改 2 + 新增 23 = 144 句主表(双性别 288 条);
NPC 平铺 12 不动;键盘变体 31 句(旧 10 对中 7 对沿用改词、3 对随主表删除、
新增 24 对)。
- 生成:`.venv-tts/bin/python tools/gen_voice_dual.py --game bridge --gender both`
(flock .gpu.lock);检查 `--check`;转码 `--convert`;`--only-variants` 单独补
键盘变体。
- convert 后删除废止 id 音频(male/female 共 11 id ×2 格式):intro_1..5 /
tut_d0 / tut_skip / gd_decide / gd_dock / hint_dock3 / sys_menu_help;
键盘变体删除:key/ 下 tut_d0_k / gd_decide_k / gd_dock_k。
- 落地后把 `web/bridge/test/playtest.mjs` 场景 14 的「旁白基表 132」断言改 144、
「key/ 各 10」断言改 31,并清空文末「26 号新句待生成」信息性清单;
`web/harness/voice_text.json` 的 bridge 主表与 `__key__` 变体表同步本台词
(转写时长估算与 ASR 判定用)。