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 置完成。
33 KiB
19b · 《暗码》(cipher) 语音台词表(voice ids,录音依据)
26 号对齐(资产清单,不是交互宪法)
- 交互与新手手势以 26-audio-interaction-playbook.md 和对应游戏正文为准。
- 本表仍是 TTS id 事实源的登记副本(生成以
tools/gen_voice_dual.py为准)。含「双击重听 / 双击使用 / 双击格挡 / 单击循环菜单」的句子 停用或按游戏正文重录。- 写作:指令 ≤12 字,短句档 ≤6 字,叙事 ≤25 字;每句标
critical/content/hint/feedback。游戏主动提示不得原样重复;重听前加「再说一遍:」。- 键盘变体:新手期回车当空格(单击)。删除「按回车=重听」类旧口径,或仅在阶段 3 解锁双击后启用。
- 共用新句见 14-guide-layer.md §7(
sys_first_tap等)。各游戏_full/_short在游戏正文设计单里点名,补进本表后再进生成脚本。
给音频总监的录制说明
- 双性别组(报务员 OP + 北风电台 WIND,134 句):落
web/cipher/audio/voice/female|male/<id>.{ogg,m4a},两性别 id 集合完全一致(含全部_k变体)。
- OP(报务员=玩家):female =
Serena,instruct 常量压低而冷静的年轻女声,报务员,值夜班,克制的紧张;male =Uncle_Fu,instruct 常量压低而冷静的男声,报务员,值夜班,克制的紧张。- WIND(北风电台=上线联络+系统音/向导 gd_*):female =
Vivian,instruct 常量清晰平稳的女声,电台联络声,隔着电流,字字清楚;male =Dylan,instruct 常量清晰平稳的男声,电台联络声,隔着电流,字字清楚。- 区分度设计:你(耳机旁的自语)与北风(电波里传来的控制声)共用 speaker 池但不同 speaker 配对——female 侧你 Serena / 北风 Vivian、male 侧你 Uncle_Fu / 北风 Dylan,同场景高频对话的两者永不同 speaker(radio 主播/导播先例)。
- NPC 平铺组(5 句):单音色、不做双性别,平铺落
web/cipher/audio/voice/<id>.{ogg,m4a}(引擎平铺回退命中)。有台词人物仅 2 人:北风(已并入 WIND 双性别组,向导人设 L4,radio 导播同型)+ 处长(明线上级,本表 NPC)。另有无台词角色「快手七」(对家报务手,存在=电波里的手法音,零台词零资产,abyss 小郑先例)。不加滤波(detective 先例:处长是当面训话,区分度靠 speaker+instruct+语境;「电波里的人」与「身边的人」靠 WIND/OP 音色对立立住):
角色 speaker instruct 常量 区分度风险 处长(明线上级,50 余岁) Eric威严冷淡的中年男声,电讯处长,官腔,话里有话低:male 侧唯一 Eric,与两侧双性别组均不同 speaker - 称呼规则:处长对玩家一律称「值机员/你」,北风称「你」,全表禁用「姑娘/小哥/先生/同志」类性别化称呼(玩家性别随设置变化)。
- 键盘变体(PC 键盘通道,P1 机制):带
_k后缀的 id 为键盘措辞版(「按空格」「回车」「左箭头/右箭头/上箭头/下箭头」),与触屏版成对生成、成对落盘(check_all_assets校验_k配对);运行时由gesture.inputMode()选择:key→<id>_k,touch→<id>,auto跟随最近使用通道,_k缺失回退无后缀版。变体共 11 对,全部集中在 §G0.a 操作提示句区与 §M1 首个候选导航/首个叙事抉择(dv1_teach2 / p2),以粗体标注。- 数字规避:电文序号/密码本页数/暴露档位全部分档整句(prog_t1..t4、book_3..0、exp_calm/low/mid/hot);句内数字(民国二十九年/零点/丑时/三时/两点五十九分/一刻钟)写死在整句里,禁止运行时拼接。
- 禁语速词:instruct 不含任何语速描述(引擎 SoundTouch 变速);NPC 句靠短句+逗号停顿实现「官腔慢半拍」听感。
- 摩尔斯不在本表:电文/候选/重听/慢放的滴答声为运行时程序合成(
web/cipher/morse.js,19-cipher.md §2.1),零文件资产,勿排产。- 管线:
tools/gen_voice_dual.py照录(SPEAKERS 表需新增 cipher 行 + CIPHER_NPC 平铺表);多音字自查见文末注记。
G0 组 · 系统/向导/状态(WIND 双性别 ×39)
G0.a 操作提示句(含键盘变体,9 对 18 句——键盘玩家听这一区就够)
| id | 台词全文 | 触发 |
|---|---|---|
gd_brief |
单击继续值机。要选词时,向左或向右滑。 | 开场链最前(full 档,F8 先例) |
gd_brief_k |
按空格继续值机。要选词时,用左右方向键。 | 同上(inputMode=key) |
gd_continue |
单击屏幕,继续。 | 叙事链末看门狗第 1 级(full 25s / standard 13s) |
gd_continue_k |
按空格,继续。 | 同上(key) |
gd_again |
还在吗?单击继续。 | 看门狗第 2 级(50s / 30s),新句不逐字重播 |
gd_again_k |
还在吗?按空格继续。 | 同上(key) |
gd_tune1 |
电文在等。左右滑,听候选词。 | DECODE 浏览静默 10s(第 1 级) |
gd_tune1_k |
电文在等。左右方向键,听候选词。 | 同上(key) |
gd_tune2 |
双击,把电文再听一遍。再双击,会放慢。 | DECODE 浏览静默 25s(第 2 级,必须与第 1 级不同句;同时是慢放机制的常驻教学) |
gd_tune2_k |
按回车,把电文再听一遍。再按一次,会放慢。 | 同上(key) |
sys_help |
单击选定,双击重新听电文。上滑听状态,下滑开菜单。选择时,左右滑。 | 上滑帮助链尾 / 菜单内上滑 |
sys_help_k |
空格选定,回车重新听电文。上箭头听状态,下箭头开菜单。选择时,左右箭头。 | 同上(key) |
sys_menu |
菜单。单击切换选项,双击确认。 | 下滑呼出模态菜单 |
sys_menu_k |
菜单。空格切换选项,回车确认。 | 同上(key) |
sys_skip |
想跳过这句,单击就行。 | 开场每局一次(skip_hint 先例) |
sys_skip_k |
想跳过这句,按空格。 | 同上(key) |
sys_continue_ask |
检测到你的值机记录。单击继续上次,右滑开始新的夜班。 | 有存档进游戏 |
sys_continue_ask_k |
检测到你的值机记录。空格继续上次,右箭头开始新的夜班。 | 同上(key) |
G0.b 状态/系统句(无手势词,无变体)
| id | 台词全文 | 触发 |
|---|---|---|
gd_invalid |
这个手势,值机室里用不上。 | 无效手势(error 震,idle-only,同局限次) |
gd_prog1 |
光切词没有用。双击,先听电文。 | 无进展轨 60s(第 1 级,乱按抢救) |
gd_prog2 |
别急。停下来,把电文听完整。 | 无进展轨 120s(第 2 级) |
sys_menu_resume |
回到电波里。 | 菜单项 |
sys_menu_book |
翻密码本,换一个字母。 | 菜单项(长按捷径的冗余入口,P4) |
sys_menu_restart |
重新开始今晚。 | 菜单项 |
sys_menu_lobby |
保存并回大厅。 | 菜单项(确认后跳转前播) |
sys_settings |
音色、语速、背景音乐,请回大厅修改。 | 菜单内设置提示 |
sys_new_night |
新的夜班,开始了。 | 新夜班开始 / 菜单重开 |
G0.c 分档状态句(整句账目,逐值为真)
| id | 台词全文 | 触发 |
|---|---|---|
prog_t1 |
现在是今晚第一封电文。 | 上滑状态链(按当前封选播) |
prog_t2 |
现在是第二封,内部通报。 | 同上 |
prog_t3 |
现在是第三封,交接电文。 | 同上 |
prog_t4 |
第四封,最后一封。 | 同上 |
book_3 |
密码本,还剩三页。 | 状态链(余页=3;开局) |
book_2 |
密码本,还剩两页。 | 余页=2 |
book_1 |
密码本,只剩最后一页。 | 余页=1 |
book_0 |
密码本,一页都不剩了。 | 余页=0 |
exp_calm |
这一晚,还没人看你第二眼。 | 暴露度 0(跨档时挂夜结算链尾;状态链) |
exp_low |
处长端着茶,多看了你一眼。 | 暴露度 1-2 |
exp_mid |
走廊里的脚步声,慢了下来。 | 暴露度 3-4 |
exp_hot |
门外,好像有人换了岗。 | 暴露度 ≥5;各播报位附 warning 震 |
G1 组 · 开场(双性别 3 + 处长平铺 1)
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
b_open |
你 | 民国二十九年,江城。电讯处的夜班,从零点的电波声开始。 | INTRO(配 sfx/amb_room) |
b_rule |
北风 | 北风问候你。规矩就一条:听不清,就再听一遍。 | INTRO(一句规矩,P4;重听/慢放承诺) |
b_goal |
北风 | 今晚频道里有四封密电。每一个字,都要过你的耳朵。 | INTRO(四封承诺;随后第一封起播) |
b_chief |
处长 | 四封电文,一封都不许漏。你的耳朵,是处里最值钱的东西。 | INTRO 收尾(处长夜令,明线口径;配 sfx/tea_cup) |
M1 组 · 第一封·船期·教学(双性别 19,含 _k 2)
真词 BAY=货船;候选 DAY=客车 / RAY=巡逻艇;辨析位=第 1 字母。T1 译错无限重选零惩罚,恒收敛真词。
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
rx1_in |
北风 | 第一封。江上船队的调度,拍得很稳。 | RX 引入(配 sfx/tune_seek,随后摩尔斯首播 BAY) |
dv1_teach |
北风 | 电文进来了。先双击,把它重新听一遍。 | 首播后 DECODE 教学 ①(教「双击=重听」) |
dv1_teach2 |
北风 | 左右滑,听密码本上的候选词。单击,选定一个。 | DECODE 教学 ②(教候选导航+两段确认首击) |
dv1_teach2_k |
北风 | 左右方向键,听密码本上的候选词。空格,选定一个。 | 同上(key;候选导航键位绑定) |
dv1_ask |
北风 | 密码本第一页。三个词,哪个是它? | 抉择提示(choiceArmed;进浏览自动预听候选 1) |
cand_bay |
北风 | 货船。 | 候选预听报名(候选摩尔斯 620Hz 对照档之后接播;全 DECODE 复用本封) |
cand_day |
北风 | 客车。 | 同上 |
cand_ray |
北风 | 巡逻艇。 | 同上 |
dv1_right |
北风 | 货船,译对了。药品,装在货船的底舱。 | T1 译对判定(success 震;首个正反馈 ≈t+2min) |
dv1_wrong |
北风 | 不对。听清楚:B,一长,三短。 | T1 译错即时归因(真话:真词首字母的摩尔斯写死在句里;无限重选) |
hint_t1 |
北风 | 我教你一页:第一个字母,是 B。一长,三短。 | T1 翻密码本(首次免费不扣页,Prime→Teach;配 sfx/paper_page) |
cf_confirm |
北风 | 就这个词?再单击,定下来。 | 两段确认第 1 击(全 DECODE 共用;随后电文重播原速一遍) |
p2 |
北风 | 药品船,丑时过江。向左滑,把船期报给北风。向右滑,压进值机日志。 | 叙事抉择提示(播完即可选) |
p2_k |
北风 | 药品船,丑时过江。左箭头,把船期报给北风。右箭头,压进值机日志。 | 同上(key;首个叙事抉择键位绑定) |
r1a_send |
你 | 北风,北风。货船,丑时过江,接住。 | p2 左(报船期;配 sfx/key_send) |
r1a_e |
北风 | 收到。江上有人等你。第一封,做得稳。 | p2 左·收(med_ok 预埋;expose+0) |
r1b_hold |
你 | 先压一压。这一船的事,得看清楚再说。 | p2 右(压日志;expose+1) |
r1b_e |
北风 | 日志下面压着的,是三箱药。船,不会等你。 | p2 右·收(诚实复盘,非惩罚) |
n1 |
北风 | 零点半。挂钟走了半圈,雨没有停。 | NIGHT(1) 过渡句(随后跨档 exp_* 如有) |
M2 组 · 第二封·名单(双性别 16 + 处长平铺 1)
真词 TOP=黑名单;候选 TAP=窃听令 / TIP=线人费;辨析位=第 2 字母。正片起译错不揭穿:rev_* 按玩家所选播「你的认知」;expose +1。
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
rx2_in |
北风 | 第二封。手法很急,是内部通报。 | RX 引入(摩尔斯首播 TOP) |
dv2_ask |
北风 | 密码本第二页。三个词,选一个。 | 抉择提示 |
cand_top |
北风 | 黑名单。 | 候选预听报名 |
cand_tap |
北风 | 窃听令。 | 同上 |
cand_tip |
北风 | 线人费。 | 同上 |
rev_top |
北风 | 黑名单。头一个代号,叫码头。 | 译 TOP·揭晓(你的认知:码头=你的交通员;驱动 p4_known) |
rev_tap |
北风 | 窃听令。今夜,有人要装耳朵。 | 译 TAP·揭晓(误读分支;expose+1) |
rev_tip |
北风 | 线人费。月底之前,有人要收钱。 | 译 TIP·揭晓(误读分支;expose+1) |
p4_known |
北风 | 名单上有码头。向左滑,暗号示警,让他连夜搬家。向右滑,按流程呈报处长。 | 抉择提示(条件 t2=top) |
p4_blind |
北风 | 一封通报。向左滑,压进抽屉,谁的耳朵也别装。向右滑,按流程呈报处长。 | 抉择提示(条件 t2≠top) |
r2a_act |
你 | 有的字,不能落进卷宗。 | p4 左·暗处理(known=示警码头 / blind=压下通报;expose+1) |
r2a_e |
北风 | 这一页,从今天起,不存在了。 | p4 左·收(ep_list_ok 预埋) |
r2b_act |
你 | 通报誊清,呈处长。 | p4 右·呈报(mateListed=true;expose+0) |
r2b_e |
北风 | 名单进了卷宗。码头,自己多保重。 | p4 右·收(ep_list_no 预埋) |
m2_chief |
处长 | 嗯,译得很全。去吧。 | p4 右·处长收报(配 sfx/pen_scratch;通用真话:你誊了什么它就收什么) |
hint_t2 |
北风 | 翻到这页:第二个字母,是 O。三长。 | 翻密码本(扣 1 页;辨析位=O ⟹ 候选唯一) |
n2 |
北风 | 一点整。处长的灯,还亮着。 | NIGHT(2) 过渡句 |
M3 组 · 第三封·交接(双性别 16)
真词 HAND=今夜交接;候选 SAND=明晨交接 / LAND=地点变更;辨析位=第 1 字母(H 四短 vs S 三短,全作最狠听辨——慢放价值兑现段)。
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
rx3_in |
北风 | 第三封。很短,手法有点抖。 | RX 引入(摩尔斯首播 HAND) |
dv3_ask |
北风 | 密码本第三页。三个词,选一个。 | 抉择提示 |
cand_hand |
北风 | 今夜交接。 | 候选预听报名 |
cand_sand |
北风 | 明晨交接。 | 同上 |
cand_land |
北风 | 地点变更。 | 同上 |
rev_hand |
北风 | 今夜交接。丑时,老码头。 | 译 HAND·揭晓(你的行动按「今夜」展开) |
rev_sand |
北风 | 明晨交接。天亮再说。 | 译 SAND·揭晓(误读:你按「明晨」行动;expose+1) |
rev_land |
北风 | 地点变更。等下一封。 | 译 LAND·揭晓(误读:你按「等」行动;expose+1) |
p6 |
北风 | 交接在你手里。向左滑,亲自去码头跑一趟。向右滑,留书暗号,托给下一班。 | 抉择提示(固定文本,known/blind 共用——行动时机由你的认知决定) |
r3a_go |
你 | 口令我背得出。今夜,我亲自去。 | p6 左·亲自去(expose+2;按你的认知时间出门) |
r3a_e |
北风 | 值班室空了一刻钟。值机日志,停了一行。 | p6 左·收(expose+2 的纸面依据;成败留尾声) |
r3b_act |
你 | 暗号夹进交接簿,让雨替我跑这一趟。 | p6 右·留书(expose+0) |
r3b_e_ok |
北风 | 交接赶上了。袋子,连夜上了船。 | p6 右·收(条件 t3=hand;ep_hand_ok 预埋) |
r3b_e_no |
北风 | 交接的袋子,在码头放到了天亮。 | p6 右·收(条件 t3≠hand——误译的戏剧性反讽:约定时间本身错了) |
hint_t3 |
北风 | 翻到这页:第一个字母,是 H。四短。 | 翻密码本(扣 1 页) |
n3 |
北风 | 一点三刻。雨小了,频道里很静。 | NIGHT(3) 过渡句(随后走氧气门式签收) |
M4 组 · 第四封·处置令·高潮(双性别 15 + 处长平铺 3)
真词 SPY=内线确认;候选 SAY=约谈 / SLY=内部排查;辨析位=第 2 字母。rev_spy 挂全作唯一 danger 拍(step_halt 前置 2s);RELAY(4) 起 BGM 切
bgm/closing。
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
rx4_in |
北风 | 第四封。最后一个手法,你听过——快手七。 | RX 引入(无台词角色登场=手法音;摩尔斯首播 SPY) |
dv4_ask |
北风 | 密码本第四页。三个词,选一个。 | 抉择提示 |
cand_spy |
北风 | 内线确认。 | 候选预听报名 |
cand_say |
北风 | 约谈。 | 同上 |
cand_sly |
北风 | 内部排查。 | 同上 |
rev_spy |
北风 | 内线确认,今夜三时收网。代号,耳机。 | 译 SPY·揭晓(danger 拍:「耳机」=你自己的代号;expose+0 但驱动 p9_known) |
rev_say |
北风 | 明早九时,约谈相关人员。 | 译 SAY·揭晓(误读:危机被读成了例行公事;expose+1) |
rev_sly |
北风 | 即日起,排查站内三人。 | 译 SLY·揭晓(误读;expose+1) |
m4_chief_a |
处长 | 值机员,今晚的频道,很热闹啊。 | 处长试探 ①(p8 前铺垫;配 sfx/tea_cup) |
m4_chief_b |
处长 | 你的耳朵最好。听见什么,记得……要报。 | 处长试探 ②(施压;配 sfx/pen_scratch) |
p8_known |
北风 | 三点之前。向左滑,拍一封假电,说北风昨夜已撤。向右滑,手离开放键器,装傻。 | 抉择提示(条件 t4=spy;全表最长句 30 字) |
p8_blind |
北风 | 收台之前。向左滑,回一封例行电文,搅一搅水。向右滑,什么都不做。 | 抉择提示(条件 t4≠top;p9 将按 blind 版走) |
r4a_feed |
你 | 戴上手键。这一封,借快手七的手法。 | p8 左·反喂(配 sfx/key_send;expose+2,feed=true) |
r4a_e |
北风 | 假电出了门。对家的耳朵,听得出换人了吗。 | p8 左·收(悬而未决——真相在尾声) |
r4b_act |
你 | 手,离开放键器。我只是个值机的。 | p8 右·装傻(expose+0) |
r4b_e |
北风 | 有时,什么都不做,就是做了。 | p8 右·收 |
hint_t4 |
北风 | 翻到这页:第二个字母,是 P。短,两长,短。 | 翻密码本(扣 1 页) |
m4_chief_c |
处长 | 行。去睡吧,明天还有明天的事。 | p8 右·处长收场(仅右路播出) |
F9 组 · 签收抉择·最后一电(双性别 9)
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
g9_in |
北风 | 频道要收了。最后一件事,是你自己。 | 签收引入(NIGHT(3)/M4 之后) |
g9_knot |
你 | 三年前,我译错了一封电。那之后,我再没见过我的上线。 | 心结自述(玩家背景;与「译错也是剧情」主题闭环) |
p9_known |
北风 | 收网之前。向左滑,开机,发最后一电。向右滑,关机,装睡到天亮。 | 终局抉择提示(条件 t4=spy) |
p9_blind |
北风 | 北风在等答复。向左滑,开机,把今晚发出去。向右滑,例行收台。 | 终局抉择提示(条件 t4≠spy——你不知道那是什么电) |
d9_send |
你 | 北风,北风。处置令,今夜三时。撤。 | p9 左·发报(配 sfx/key_send;expose+2,结局判定用 p9 前值) |
d9_send_e |
北风 | 收到了。你的手法,我听了一整晚。快走。 | p9 左·低暴露收(p9 前 expose≤4;e1 入口) |
d9_caught_e |
北风 | 信号被咬住了。别回头,走水路。快。 | p9 左·高暴露收(≥5;danger 签名 + e3 入口) |
d9_sleep |
你 | 机关上了。雨声里,只剩挂钟。 | p9 右·关机 |
d9_sleepe |
北风 | 天亮之前,还有两个钟头。守住。 | p9 右·收 |
EP 组 · 结局与尾声回响(双性别 17;结局 8 + 回响 9)
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
e1_a |
你 | 电波追不上我了。码头的灯,一盏一盏地灭。 | 结局 e1(≤4 且发报)主句(配 sfx/dawn_bell) |
e1_b |
你 | 新的密码本,在城外渡口等我。黎明,比想象中安静。 | e1 收(钩子) |
e2_a |
你 | 交了班,一切照旧。没人知道今晚频道里发生过什么。 | 结局 e2(≤4 且关机)主句 |
e2_b |
你 | 只是北风的呼叫,到天亮也没人接。下一次,我会接吗。 | e2 收(钩子) |
e3_a |
你 | 我把警报拍了三遍。门开的时候,挂钟正好敲三点。 | 结局 e3(≥5 且发报)主句(配 sfx/lock_click) |
e3_b |
你 | 审讯室的灯,也很亮。可码头那边,一个人都没少。 | e3 收(钩子;你的暴露换同伴撤尽) |
e4_a |
你 | 两点五十九分,脚步停在门口。我把最后一页密码,塞进了炉子。 | 结局 e4(≥5 且关机)主句(配 sfx/lock_click) |
e4_b |
你 | 耳机还挂着。里面有一封电文,永远译不完了。 | e4 收(钩子) |
ep_lead |
北风 | 天亮了。北风给你记了最后一笔账——今晚的事,都有了去向。 | 尾声引入 |
ep_med_ok |
北风 | 药品:货船丑时靠岸,三箱药,一箱不少。 | 尾声(t1=bay 且 p2=左) |
ep_med_no |
北风 | 药品:没人接住那三箱药。船,白白过了江。 | 尾声(其余——压下或译错,真话) |
ep_list_ok |
北风 | 名单:码头连夜搬了家。卷宗里,少了一个人。 | 尾声(p4=左) |
ep_list_no |
北风 | 名单:天亮时,多了一个红圈。 | 尾声(p4=右——呈报的真实代价) |
ep_hand_ok |
北风 | 交接:胶卷上了船,手很稳。 | 尾声(t3=hand) |
ep_hand_no |
北风 | 交接:码头的灯,白亮了一夜。 | 尾声(t3≠hand) |
ep_spy_ok |
北风 | 处置令:你译对了它。北风,撤在你前头。 | 尾声(t4=spy) |
ep_spy_no |
北风 | 处置令:差的那三个字母,差了一整条命。 | 尾声(t4≠spy——全作归因真话的收束句) |
合计:139 句(预算 ≤150 ✓)
- 双性别 134 句(OP 你 20 + WIND 北风/系统 114,含
_k键盘变体 11)×2 性别 = 268 文件; - NPC 平铺 5 句(处长)= 5 文件;
- 合计 273 条音频 ×2 格式(ogg+m4a)= 546 文件。
- 键盘变体 11 对:gd_brief / gd_continue / gd_again / gd_tune1 / gd_tune2 / sys_help / sys_menu / sys_skip / sys_continue_ask / dv1_teach2 / p2(成对生成,
check_all_assets校验_k配对与双性别集合一致)。 - 每结局专属台词齐备:e1/e2/e3/e4 各 2 句 + 尾声回响 9 句(译文/抉择 flag 选播)。
- 每局实走 9 个抉择点(4 译词 p1/p3/p5/p7 恒 3 候选 + p2/p4/p6/p8/p9 恒 2 选项,无跳点路径)。
- 摩尔斯滴答声零文件(运行时
morse.js合成,19-cipher.md §2.1),本表不含。
多音字 / 发音风险自查注记
| 风险词 | 处理 |
|---|---|
| 重听 | 全表写「重新听」(sys_help / gd_tune2),无「重听」字样 |
| 长(cháng/zhǎng) | 「一长三短」「三长」「两长」为 cháng 正确常用读法,保留,试听确认 |
| 处(chǔ/chù) | 「处长」「处置令」为固定词,保留,试听确认 |
| 卷(juǎn/juàn) | 「胶卷」juǎn 与「卷宗」juàn 两读并存(ep_hand_ok/r2a_act),逐句人工试听项 |
| 塞(sāi/sè) | 「塞进了炉子」(e4_a)为 sāi 常用读法,保留,试听确认 |
| 行(xíng/háng) | 「行。去睡吧」(m4_chief_c)为 xíng,试听确认 |
| 着(zhe/zháo) | 「耳机还挂着」「守住」为常见读法,逐句试听项 |
| 得(de/dé) | 「译得很全」「打得稳」等助词 de,逐句试听项 |
| 教(jiāo/jiào) | 「我教你一页」为 jiāo 常用读法,保留 |
| 答(dá/dā) | 「在等答复」为 dá,保留 |
| 差(chà/chā/chāi) | 「差的那三个字母」「差了一整条命」为 chà,试听确认 |
| 圈(quān/juàn) | 「多了一个红圈」为 quān,保留 |
| 英文字母 | hint_t1..t4 / dv1_wrong 句内单字母(B/O/H/P)朗读为风险项,逐句试听;误读时改写为「字母 B」式带「字母」前缀重生成 |
| 挣/血/露/巷/降/率/传(zhuàn 义) | 全表未使用(「暴露」不进台词,仅存档 summary) |
| 了 / 还 / 中 | 常规句式常见读法,逐句人工试听项(「收住了吗」「挂钟走了半圈」等) |
| 数字 | 句内数字全部汉字写死(民国二十九年/零点/零点半/一点整/一点三刻/丑时/三时/明早九时/三点/两点五十九分/一刻钟/两个钟头/三箱/三年前),序号与档位用分档整句(prog_t*/book_/exp_) |
台词侧自查
- 单句 ≤40 字:全表最长 = p8_known(30 字),次长 p6/p4_known(29 字)、sys_help(27 字)✓;NPC 处长句 ≤23 字(最长 b_chief,P4 语速感靠短句+逗号,不用 instruct 语速词)✓。
- 有台词人物 2 人(北风=WIND 双性别组、处长=平铺),无台词角色快手七零资产 ✓;同一角色 speaker+instruct 恒定、区分度风险逐个标注 ✓。
- 称呼合规:处长对玩家只用「值机员/你」,北风称「你」,性别化称呼零出现 ✓。
- 每个结局(e1..e4)专属主句+钩子各 2 句齐备,尾声救/错过双线齐备(ep_* 由 flags 单源选播)✓。
- 归因真话律:dv1_wrong 的字母/码与真词 BAY 一致;rev_* 只播玩家认知不冒认真相;ep_med_no/ep_hand_no/ep_spy_no 与 flags 一致;无「运气不好」类假归因、无惩罚性措辞 ✓。
- 分档账目真实:book_3/2/1/0 与余页一一对应;exp_calm/low/mid/hot 与 0/1-2/3-4/≥5 一一对应;prog_t1..t4 分封整句 ✓。
- 向导 gd_* 13 句(gd_brief/gd_continue/gd_again/gd_tune1/gd_tune2 各带 _k 变体,gd_invalid/gd_prog1/gd_prog2 无变体)符合 14 号 §6 台词规范(一句一义、无重复句式、单句 ≤18 字)✓。
R2 增补(2026-09-14,round1 synthesis F3 修复)
EP.b 组新增 4 句结局收集计数(结算链尾播报,数字规避分档整句;存档 endings 账同源):
| id | 声部 | 台词全文 | 触发 |
|---|---|---|---|
end_c1 |
北风 | 这是你在电波里挣下的第一个结局。 | 结算链尾(结局收集数=1) |
end_c2 |
北风 | 这是你在电波里挣下的第二个结局。 | 结算链尾(=2) |
end_c3 |
北风 | 这是你在电波里挣下的第三个结局。 | 结算链尾(=3) |
end_c4 |
北风 | 四个结局,都收进你的密码本了。 | 结算链尾(=4) |
- 合计 139 → 143 句(WIND 114 → 118;双性别 134 → 138;音频文件 273 → 281 条 ×2 格式)。
- 无
_k变体(无操作词);instruct 复用 WIND 常量;数字为分档整句无拼接。 - 配套修复(同轮,无新台词):F1 NIGHT 链首纸面标记音(复用现有 sfx,零新增资产); F2 book_1 播报位附 warning 震(exp_hot 同机制)。
R4 · 26 号深度重构(设计单 26-apply-cipher.md;施工台词清单 tools/voice_lines_26/cipher.md)
交互权威 26 号手册。本轮开场第一句改 critical 指令「点一下屏幕。」(b_rule/gd_brief 规矩念白废除,b_open/b_goal/b_chief 移驻 NIGHT(1) 链首补全叙事)、等待点三档提示 统一 sys_hint_* / gd_tune1_short / cf_hint_*、主动重听「再说一遍:」前缀、手势阶梯 三阶段教学句、菜单改左右滑换项 + 单击确认(00 §5.4)、「双击重听/慢放」「长按翻 密码本」旧口径全部废止(双击=阶段 3 阶梯重听电文原速→再请求慢放;翻本走菜单项 或迷茫 L3)。增量清单原文 =
tools/voice_lines_26/cipher.md(生成并表时逐字并入tools/gen_voice_dual.pyCIPHER_WIND_LINES,两表一致铁律;web/harness/ voice_text.jsoncipher 主表已同步,142 条)。类别:critical / content / hint / feedback。系统/交互层句子全部走 WIND 北风组(北风电台=上线联络+系统音,与 radio 的 PROD 导播组同型;与既有 sys_skip 同组)。
新增(20 句 × 双性别,WIND 组;其中 4 条由引擎播出但资产照落本目录):
| id | 台词全文 | 类别 | 触发 |
|---|---|---|---|
sys_first_tap |
点一下屏幕。 | critical | 冷启动第一句(≤3s,不可打断) |
sys_first_tap_short |
点一下。 | hint | intro 等待点 _short 档(full=null:指令句刚说过) |
sys_turn_teach |
听到这个声音,就是轮到你了。 | content | 「轮到你」等待声首现教学(首夜开场第一下单击后,全局一次;与 storyline 同文案) |
sys_hint_continue_full |
单击,继续。 | hint | continue 等待点 full 档(13s) |
sys_hint_continue_short |
单击。 | hint | continue/settle 等待点 _short 档 |
sys_hint_choice_short |
左右滑,选。 | hint | choice 等待点 _short 档(25s 台账降档后首档) |
sys_hint_again_full |
单击,重新开始。 | hint | settle 等待点 full 档 / 结算态左右滑解释句 |
gd_tune1_short |
左右滑。 | hint | decode 等待点 _short 档(25s);menu 等待点 _short 复用同资产 |
cf_hint_full |
单击,定下这个词。 | hint | confirm 等待点 full 档(10s,19 号附录 C §5 原句) |
cf_hint_short |
单击。 | hint | confirm 等待点 _short 档(20s) |
sys_only_choice |
现在,只要左右滑。 | hint | 迷茫 L2 抉择点缩小选择(restrictLine) |
sys_demo_continue |
听我做一次。 | hint | 迷茫 L3 演示前缀(intro/continue:替玩家走一步) |
sys_demo_choice |
左右滑,都可以。现在你来。 | hint | 迷茫 L3 抉择点演示(不替玩家做有后果的选) |
sys_say_again |
再说一遍: | hint | 主动重听前缀(engine/hints.js 播出,全项目一句) |
sys_unlock_up |
想知道自己在哪,就向上滑。 | content | 手势阶梯阶段 1 教学句(T1 译对挂 dv1_right 揭晓链尾;engine/novice.js teachLine 播出) |
sys_unlock_down |
向下滑,可以打开菜单。 | content | 阶段 2 教学句(首局结局链尾;engine/novice.js) |
sys_unlock_dt |
没听清,就双击,再听一遍。 | content | 阶段 3 教学句(重听电文原速→再请求慢放 0.5×) |
inv_up_locked |
上滑还没解锁。先单击继续。 | feedback | up 未解锁首次解释(原则 7) |
inv_down_locked |
菜单,玩完一局解锁。单击继续。 | feedback | down 未解锁首次解释 |
inv_nosel |
现在不用选。单击继续。 | feedback | 非抉择点滑动首次解释(叙事段左右滑) |
修改(3 句,id 不变重录):dv1_teach「向右滑,听下一个词。」(原「电文进来了。
先双击,把它重新听一遍。」= 双击重听口径,随阶段 3 阶梯废止;19 号附录 C §6 原句,
critical);sys_menu「菜单。左右滑换项,点一下确认。」(原「单击切换选项,双击确认」
= 旧菜单口径,00 §5.4 废止);gd_invalid「这个手势,值机室里用不上。单击,继续。」
(补正确做法,原则 7 首次解释=原因+正确做法)。
删除(10 句):gd_brief / gd_continue / gd_again / gd_tune2(向导层让位
三档提示,原则 9;gd_tune2=双击重听/慢放常驻教学废止)/ gd_prog1 / gd_prog2
(无进展轨让位迷茫接管,且含双击口径)/ sys_help(帮助溢出废止,含「双击重新听」
旧口径)/ b_rule(开场规矩念白,§4.10 零规则念白)/ dv1_teach2(两段确认教学
停用,一句只教一个)/ dv1_ask(T1 职能并入 dv1_teach 改写版;dv2/dv3/dv4_ask
保留)。上方 G0 / G1 / M1 组表中对应行按本节口径废止。
计数(并表后):主句 132 − 10 + 20 = 142(WIND 107 → 117,OP 20 与 NPC 平铺
5 不动;web/harness/voice_text.json 已同步);_k 变体 11 → 24 对(删 6:
gd_brief/gd_continue/gd_again/gd_tune2/sys_help/dv1_teach2;新增 19:17 条新增句
- dv1_teach/gd_invalid 改写句;sys_menu 重录替换);双性别组 138 → 161 句,总计 166 句。上方头注「134 句 / 11 对变体」与 R2 节「143 句」按本节口径更新 (R2 计数含变体:主句 127 + 变体 11 = 138)。
键盘变体:措辞照 KEY_LINES["storyline"](「按空格」「左右方向键」「按回车」);
新增句无操作词不列(sys_turn_teach / sys_say_again / sys_demo_continue 落回主资产);
修改句变体全部重录:dv1_teach「向右方向键,听下一个词。」、sys_menu「菜单。
左右方向键换项,按空格确认。」、gd_invalid「这个手势,值机室里用不上。按空格
继续。」。既有 gd_tune1 / sys_skip / sys_continue_ask / p2 变体不动;删除句变体随
主句停用(b_rule / dv1_ask 本无变体)。多音字口径维持全表无「重听」(一律
「重新听」/「再听一遍」)。