Files
SoundGame/docs/design/22-bridge-voice-ids.md
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

309 lines
25 KiB
Markdown
Raw Permalink 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.
# 22b · 《星环舰长》语音台词表(voice ids,录音依据)
> **26 号对齐(资产清单,不是交互宪法)**
> - 交互与新手手势以 [26-audio-interaction-playbook.md](26-audio-interaction-playbook.md) 和对应游戏正文为准;施工单见 [26-apply-bridge.md](26-apply-bridge.md)。
> - 本表仍是 TTS id 事实源的**登记副本**(生成以 `tools/gen_voice_dual.py` 为准)。含「双击重听 / 菜单双击确认 / 单击循环菜单」的句子 **已按 26 号口径修改或删除**(26 号重构增量:新增 23 / 修改 2 / 删除 11,见 [tools/voice_lines_26/bridge.md](../../tools/voice_lines_26/bridge.md);下表已同步,标 ~~删除~~ 的行随本轮 convert 后下线)。
> - 写作:指令 ≤12 字,短句档 ≤6 字,叙事 ≤25 字;每句标 `critical` / `content` / `hint` / `feedback`。游戏主动提示不得原样重复;重听前加「再说一遍:」;「重听」一律作「重新听」(多音字)。
> - 键盘变体:新手期回车当空格(单击)。删除「按回车=重听」类旧口径;双击=重新听当前选项句仅在阶段 3 解锁后启用。
> - 共用新句见 [14-guide-layer.md](14-guide-layer.md) §7(`sys_first_tap` 等,文案与 STORYLINE_LINES 逐字一致)。各游戏 `_full` / `_short` 在游戏正文设计单里点名,补进本表后再进生成脚本。
> **给音频总监的录制说明**
> - **旁白双性别组**(26 号重构后实存 144 句,增量见 [tools/voice_lines_26/bridge.md](../../tools/voice_lines_26/bridge.md)):旁白=舰载系统音(系统/教学/状态/账目/结算宣读),不念船员台词。落 `web/bridge/audio/voice/female|male/<id>.{ogg,m4a}`,两性别 id 集合完全一致。
> - female = `Serena`,instruct 常量:`清晰沉稳的女声,舰载系统音,冷静克制,句读干净`
> - male = `Uncle_Fu`,instruct 常量:`低沉沉稳的男声,舰载系统音,冷静克制`
> - 两常量全表统一(含教学/危机/结算),禁止句级变体、禁语速词(引擎 SoundTouch 变速)。
> - **NPC 平铺组**(12 句):船员台词=3 位 NPC 平铺单音色、**不做双性别**,落 `web/bridge/audio/voice/<id>.{ogg,m4a}`(引擎平铺回退命中)。NPC ≤3;同一角色 speaker+instruct 恒定;不加电台/电话滤波。区分度风险逐个标注:
> | 角色 | speaker | instruct 常量 | 区分度风险 |
> |---|---|---|---|
> | 大副(34 岁) | `Dylan` | `干脆利落的年轻男声,星舰大副,令出必行,敬重舰长` | **低:与两侧旁白(Serena/Uncle_Fu)均不同 speaker** |
> | 工程师(52 岁) | `Eric` | `沙哑厚重的中年男声,轮机工程师,惜船如命,慢条斯理` | 低:同上 |
> | 医师(38 岁) | `Vivian` | `温和坚定的女声,舰载医师,轻声但不容置疑` | 低:female 旁白=Serena,不重叠 |
> 本作 NPC 与旁白**零 speaker 重叠**(detective/teahouse 各有 2 处「中」风险,本作 0)。
> - **声音演技**:eng_gripe/xo_uneasy/doc_ignore 的失望、xo_fight/sup_xo 的战斗令——情绪全写在句内文本(省略号/叹号引导),instruct 恒定。
> - **数字规避**:全部量词/数字写死在整句内(「两资源」「资源加一」),无运行时拼接;档位全分档整句(hull 3 档/段 4 档/rp 3 档/忠诚 3×3/功勋 3 档/评级 5 档);**资源与功勋价格句只在价格恒真时使用**(修理每级恒 2 资源;改装价写死在各 upg 句内)。
> - **称呼中性**:旁白称玩家「舰长/你」,无性别化称呼(旁白性别随设置变化不影响内容)。
> - **多音字自查**:全表无「血」「爪」「挨」「壳」「重(chóng)」「弹」「泊」「处」;「重新听」统一写法。低风险 5 处标注:「撑不了多久」的「了」(liǎo)、「折算」的「折」(zhé)、「应急」的「应」(yìng)、「采得多/稳得很/打得尽兴」的「得」(de,助词)、「遭了伏击」的「了」(le)——试听异常再改写。
> - **键盘变体(V 组)**:操作提示句在 `gesture.inputMode()==='key'` 时改播 `_k` 变体(touch 回基础句);变体与基础句 id 一一对应、集中登记见文末 V 组。
> - 管线:`tools/gen_voice_dual.py` 照录(SPEAKERS 需新增 bridge 行 + BRIDGE_NPC 平铺表);生成后 `--convert` 落盘 + `tools/check_all_assets.py` 终检(双格式配对、双性别集合一致)。
## G0 组 · 系统/菜单/帮助(表 18 行:沿用 7 + 修改 2 + 新增 8 + 删除 1,实存 17)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `sys_menu` | 菜单。左右滑换项,单击确认。 | 下滑呼出模态菜单(**26 修改**:旧「单击切换,双击确认」废止,00 §5.4) |
| `sys_menu_resume` | 回到舰桥。 | 菜单项 |
| `sys_menu_save` | 保存并回大厅。 | 菜单项 |
| ~~`sys_menu_help`~~ | ~~重新听帮助。~~ | **26 删除**:菜单内上滑=sys_help 已覆盖(菜单三态:回到舰桥/保存/放弃) |
| `sys_menu_restart` | 放弃本次巡逻。 | 菜单项(run 清空保 meta;**26 新增二次确认** menu_restart_confirm) |
| `menu_restart_confirm` | 放弃就丢了这局。再点一下。 | 「放弃巡逻」单击后的二次确认(原则 6,破坏性操作) |
| `sys_saved` | 进度已保存。 | 存档写入后(critical:跳转大厅前不可打断) |
| `settings_hint` | 音色、语速、背景音乐,请回大厅修改。 | 菜单内上滑重听说明时的设置提示 |
| `sys_help` | 上滑巡检全舰,点一下重播告警。危机时,左右滑听命令,单击下令。 | 菜单内上滑 / 帮助(**26 修改**:旧「下滑菜单,双击重新听」废止) |
| `sys_continue_ask` | 检测到未完成的巡逻。单击继续,右滑进星港。 | 有存档进游戏(TITLE,§4.12 断点询问) |
| `sys_new_patrol` | 新巡逻,星环号启航。 | 新巡逻开始 |
| `sys_first_tap` | 点一下屏幕。 | 开场第一句 = critical 指令(§4.10,文案与 storyline 逐字一致) |
| `sys_first_tap_short` | 点一下。 | title/decide 等待点短句档 |
| `sys_turn_teach` | 听到这个声音,就是轮到你了。 | 等待声首现教学(挂 D0 教学链首) |
| `sys_say_again` | 再说一遍: | 主动重听前缀(阶段 3 双击重听当前选项句) |
| `sys_unlock_up` | 想知道自己在哪,就向上滑。 | D0 巡检链尾(阶段 1 提前解锁上滑) |
| `sys_unlock_down` | 向下滑,可以打开菜单。 | 第一次返航结算链尾(阶段 2) |
| `sys_unlock_dt` | 没听清,就双击,再听一遍。 | 累计 3 局(阶段 3) |
## G1 组 · 开场/教学(表 16 行:沿用 7 + 新增 2 + 删除 7,实存 9)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| ~~`intro_1`~~ | ~~你是巡逻舰星环号的舰长。在这条航线上,耳朵就是雷达。~~ | **26 删除**:开场规则念白废除(§4.10 反模式 6),第一句即 critical 指令句 |
| ~~`intro_2`~~ | ~~全舰四个系统:引擎、护盾、扫描、武器,各守一方。~~ | **26 删除**:方位教学由 D0 巡检四系统音当场承担 |
| ~~`intro_3`~~ | ~~引擎在舰尾低鸣,护盾在舰首嗡响。~~ | **26 删除**:同上 |
| ~~`intro_4`~~ | ~~扫描在左舷扫掠,武器在右舷充能。~~ | **26 删除**:同上 |
| ~~`intro_5`~~ | ~~危机从哪边来,哪边先遭殃。~~ | **26 删除**:受殃规则由检测链方位句+危机矩阵当场兑现 |
| ~~`tut_d0`~~ | ~~先试巡检。向上滑,听全舰状态。~~ | **26 删除**:→ `hint_inspect_full`(22 附录 C §5 逐字) |
| `hint_inspect_full` | 向上滑,听四个系统。 | D0 教学链尾句 / inspect 等待点 full 档 |
| `hint_inspect_short` | 向上滑。 | inspect 等待点 short 档 / 巡航接管 L2 缩小句 |
| `tut_all_ok` | 四个音都稳,全舰正常。 | D0 完成;**正片巡检全 ok 时复用为链尾句**(一句两用,登记) |
| `tut_crisis` | 有情况。听签名音,辨认类型。 | D1 求救检测链前 |
| `tut_decide` | 左右滑听选项,单击下令。 | D2 决策窗前(豁免/导航教学;并入首选项链) |
| `tut_aid` | 驰援靠扫描。我们的扫描,稳得很。 | D2 选项引导(首局 S1 无磨损=承诺必兑现) |
| `tut_after` | 就是这样:听声,辨型,下令。 | D2 结算链尾(教学要诀收束) |
| `tut_loyal` | 船员的心分三档:离心、平常、信赖。上滑巡检听得到。 | D3 前 |
| `tut_done` | 教学完了。舰长,航线交给你。 | D4(进自由巡航) |
| ~~`tut_skip`~~ | ~~已跳过教学。上滑巡检,危机时左右滑听选项。~~ | **26 删除**:教学不可跳(D0/D3 由迷茫 L3 替播巡检自动过步;旧「下滑跳过」与下滑=菜单冲突) |
## G2 组 · 巡检/状态(旁白 ×30)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `sys_engine_dmg` | 引擎,受损。 | 巡检链异常段(引擎 tone 后)/磨损事件 |
| `sys_engine_off` | 引擎,离线。 | 巡检链(平线签名后);选项判定不满足时先播(真话归因) |
| `sys_shield_dmg` | 护盾,受损。 | 同上(护盾) |
| `sys_shield_off` | 护盾,离线。 | 同上 |
| `sys_scan_dmg` | 扫描,受损。 | 同上(扫描) |
| `sys_scan_off` | 扫描,离线。 | 同上 |
| `sys_weapon_dmg` | 武器,受损。 | 同上(武器) |
| `sys_weapon_off` | 武器,离线。 | 同上 |
| `st_hull_1` | 舰体,稳固。 | 巡检链(hull ≥75% 上限) |
| `st_hull_2` | 舰体,带伤。 | 巡检链(40-74%) |
| `st_hull_3` | 舰体,危急。 | 巡检链(<40%);跌至危急当刻加 danger 签名(每段 1 次) |
| `st_seg_1` | 第一巡航段。 | 巡检链段位段(S1) |
| `st_seg_2` | 第二巡航段。 | S2 |
| `st_seg_3` | 第三巡航段。 | S3 |
| `st_seg_4` | 第四巡航段,末段。 | S4 |
| `st_rp_1` | 资源紧张。 | 巡检链(0-2;跨档才即时播,双向) |
| `st_rp_2` | 资源够用。 | 3-6 |
| `st_rp_3` | 资源充足。 | ≥7 |
| `st_xo_1` | 大副,离心。 | 巡检链船员段(≤−2) |
| `st_xo_2` | 大副,平常。 | −1..+1 |
| `st_xo_3` | 大副,信赖。 | ≥2 |
| `st_eng_1` | 工程师,离心。 | 同上(工程师) |
| `st_eng_2` | 工程师,平常。 | |
| `st_eng_3` | 工程师,信赖。 | |
| `st_doc_1` | 医师,离心。 | 同上(医师) |
| `st_doc_2` | 医师,平常。 | |
| `st_doc_3` | 医师,信赖。 | |
| `recap_go` | 继续航行。 | 中断复述链尾 |
| `evt_dock` | 本段结束,靠港整备。 | 段计时到(危机结算后)进 DOCK |
| `evt_resume` | 启航,下一段巡航。 | DOCK 启航 → 下段 ROUTE |
## G3 组 · 危机(旁白 ×24)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `evt_meteor` | 碎石呼啸,陨石群。 | 检测链类型句(签名音后) |
| `evt_pirate` | 敌船引擎,海盗。 | 同上 |
| `evt_distress` | 断续三短,求救信号。 | 同上 |
| `evt_radiation` | 计数急响,辐射云。 | 同上 |
| `dir_port` | 方位,左舷。 | 检测链方位句(固定模板,四选一) |
| `dir_star` | 方位,右舷。 | 同上 |
| `dir_bow` | 方位,舰首。 | 同上(签名后带 dir_bow 上行尾音) |
| `dir_stern` | 方位,舰尾。 | 同上(下行尾音) |
| `cr_decide` | 听选项,下令。 | 决策窗开(倒计时自此起算) |
| `opt_evade` | 规避机动,靠引擎。 | 选项预览(陨石/海盗/辐射) |
| `opt_fight` | 迎战,靠武器。 | 选项预览(陨石/海盗) |
| `opt_breach` | 硬闯,靠护盾。 | 选项预览(陨石/辐射) |
| `opt_aid` | 驰援,靠扫描。 | 选项预览(求救) |
| `opt_ignore` | 按兵不动,不理会。 | 选项预览(海盗/求救) |
| `cr_timeout` | 没来得及下令。 | 决策窗超时(后接默认结局句,真话) |
| `res_clean` | 干净利落,有惊无险。 | 结局:无伤化解 |
| `res_hurt` | 舰体受创。 | 结局:轻伤(hit_hull 音) |
| `res_bad` | 损失惨重。 | 结局:重伤 |
| `res_mine` | 轰开碎石,采到矿材,资源加一。 | 陨石·迎战成功(res_pick 同点) |
| `res_plunder` | 海盗击退,缴获物资,资源加二。 | 海盗·迎战胜 / 求救陷阱反杀 |
| `res_reward` | 救援成功,对方致谢,资源加二。 | 求救·驰援成功 |
| `res_ambush` | 遭了伏击,舰体受创。 | 求救陷阱·驰援且武器不可用(hull−2) |
| `res_rad` | 全船受照。 | 辐射·超时/规避不动(hull−1+受殃系统受损) |
| `trap_hint` | 求救码后面,有引擎声,多留心。 | 求救陷阱变体检测链尾(先线索后抉择) |
## G4 组 · 忠诚/支援(旁白 ×10)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `loy_aid` | 医师与大副,记下了这次驰援。 | 求救·驰援成功(医师+1 大副+1) |
| `loy_ignore` | 求救没了下文,医师很失望。 | 求救·忽略/超时(医师−1) |
| `loy_fight_win` | 大副打得尽兴,士气高涨。 | 海盗·迎战胜 / 陨石·迎战轰开(大副+1) |
| `loy_evade_pirate` | 大副觉得,这一躲有些窝囊。 | 海盗·规避成功(大副−1) |
| `loy_breach` | 工程师心疼过载的护盾。 | 陨石/辐射·硬闯硬穿且护盾承接(工程师−1) |
| `loy_rad` | 医师在处理伤员。 | 伤员类结局:受照/伏击受创/海盗先手(医师−1) |
| `sup_xo` | 大副坐上炮位,火力压制! | 海盗·迎战下令瞬间 band≥2(战果升一级) |
| `sup_eng` | 工程师出手,系统复航了。 | 段末 band≥2 且有受损系统(自动修 1 级) |
| `sup_doc` | 医师带人抢修,舰体补回一点。 | 段末 band≥2 且本段掉血(hull+1) |
| `sup_none` | 这个岗位,眼下没人顶上。 | 支援条件不满足(每局限 1 次,之后静默) |
## G5 组 · 靠港整备(旁白 ×9)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `dock_open` | 靠港整备。左右滑看项目,单击执行。 | 进 DOCK(choice 签名同点) |
| `rep_engine` | 修理引擎,升一级,两资源。 | 修理项预览(仅受损/离线时出现;价恒真) |
| `rep_shield` | 修理护盾,升一级,两资源。 | 同上 |
| `rep_scan` | 修理扫描,升一级,两资源。 | 同上 |
| `rep_weapon` | 修理武器,升一级,两资源。 | 同上 |
| `rep_ok` | 修理完成。 | 修理执行成功(wrench 音+告警即止 R7) |
| `rep_poor` | 资源不够。 | 资源 <2 时执行修理(error 震) |
| `dock_go` | 启航,继续巡逻。 | 启航项(恒为末项) |
| `dock_empty` | 全舰状态良好,无需整备。 | 进 DOCK 且全系统 ok(仅启航一项) |
## G6 组 · 结算/死亡(旁白 ×16)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `die_intro` | 舰体解体在即,全员撤离。 | hull≤0 死亡链首(死窗+链锁) |
| `die_meteor` | 陨石撕开了船身。 | 死因=陨石(lastHit 真实来源) |
| `die_pirate` | 海盗的炮火击穿了舰体。 | 死因=海盗(含伏击——伏击者即海盗) |
| `die_rad` | 辐射熔穿了舱壁。 | 死因=辐射 |
| `die_adv_to` | 早下令,勤靠港,别硬扛。 | 建议:超时≥2 或泛化兜底(真话选句) |
| `die_adv_sys` | 系统离线时,别把宝押在它身上。 | 建议:本局存在因离线失败的抉择 |
| `rep_open` | 巡逻归来,全舰记功。剩余资源已折算功勋。 | REPORT 结算链首(gavel 位=seg_warp 音) |
| `rate_s` | 教科书巡逻,功勋卓著。 | score ≥18(措辞=账目 §8.2) |
| `rate_a` | 出色完成巡逻。 | ≥14 |
| `rate_b` | 巡逻结束,有惊无险。 | ≥10 |
| `rate_c` | 巡逻结束,遍体鳞伤。 | ≥6(完成保底) |
| `rate_d` | 巡逻失败,弃舰撤离。 | hull≤0(失败即 D) |
| `merit_1` | 功勋,寥寥。 | 本局功勋 ≤5 |
| `merit_2` | 功勋,可观。 | 6-10 |
| `merit_3` | 功勋,丰厚。 | ≥11 |
| `settle_hook` | 星港期待你的下一次巡逻。单击,返航。 | 结算链尾(链锁解除后单击生效;键盘态播 settle_hook_k) |
## G7 组 · 看门狗/纠错/等待点提示(表 18 行:沿用 2 + 新增 13 + 删除 3,实存 15)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `gd_cruise` | 还在巡航。上滑,巡检全舰。 | 巡航(ACTION 无等待点)迷茫接管 L1 短令(静默梯子第 2 次喂信号,≈20s) |
| ~~`gd_decide`~~ | ~~还在等命令。左右滑,听选项。~~ | **26 删除**:decide 等待点两档提示 + 窗内 tick 已催(危机倒计时是玩法时钟,不是看门狗重播说明书) |
| ~~`gd_dock`~~ | ~~还在整备。左右滑,单击执行。~~ | **26 删除**:dock 等待点两档提示 + 迷茫 L3 替启航承接 |
| `gd_invalid` | 这个操作,这里用不上。 | 锁定手势(长按)首次解释(26 角色变更:看门狗纠错句→管道锁定门解释句,文案沿用) |
| ~~`hint_dock3`~~ | ~~整备完毕,就启航。~~ | **26 删除**:DOCK 无进展轨三级提示由等待点提示+接管 L3 替启航承接 |
| `hint_route_full` | 左右滑选航线。点一下定。 | route 等待点 full 档(12s) |
| `hint_route_short` | 左右滑。 | route 等待点 short 档(30s)/ 菜单·星港换项短句 |
| `hint_decide_full` | 左右滑听命令。点一下下令。 | decide 等待点 full 档(22 附录 C「点一下下」系笔误,按指令句式落定) |
| `hint_dock_full` | 点一下,启航。 | dock 等待点 full 档(12s) |
| `hint_dock_short` | 单击。 | dock 等待点 short 档(30s) |
| `inv_detect` | 先听类型和方位。 | 检测链被滑动打断的首次解释(并入续播链头,之后只回执) |
| `inv_cruise` | 现在不用选。点一下听警报,或向上滑。 | 巡航空闲乱滑(22 §7 失败表逐字) |
| `inv_tour` | 巡检中,先听完。 | 巡检链播中乱滑(保护链,首次解释后续完剩余句) |
| `inv_drill` | 先向上滑,听全舰。 | 教学等上滑步乱按(D0/D3) |
| `inv_title` | 点一下开始,右滑进星港。 | 标题页左滑 |
| `inv_report` | 巡逻结束了。点一下,返航。 | 结算完左右滑 |
| `inv_up_locked` | 上滑还没解锁。先点一下继续。 | 锁定上滑首次解释(管道口径;D0 起即解锁) |
| `inv_down_locked` | 菜单,玩完一局解锁。 | 锁定下滑首次解释(阶段 2 前) |
## G8 组 · 星港(旁白 ×11)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `port_open` | 星港整备,功勋兑换。左右滑看,单击定。 | 进 PORT(TITLE 右滑) |
| `upg_spare` | 备用零件,出发自带一批物资。功勋二十。 | 改装项预览(20 功勋) |
| `upg_harvest` | 采集协议,每段多一份资源。功勋三十。 | 30 |
| `upg_armor1` | 加装装甲,舰体上限加一。功勋四十。 | 40 |
| `upg_vet` | 老兵船组,开局全员忠诚加一。功勋五十。 | 50 |
| `upg_armor2` | 重型装甲,舰体上限再加一。功勋六十。 | 60(需 armor1 已购才出现) |
| `upg_aegis` | 应急护盾,每段首次受创减一。功勋七十。 | 70 |
| `upg_done` | 这项已改装到位。 | PORT 预览已购项时替代价格句播报 |
| `upg_buy` | 改装完成。 | 购买成功 |
| `port_poor` | 功勋不够。 | 功勋不足时执行购买(error 震) |
| `port_back` | 返回。 | 返回项(末项,回 TITLE) |
## GR 组 · 航线选择(旁白 ×3)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `route_ask` | 选择巡航航线。 | 段 ROUTE 入口(S2 起;首局 S1 固定稳妥线不播) |
| `opt_route_safe` | 稳妥航线,采集平平,太平。 | 路线预览(采集 2/段,磨损 1 次;句内无数字=改装后恒真) |
| `opt_route_rich` | 矿富航线,采得多,磨损也多。 | 路线预览(采集 4/段,磨损 2 次) |
## V 组 · 键盘变体(旁白 ×31;`gesture.inputMode()==='key'` 时替代同名基础句;26 号替换稿)
| id | 替代基础句 | 台词全文 |
|---|---|---|
| `sys_first_tap_k` | sys_first_tap | 按空格。 |
| `sys_first_tap_short_k` | sys_first_tap_short | 按一下空格。 |
| `sys_turn_teach_k` | sys_turn_teach | 听到这个声音,就是轮到你了。 |
| `sys_say_again_k` | sys_say_again | 再说一遍: |
| `sys_unlock_up_k` | sys_unlock_up | 想知道自己在哪,就按上方向键。 |
| `sys_unlock_down_k` | sys_unlock_down | 按下方向键,可以打开菜单。 |
| `sys_unlock_dt_k` | sys_unlock_dt | 没听清,就按回车,再听一遍。 |
| `hint_inspect_full_k` | hint_inspect_full | 按上方向键,听四个系统。 |
| `hint_inspect_short_k` | hint_inspect_short | 按上方向键。 |
| `hint_route_full_k` | hint_route_full | 左右方向键选航线。按空格定。 |
| `hint_route_short_k` | hint_route_short | 左右方向键。 |
| `hint_decide_full_k` | hint_decide_full | 左右方向键听命令。按空格下令。 |
| `hint_dock_full_k` | hint_dock_full | 按空格,启航。 |
| `hint_dock_short_k` | hint_dock_short | 按空格。 |
| `inv_detect_k` | inv_detect | 先听类型和方位。 |
| `inv_cruise_k` | inv_cruise | 现在不用选。按空格听警报,或按上方向键。 |
| `inv_tour_k` | inv_tour | 巡检中,先听完。 |
| `inv_drill_k` | inv_drill | 先按上方向键,听全舰。 |
| `inv_title_k` | inv_title | 按空格开始,右方向键进星港。 |
| `inv_report_k` | inv_report | 巡逻结束了。按空格,返航。 |
| `inv_up_locked_k` | inv_up_locked | 上方向键还没解锁。先按空格继续。 |
| `inv_down_locked_k` | inv_down_locked | 菜单,玩完一局解锁。 |
| `menu_restart_confirm_k` | menu_restart_confirm | 放弃就丢了这局。再按一次。 |
| `sys_menu_k` | sys_menu | 菜单。左右方向键换项,按空格确认。 |
| `sys_help_k` | sys_help | 上方向键巡检全舰,按空格重播告警。危机时,左右方向键听命令,按空格下令。 |
| `tut_decide_k` | tut_decide | 方向键听选项,空格下令。 |
| `cr_decide_k` | cr_decide | 听选项,空格下令。 |
| `dock_open_k` | dock_open | 靠港整备。方向键看项目,空格执行。 |
| `gd_cruise_k` | gd_cruise | 还在巡航。上键,巡检全舰。 |
| `sys_continue_ask_k` | sys_continue_ask | 检测到未完成的巡逻。空格继续,右方向键进星港。 |
| `settle_hook_k` | settle_hook | 星港期待你的下一次巡逻。按空格,返航。 |
> 26 号删除的键盘变体(随主表行删除):`tut_d0_k` / `gd_decide_k` / `gd_dock_k`。
## N1 组 · 大副(NPC Dylan 平铺 ×4)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `xo_fight` | 舰长,交给我,炮位就绪! | sup_xo 同点(信赖支援进场) |
| `xo_win` | 打得漂亮,这条航线够他们传一阵子。 | 海盗·迎战胜(res_plunder 后接播) |
| `xo_uneasy` | 又是一路躲。舰长,弟兄们想打。 | 大副 band≤−2 首次巡检播报后(每局 1 次) |
| `xo_aid` | 驰援是应该的,星环号不是过路人。 | 求救陷阱反杀后(站得住的驰援) |
## N2 组 · 工程师(NPC Eric 平铺 ×4)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `eng_wear` | 老伙计累出毛病了,让我来。 | 磨损事件(sys_*_dmg 后接播) |
| `eng_fix` | 修好了,再听它稳稳地转。 | DOCK 修理 rep_ok 后接播 |
| `eng_sup` | 交给我,三分钟,给它救活。 | sup_eng 同点(段末自动抢修) |
| `eng_gripe` | 护盾不是这么用的,舰长…… | 工程师 band≤−2 首次(每局 1 次) |
## N3 组 · 医师(NPC Vivian 平铺 ×4)
| id | 台词全文 | 触发/语境 |
|---|---|---|
| `doc_aid` | 幸好停了船,他们撑不了多久了。 | 求救·驰援成功(res_reward 后接播) |
| `doc_ignore` | ……我没有什么要说的。 | 求救·忽略且医师在场首次(每局 1 次) |
| `doc_care` | 有伤员的地方,就有我。 | sup_doc 同点(段末舰体+1) |
| `doc_trap` | 有人拿求救当诱饵,小心。 | 陷阱变体检测链(trap_hint 后接播) |
---
**合计(26 号重构后):156 句 ≤160 上限**(旁白 144 ×2 性别 = 288 条 + NPC 平铺 12 条 = **300 条音频** ×2 格式 = 600 文件)。
分组账(表行数含删除标记,实存=生成集合):G0 18(删 1,实存 17)+ G1 16(删 7,实存 9)+ G2 30 + G3 24 + G4 10 + G5 9 + G6 16 + G7 18(删 3,实存 15)+ G8 11 + GR 3 = **144 旁白实存**;N1-N3 12(NPC,不动)。
26 号增量:新增 23 / 修改 2 / 删除 11(含 V 组键盘变体替换稿 31 句,删 3 对)。
检测链 = `sig_*(sfx,pan/尾音按方位)→ evt_* → dir_* →(陷阱加 trap_hint)→ cr_decide`;下令链 = `pa_chime(sfx)→ 执行音 →(不满足先 sys_*_off)→ 结果句 → 账目/忠诚句 →(NPC 接播)`;
结算链 = `rep_open → rate_X → merit_档 →(阶段解锁教学句)→ settle_hook`;死亡链 = `die_intro → die_cause → die_adv → rep_open → rate_d → merit_档 → settle_hook`;
巡检全链 = `4×状态音(引擎→护盾→扫描→武器) →(tut_all_ok | sys_*_dmg/off…)→ st_hull → st_seg → st_rp → st_xo/st_eng/st_doc(D0 链尾附 sys_unlock_up)`;巡检简链 = `4×状态音 → st_hull → 最紧要异常句`;中断复述链 = `st_hull → 最紧要异常句 → st_seg → recap_go`。
判定矩阵/忠诚账/仲裁规则对照 [22-bridge.md](22-bridge.md) §3-§8;资产规模核对见其 §9。