配对码与认领(B): - POST /api/pair/start|join:6 位码 10 分钟单次有效、仅存内存零泄露面、5 连错 per-IP 封锁 10 分钟;join=新设备档案按桶 LWW 并入老档案+token 改绑(复用 claim-merge);日志脱敏 - 大厅:生成配对码(speechSynthesis 逐位朗读+aria-live+重听)/从其他设备转入(one-time-code 输入框)/从本机移除/401 过期自愈引导/aria 补全/玩家名可听化 - api-smoke 12/12(配对全流程/频控/封锁/过期自愈/移除/digitsToCn)+ CDP 真浏览器 E2E 22/22 键盘语音双套资产(A,路线 a): - 164 变体句(8 游戏 grep 实测,超出调研预估 153:含轻触/点两下/按住变体)×2 性别=328 生成 656 文件 36.9 分钟;触屏主资产零字节改动(PCM 逐样本比对后还原) - 引擎 _candidates 三跳路由 key→gender→平铺(inputMode 跟随);缓存键 mode|gender|id;engine-input 新增 K9 路由断言(72 条) - check_all_assets 增 key 列(两性别一致且 ⊆ 主集)8 游戏全绿;voice_text.json 增 __key__ 表;live control.mjs key 会话对照键盘措辞验收(集成) - voice-ids 文档:8 游戏键盘变体小节由 KEY_LINES 程序化生成(与台词表逐字断言一致);补齐 storyline/escape/simon 三个历史缺失文档;design README 增 new8 索引 - mock 适配:playtest persona 加 maxTouchPoints=1 保持触屏链断言语义零改动 回归:12 套件全绿(8 playtest + guide 122 + engine-voice 19 + engine-input 72 + api-smoke 12/12) 同批入库:批次 2/3 已完稿设计文档(17-abyss/18-detective/19-cipher 全套,20-22 在途)
3.8 KiB
3.8 KiB
01b · 《暗室》语音台词表(voice ids)
主台词表(80 句,双性别)的唯一事实源是
tools/gen_voice_dual.py的ESCAPE_LINES(R2 重设计全文见 01-escape-redesign.md; 史源 app/src/escape/gen/gen_voice.py)。本文档登记 P1 键盘变体(输入平权 路线 a)——变体只覆盖含操作词的句子,id 集合 ⊆ 主表,复用主表同 id 的 instruct/speaker。
键盘变体(key,P1 输入平权路线 a,30 句)
「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定,
web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载
web/escape/audio/voice/<gender>/key/<id>.{ogg,m4a},变体缺失回退主资产——触屏措辞零改动。
措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理, WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格; 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余 内容一字不动,不新增「重」类多音字。本表与
tools/gen_voice_dual.py的KEY_LINES逐字一致(两表一致铁律:改一处必改另一处)。 资产:×2 性别 = 30×2 条、×2 格式 = 30×4 文件;管线gen_voice_dual.py --only-variants生成 →--convert落盘,终检tools/check_all_assets.py(key 两性别一致且 ⊆ 主集)。
| id | 键盘台词全文(触屏原句见本表上方对应 id) |
|---|---|
g1_move |
先活动一下。按任意方向键,走一小步。 |
g2_wall |
这个房间不大,四面都是墙。再按两下方向键,试试碰碰墙。 |
g3_left |
跟着我指的路走。按左方向键。 |
g4_down |
对。再按下方向键。 |
g5_inspect |
听到水声了吗?按一下空格,仔细检查这个房间。 |
g6_doubletap |
钥匙能开锁。按回车,是把物品用出去的用法。现在,按回车试试。 |
g7_goal |
找到能用这把钥匙打开的东西。需要帮助时,在原地按回车。 |
guide_wrong_up |
不是这个方向。按上方向键。 |
guide_wrong_down |
不是这个方向。按下方向键。 |
guide_wrong_left |
不是这个方向。按左方向键。 |
guide_wrong_right |
不是这个方向。按右方向键。 |
guide_blunt_up |
按一下上方向键。 |
guide_blunt_down |
按一下下方向键。 |
guide_blunt_left |
按一下左方向键。 |
guide_blunt_right |
按一下右方向键。 |
reopen_prompt |
按上方向键,重新听一遍引导。按空格,直接开始。 |
stuck_key_2 |
去西南角的储物间,按空格检查,找到钥匙。 |
stuck_cabinet_2 |
去东边的铁柜房,按回车,用钥匙打开铁柜。 |
stuck_box_2 |
去西北角的电箱房,按回车,把保险丝装进电箱。 |
stuck_gate_2 |
去东南角的大门,按回车,打开它,离开这里。 |
nav_up |
按上方向键。 |
nav_down |
按下方向键。 |
nav_left |
按左方向键。 |
nav_right |
按右方向键。 |
start_room |
你站在设施中央的房间里。方向键移动,按空格检查,按回车使用物品。 |
inspect_gate_ready |
电子锁的指示灯亮了,发出微弱的绿光。大门已经通电。按回车,打开它,离开这里。 |
use_fail |
这里没有用得上东西的地方。换个房间试试,或者先按空格检查一下周围。 |
again |
按空格,再来一次。按下方向键,打开菜单。 |
help_ops |
方向键,在房间之间移动。按空格,检查房间,或者重听房间的声音。按回车,使用物品,或者查看背包。 |
skip_hint |
按空格可跳过旁白。 |