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 置完成。
108 lines
10 KiB
Markdown
108 lines
10 KiB
Markdown
# voice_lines_26 · 《暗码》(cipher)26 号深度重构台词清单
|
||
|
||
> 设计单正文见 [docs/design/26-apply-cipher.md](../../docs/design/26-apply-cipher.md)(玩法正文
|
||
> [19-cipher.md](../../docs/design/19-cipher.md) 附录 C);交互权威 26 号手册。本文件是 R4 改造的
|
||
> 台词增量清单,管线路径 `tools/gen_voice_dual.py` 的 `CIPHER_WIND_LINES`
|
||
>(两表一致铁律:并入时逐字照抄)。
|
||
>
|
||
> 音色规则:**系统/交互层句子全部走 `_CIPHER_WIND` 北风组**(北风电台=上线联络
|
||
> +系统音,与 radio 的 PROD 导播组同型;既有 sys_skip/sys_menu_* 均在该组);
|
||
> 剧情句沿用原组不动(报务员 OP `CIPHER_OP_LINES` / 处长 `CIPHER_NPC` 平铺)。
|
||
> 写作口径(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"](「按空格」「左右方向键」「按回车」),
|
||
> 并遵守 cipher 既有变体惯例:点一下/单击 → 按空格;双击 → 按回车;滑 → 方向键。
|
||
|
||
## 一、新增(20 句 × 双性别,`_CIPHER_WIND`)
|
||
|
||
游戏静态引用 16 条 + 引擎侧 4 条(sys_say_again 由 engine/hints.js 重听前缀播出、
|
||
sys_unlock_up/down/dt 由 engine/novice.js teachLine 播出,资产同样落本游戏目录):
|
||
|
||
("sys_first_tap", _CIPHER_WIND, "点一下屏幕。") <!-- critical,开场第一句(≤3s,critical 不可打断;首夜 newNight 链首) -->
|
||
("sys_first_tap_short", _CIPHER_WIND, "点一下。") <!-- hint,intro 等待点 _short 档(full=null:指令句刚说过) -->
|
||
("sys_turn_teach", _CIPHER_WIND, "听到这个声音,就是轮到你了。") <!-- content,「轮到你」等待声首现教学(全局一次,首夜开场第一下单击后) -->
|
||
("sys_hint_continue_full", _CIPHER_WIND, "单击,继续。") <!-- hint,continue 等待点 full 档(13s) -->
|
||
("sys_hint_continue_short", _CIPHER_WIND, "单击。") <!-- hint,continue 等待点 _short 档(30s;settle _short 复用同资产) -->
|
||
("sys_hint_choice_short", _CIPHER_WIND, "左右滑,选。") <!-- hint,choice 等待点 _short 档(25s 台账降档后首档) -->
|
||
("sys_hint_again_full", _CIPHER_WIND, "单击,重新开始。") <!-- hint,settle 等待点 full 档 / 结算态左右滑解释句(invalidHint 复用) -->
|
||
("gd_tune1_short", _CIPHER_WIND, "左右滑。") <!-- hint,decode 等待点 _short 档(25s);menu 等待点 _short 复用同资产 -->
|
||
("cf_hint_full", _CIPHER_WIND, "单击,定下这个词。") <!-- hint,confirm 等待点 full 档(10s,19 号附录 C §5 原句) -->
|
||
("cf_hint_short", _CIPHER_WIND, "单击。") <!-- hint,confirm 等待点 _short 档(20s) -->
|
||
("sys_only_choice", _CIPHER_WIND, "现在,只要左右滑。") <!-- hint,迷茫 L2 抉择点缩小选择(restrictLine) -->
|
||
("sys_demo_continue", _CIPHER_WIND, "听我做一次。") <!-- hint,迷茫 L3 演示前缀(intro/continue:替玩家走一步) -->
|
||
("sys_demo_choice", _CIPHER_WIND, "左右滑,都可以。现在你来。") <!-- hint,迷茫 L3 抉择点演示(不替玩家做有后果的选) -->
|
||
("sys_say_again", _CIPHER_WIND, "再说一遍:") <!-- hint 前缀,主动重听(全项目一句,每游戏各存一份资产) -->
|
||
("sys_unlock_up", _CIPHER_WIND, "想知道自己在哪,就向上滑。") <!-- content,手势阶梯阶段 1 教学句(T1 译对挂 dv1_right 揭晓链尾) -->
|
||
("sys_unlock_down", _CIPHER_WIND, "向下滑,可以打开菜单。") <!-- content,手势阶梯阶段 2 教学句(首局结局链尾) -->
|
||
("sys_unlock_dt", _CIPHER_WIND, "没听清,就双击,再听一遍。") <!-- content,手势阶梯阶段 3 教学句(阶段 3=重听电文原速→慢放) -->
|
||
("inv_up_locked", _CIPHER_WIND, "上滑还没解锁。先单击继续。") <!-- feedback,up 未解锁首次解释(原则 7;之后只给回执) -->
|
||
("inv_down_locked", _CIPHER_WIND, "菜单,玩完一局解锁。单击继续。") <!-- feedback,down 未解锁首次解释 -->
|
||
("inv_nosel", _CIPHER_WIND, "现在不用选。单击继续。") <!-- feedback,非抉择点滑动首次解释(叙事段左右滑) -->
|
||
|
||
## 二、修改(3 句重录,id 不变;旧「双击重听/慢放」「单击切换」口径废止)
|
||
|
||
("dv1_teach", _CIPHER_WIND, "向右滑,听下一个词。") <!-- critical,T1 教学句改写(原「电文进来了。先双击,把它重新听一遍。」= 双击重听口径,随阶段 3 阶梯废止;19 号附录 C §6 原句,一句只教一个) -->
|
||
("sys_menu", _CIPHER_WIND, "菜单。左右滑换项,点一下确认。") <!-- content,菜单说明改写(原「菜单。单击切换选项,双击确认。」= 旧菜单口径,00 §5.4 改左右滑换项+单击确认) -->
|
||
("gd_invalid", _CIPHER_WIND, "这个手势,值机室里用不上。单击,继续。") <!-- feedback,无效解释补正确做法(原句无「怎么办」,原则 7 首次解释=原因+正确做法) -->
|
||
|
||
## 三、删除(10 句停用,不再被游戏引用;对应 key/ 变体随主句下线)
|
||
|
||
("gd_brief", …) —— 开场规则念白(「单击继续值机。要选词时,向左或向右滑。」),§4.10 开场零规则念白
|
||
("gd_continue", …) —— 旧等待提示(「单击屏幕,继续。」),被 sys_hint_continue_full/short 三档提示取代
|
||
("gd_again", …) —— 旧静默召回(「还在吗?单击继续。」),三档提示 full→short→提示音取代原样复述(原则 9)
|
||
("gd_tune2", …) —— DECODE 第二档旧句(「双击,把电文再听一遍。再双击,会放慢。」),**双击重听/慢放常驻教学废止**(双击=阶段 3 阶梯,重听走等待点/慢放走再请求;由 gd_tune1_short 承担第二档)
|
||
("gd_prog1", …) —— 无进展轨第 1 级(「光切词没有用。双击,先听电文。」),双击口径废止;无进展由迷茫接管(confusion)承担
|
||
("gd_prog2", …) —— 无进展轨第 2 级(「别急。停下来,把电文听完整。」),同上
|
||
("sys_help", …) —— 全局帮助句(「单击选定,双击重新听电文。上滑听状态,下滑开菜单……」),帮助溢出废止(手势阶梯分阶段教学取代;含「双击重新听」旧口径)
|
||
("b_rule", …) —— 开场规矩念白(「北风问候你。规矩就一条:听不清,就再听一遍。」),§4.10 砍掉;重听承诺随双击教学废止(b_open/b_goal/b_chief 移驻 NIGHT(1) 链首补全叙事,不含它)
|
||
("dv1_teach2", …) —— T1 第二段教学(「左右滑,听密码本上的候选词。单击,选定一个。」),两段确认教学停用(一句只教一个,确认语义由 cf_confirm 就地承担)
|
||
("dv1_ask", …) —— T1 旧引入句(「密码本第一页。三个词,哪个是它?」),职能并入 dv1_teach 改写版(正片 dv2/dv3/dv4_ask 保留)
|
||
|
||
(b_open/b_goal/b_chief、sys_skip/sys_continue_ask/sys_new_night/sys_settings、
|
||
菜单四项 sys_menu_resume/book/restart/lobby、prog_t1..t4 / book_3..0 / exp_* 分档账目句、
|
||
hint_t1..t4、end_c1..c4 与全部剧情句(OP/WIND/处长)不动。m4_chief_a/b 为 26 号改造前
|
||
即未接线的登记句,维持现状,见 26-apply-cipher.md 偏差记录。)
|
||
|
||
## 四、键盘变体(KEY_LINES["cipher"] 增量;只改操作词,其余一字不动)
|
||
|
||
新增句含操作词的变体(无操作词不列:sys_turn_teach / sys_say_again / sys_demo_continue,
|
||
落回主资产):
|
||
|
||
("sys_first_tap", "按空格。")
|
||
("sys_first_tap_short", "按一下空格。")
|
||
("sys_hint_continue_full", "按空格,继续。")
|
||
("sys_hint_continue_short", "按空格。")
|
||
("sys_hint_choice_short", "左右方向键,选。")
|
||
("sys_hint_again_full", "按空格,重新开始。")
|
||
("gd_tune1_short", "左右方向键。")
|
||
("cf_hint_full", "按空格,定下这个词。")
|
||
("cf_hint_short", "按空格。")
|
||
("sys_only_choice", "现在,只要左右方向键。")
|
||
("sys_demo_choice", "左右方向键,都可以。现在你来。")
|
||
("sys_unlock_up", "想知道自己在哪,就按上方向键。")
|
||
("sys_unlock_down", "按下方向键,可以打开菜单。")
|
||
("sys_unlock_dt", "没听清,就按回车,再听一遍。")
|
||
("inv_nosel", "现在不用选。按空格继续。")
|
||
("inv_up_locked", "上方向键还没解锁。先按空格继续。")
|
||
("inv_down_locked", "菜单,玩完一局解锁。按空格继续。")
|
||
|
||
修改句的变体:
|
||
|
||
("dv1_teach", "向右方向键,听下一个词。") <!-- 必须重录:主句改写,旧变体「按回车,把电文再听一遍」随双击口径废止 -->
|
||
("sys_menu", "菜单。左右方向键换项,按空格确认。") <!-- 必须重录:旧「按空格切换选项,按回车确认」随菜单语义废止 -->
|
||
("gd_invalid", "这个手势,值机室里用不上。按空格继续。") <!-- 新增:改写句含「单击」,补 key 变体 -->
|
||
|
||
删除句的 key/ 变体随主句停用:gd_brief / gd_continue / gd_again / gd_tune2 / gd_prog1 /
|
||
gd_prog2 / sys_help / dv1_teach2 / dv1_ask(b_rule 无变体)。既有 gd_tune1 / sys_skip /
|
||
sys_continue_ask / p2 变体不动。
|
||
|
||
> 合并提示:并入 gen_voice_dual.py 时,新增 20 条进 CIPHER_WIND_LINES、修改 3 条原地
|
||
> 替换、删除 10 条(连同 KEY_LINES["cipher"] 对应行)摘除;`sys_unlock_*` 与
|
||
> sys_say_again 虽由引擎播出,资产照常落 web/cipher/audio/voice/{female,male}/。
|
||
> 合计 132 − 10 + 20 = **142 句**(WIND 107 → 117,OP 20 与 NPC 平铺 5 不动;
|
||
> `web/harness/voice_text.json` cipher 主表已同步至 142 条,radio 同款口径)。
|