Files
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

105 lines
9.7 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.
# voice_lines_26 · 《雨夜专案》(detective)26 号深度重构台词清单
> 设计单正文见 [docs/design/26-apply-detective.md](../../docs/design/26-apply-detective.md);玩法正文
> [18-detective.md](../../docs/design/18-detective.md)(附录 C = 设计单);交互权威 26 号手册。
> 本文件是 R3 改造的台词增量清单,管线路径 `tools/gen_voice_dual.py` 的 `DETECTIVE_LINES`
> (并入时逐字照抄)。
>
> 音色规则:系统/交互层句子全部走 `_DET` 探长组(与既有 sys_* 一致);证词/认罪/
> 反应句(DETECTIVE_NPC 平铺:老葛 Eric / 小顺 Dylan / 周先生 Uncle_Fu / 温太太
> Vivian / 秦法医 Serena)**平铺不动**。写作口径(00 §3 / 26 §4.8):指令 ≤12 字;
> `_short` 档 ≤6 字只留动作;叙事 ≤25 字;肯定 ≤4 字;每句标类别
> (critical / content / hint / feedback),`critical` 须 <3s。
> 多音字规避:全表无「重听」(一律「重新听」/「再听一遍」)。
> 通用系统句与 STORYLINE_LINES 的 sys_* 段**逐字一致**(sys_first_tap「点一下屏幕。」/
> sys_first_tap_short「点一下。」/ sys_turn_teach「听到这个声音,就是轮到你了。」/
> sys_say_again「再说一遍:」/ sys_unlock_up「想知道自己在哪,就向上滑。」/
> sys_unlock_down「向下滑,可以打开菜单。」/ sys_unlock_dt「没听清,就双击,再听一遍。」)。
> 键盘变体措辞照 KEY_LINES["storyline"](「按空格」「左右方向键」「按回车」,
> 上/下方向键可用「上键/下键」简写,沿用本表既有变体惯例)。
## 一、新增(18 句 × 双性别,`_DET`)
游戏静态引用 14 条 + 引擎侧 4 条(sys_say_again 由 engine/hints.js 重听前缀播出、
sys_unlock_up/down/dt 由 engine/novice.js teachLine 播出,资产同样落本游戏目录):
("sys_first_tap", _DET, "点一下屏幕。") <!-- critical,开场第一句(≤3s,critical 不可打断) -->
("sys_first_tap_short", _DET, "点一下。") <!-- hint,title 等待点 _short 档 -->
("sys_turn_teach", _DET, "听到这个声音,就是轮到你了。") <!-- content,「轮到你」状态声首现教学(全局一次,挂开场链尾) -->
("sys_say_again", _DET, "再说一遍:") <!-- hint 前缀,主动重听(全项目一句,每游戏各存一份) -->
("sys_unlock_up", _DET, "想知道自己在哪,就向上滑。") <!-- content,手势阶梯阶段 1 教学句(听完第一份证词,挂教学链尾) -->
("sys_unlock_down", _DET, "向下滑,可以打开菜单。") <!-- content,手势阶梯阶段 2 教学句(挂首案结算链尾) -->
("sys_unlock_dt", _DET, "没听清,就双击,再听一遍。") <!-- content,手势阶梯阶段 3 教学句(挂第三案结算链尾) -->
("tut_next_full", _DET, "向右滑,下一份。") <!-- content,教学·换卷宗步(§4.10 第 10~25 秒,嵌真实案卷) -->
("item_cf", _DET, "指证。") <!-- content,「指证」案卷条目名(列表第 7 项,无签名音) -->
("st_confront", _DET, "正在指证。左右滑。") <!-- hint,指证选条目/选句相位上滑「我在哪」(18 号附录 C §4) -->
("hint_board_full", _DET, "左右滑换卷宗。单击听取。") <!-- hint,board 等待点 full 档(18 秒) -->
("hint_board_short", _DET, "左右滑。") <!-- hint,board/cf_item 等待点 _short 档(共用,40 秒降档) -->
("hint_cf_item_full", _DET, "左右滑,选一份证词。") <!-- hint,cf_item 等待点 full 档 -->
("hint_fin_short", _DET, "左右滑,选。") <!-- hint,finish 等待点 _short 档 -->
("hint_tap_short", _DET, "单击。") <!-- hint,cf_line/cf_confirm/caseGate/settle 等待点 _short 档 -->
("inv_up_locked", _DET, "上滑还没解锁。先单击继续。") <!-- feedback,up 未解锁首次解释(原则 7) -->
("inv_down_locked", _DET, "菜单,玩完一局解锁。单击继续。") <!-- feedback,down 未解锁首次解释 -->
("inv_longpress", _DET, "长按用不上。单击继续。") <!-- feedback,长按首次解释(18 号 §3:长按不绑指证) -->
## 二、修改(4 句重录,id 不变;旧「按住屏幕指证」「双击重听」类口径废止)
("tut_confront", _DET, "滑到指证,点一下。") <!-- 原「按住屏幕,进入指证。去找两句对不上的证词。」;指证=案卷列表项(18 号 §1/§8 新词) -->
("recap_cf", _DET, "滑到指证,去比对。") <!-- 原「卷宗都在耳朵里了。挑一句你不信的,按住指证。」;同上,状态链尾指路句 -->
("sys_help", _DET, "左右滑换卷宗,单击听取。上滑问状态,下滑菜单。") <!-- 原「……双击重新听。长按指证……」整句重写:新手指势表内不含双击/长按口径(23 字 ≤25) -->
("sys_menu", _DET, "菜单。左右滑换项,单击确认。") <!-- 原「菜单。单击切换,双击确认。」;菜单改 00 号 §5.4 左右滑换项+单击确认(旧「单击循环+双击确认」= 26 §7 反模式 5) -->
## 三、删除(11 句停用,不再被游戏引用;对应 key/ 变体随主句下线)
("sys_menu_cf", …) —— 旧菜单项「去指证」(菜单现为 回到证词板/保存并回大厅/重新查三项;指证入口=案卷列表项)
("tut_d0", …) —— DRILL 开场指令(「先熟悉证词板。左右滑,换卷宗。」),七步跟练教学废止,教学嵌真实案卷(§4.10)
("tut_replay", …) —— 「双击,重新听这一句」教学,双击=阶段 3 解锁手势(sys_unlock_dt 挂结算链尾统一教,做对过的事不教第二遍)
("tut_status", …) —— 上滑进度教学,由 sys_unlock_up 阶梯教学句承担(一句话只教一件事)
("tut_done", …) —— 教学收官句(「教学完了。开始查案。」),练习判定链尾 tut_cf_ok 已含收官语义
("tut_skip", …) —— 跳过教学句(旧词含「按住屏幕,指证矛盾」废止口径),无 DRILL 即无跳过
("gd_board", …) —— 旧看门狗句,被 board 等待点三档提示(hint_board_full→short→提示音)取代
("gd_board_cf", …) —— 旧看门狗句(「都听过了。按住屏幕,去指证。」双废止:看门狗+长按指证),由 recap_cf/hint_fin 承担
("gd_cf", …) —— 旧看门狗句,被 cf_item/cf_line 等待点三档提示取代
("gd_fin", …) —— 旧看门狗句,被 finish 等待点(full=当前问句)取代
("gd_invalid", …) —— 旧无效解释(「这个操作,这里用不上。」),被 inv_* 首次解释(说原因+正确做法,原则 7)取代
(sys_continue_ask / sys_new_case / sys_saved / settings_hint / sys_menu_resume / sys_menu_save /
sys_menu_restart / sys_menu_help、intro_1..3、tut_listen / tut_cf_try / tut_cf_ok、st_asked_* /
st_doubt_* / st_miss_* / rate_*、item_w1..w4 / item_scene / item_fore / item_case / intro_w3、
sc_*、cf_*、fin_* / wp_* / mv_*、settle_*、hint_a / hint_b / hint_c1 / hint_c2 / b_hint_c1 /
b_hint_c2 / hint_fin、recap_go 与全部 DETECTIVE_NPC 平铺句不动。)
## 四、键盘变体(KEY_LINES["detective"] 增量;只改操作词,其余一字不动)
新增句含操作词的变体(无操作词不列:sys_turn_teach / sys_say_again / item_cf,落回主资产):
("sys_first_tap", "按空格。")
("sys_first_tap_short", "按一下空格。")
("sys_unlock_up", "想知道自己在哪,就按上方向键。")
("sys_unlock_down", "按下方向键,可以打开菜单。")
("sys_unlock_dt", "没听清,就按回车,再听一遍。")
("tut_next_full", "右方向键,下一份。")
("st_confront", "正在指证。左右方向键。")
("hint_board_full", "左右方向键换卷宗。按空格听取。")
("hint_board_short", "左右方向键。")
("hint_cf_item_full", "左右方向键,选一份证词。")
("hint_fin_short", "左右方向键,选。")
("hint_tap_short", "按空格。")
("inv_up_locked", "上方向键还没解锁。先按空格继续。")
("inv_down_locked", "菜单,玩完一局解锁。按空格继续。")
("inv_longpress", "长按用不上。按空格继续。")
修改句的变体(必须重录:旧文案含已废止口径):
("tut_confront", "方向键到指证,按空格。") <!-- 旧「按住空格,进入指证。」;长按指证废止 -->
("recap_cf", "方向键到指证,去比对。") <!-- 旧「……按住空格指证。」;同上 -->
("sys_help", "左右方向键换卷宗,空格听取。上键状态,下键菜单。") <!-- 旧「方向键换卷宗,空格听取,回车重新听。按住空格指证……」整句重写 -->
("sys_menu", "菜单。左右方向键换项,按空格确认。") <!-- 旧「菜单。按空格切换,按回车确认。」;菜单语义随主句改 -->
删除句的 key/ 变体随主句停用:tut_d0 / tut_replay / gd_board / gd_cf / gd_board_cf。
> 合并提示:并入 gen_voice_dual.py 时,新增 18 条进 DETECTIVE_LINES、修改 4 条原地替换、
> 删除 11 条(连同 KEY_LINES["detective"] 对应行)摘除;`sys_unlock_*` 与 sys_say_again
> 虽由引擎播出,资产照常落 web/detective/audio/voice/{female,male}/。
> 账目:104 + 18 − 11 = 111 句双性别(上限 176 内),NPC 53 平铺不动。