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

106 lines
9.4 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 · 《深夜茶馆》(teahouse)26 号深度重构台词清单
> 设计单正文见 [docs/design/26-apply-teahouse.md](../../docs/design/26-apply-teahouse.md)
> (玩法/交互见 [20-teahouse.md](../../docs/design/20-teahouse.md) 附录 C);交互权威
> 26 号手册。本文件是 R2 改造的台词增量清单,管线路径 `tools/gen_voice_dual.py` 的
> `TEAHOUSE_LINES`(两表一致铁律:并入时逐字照抄)。
>
> 音色规则:全部走 `_TEA` 掌柜旁白组(双性别配对不变);NPC 平铺 `TEAHOUSE_NPC`
> (老周/苏晚/陈拾/白老/何雨眠 65 句)**平铺不动**。
> 写作口径(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「没听清,就双击,再听一遍。」)。
> 动作词统一「点一下」(tap);键盘变体措辞照 KEY_LINES["storyline"](「按空格」
> 「左右方向键」「按回车」=双击/重听)。
> 注:本游戏等待点短句命名用 `wp_*` 前缀(wp_tap_short 承担 storyline
> sys_first_tap_short 同职)。
## 一、新增(14 句 × 双性别,`_TEA`)
游戏静态引用 11 条 + 引擎侧 3 条(sys_say_again 由 engine/hints.js 重听前缀播出、
sys_unlock_up/down/dt 由 engine/novice.js teachLine 播出,资产同样落本游戏目录):
("sys_first_tap", _TEA, "点一下屏幕。") <!-- critical,开场第一句(≤3s,critical 不可打断) -->
("sys_tap_start", _TEA, "点一下开始。") <!-- critical,已 drillDone 玩家开场(不念教学) -->
("sys_turn_teach", _TEA, "听到这个声音,就是轮到你了。") <!-- content,「轮到你」状态声首现教学(全局一次,与 storyline 逐字一致) -->
("sys_say_again", _TEA, "再说一遍:") <!-- hint 前缀,主动重听(全项目一句,每游戏各存一份) -->
("sys_unlock_up", _TEA, "想知道自己在哪,就向上滑。") <!-- content,手势阶梯阶段 1 教学句(第一盏茶送出后挂 D5 链首) -->
("sys_unlock_down", _TEA, "向下滑,可以打开菜单。") <!-- content,手势阶梯阶段 2 教学句(第一晚睡下后挂下一晚开场链首) -->
("sys_unlock_dt", _TEA, "没听清,就双击,再听一遍。") <!-- content,手势阶梯阶段 3 教学句 -->
("wp_tap_short", _TEA, "点一下。") <!-- hint,intro/reopen/close/drill 等待点 _short 档 -->
("wp_tea_full", _TEA, "左右滑选茶。点一下定。") <!-- hint,TEA 等待点 full 档(20 号附录 C §5 原文) -->
("wp_tea_short", _TEA, "左右滑。") <!-- hint,TEA 等待点 _short 档 -->
("wp_up_short", _TEA, "向上滑。") <!-- hint,D5 教学等待点 _short 档 -->
("inv_up_locked", _TEA, "上滑还没解锁。先点一下继续。") <!-- feedback,up 未解锁首次解释(原则 7) -->
("inv_down_locked", _TEA, "菜单,玩完一晚解锁。点一下继续。") <!-- feedback,down 未解锁首次解释(第一晚打烊解锁) -->
("inv_serve_swipe", _TEA, "现在不用滑。听客人把话说完。") <!-- feedback,堂前链间空档滑动首次解释 -->
(water/steep 时机等待点 full/short **置空不新增**——分层铁律:窗内只 earcon,
见 26-apply-teahouse.md 偏差 1。)
## 二、修改(10 句重录,id 不变;旧「双击」「单击」口径废止)
("sys_menu", _TEA, "菜单。左右滑换项,点一下确认。") <!-- 原「菜单。单击切换,双击确认。」;菜单改 00 §5.4 左右滑换项+单击确认(旧「单击循环+双击确认」= 26 §7 反模式 5) -->
("sys_help", _TEA, "左右滑选茶,点一下定下。听水声,点一下提壶;滴答密,点一下出汤。上滑问状态,下滑开菜单。") <!-- 原「……双击提壶……双击出汤……」;废除双击口径,动作词统一「点一下」 -->
("sys_continue_ask", _TEA, "检测到没打烊的茶馆。点一下继续,右滑两次重开新店。") <!-- 原「单击继续」→「点一下继续」(动作词统一) -->
("tut_tea", _TEA, "点一下,选定这罐茶。") <!-- 原「单击,选定这罐茶。」 -->
("tut_water", _TEA, "灶上坐水。泡泡细密是将沸,咕嘟连片是滚透——听到细密,点一下提壶。") <!-- 原「听到细密,双击提壶」;废除「双击提壶」(单击已即时) -->
("tut_steep", _TEA, "注水,闷泡。滴答由稀到密,密起来就是将好——点一下,出汤。") <!-- 原「双击,出汤」;废除「双击出汤」 -->
("tut_serve", _TEA, "茶好了。点一下,端出去。") <!-- 原「单击,端出去。」 -->
("settle_night", _TEA, "熄了灯,这一晚就过去了。点一下,睡下。") <!-- 原「单击,睡下」 -->
("upg_open", _TEA, "要添置点什么?左右滑看,点一下买定。") <!-- 原「单击买定」 -->
("gd_close", _TEA, "账报完了。点一下,熄灯睡下。") <!-- 原「单击,熄灯睡下」;复用为 close 等待点 full 档 -->
## 三、删除(5 句停用,不再被游戏引用;对应 key/ 变体随主句下线)
("intro_3", …) —— 开场规则念白(「泡茶三步:选茶、候汤、出汤。……」),§4.10 开场零规则念白(玩法由教学七步跟练承担)
("tut_status", …) —— D5 旧教学句(「上滑,听今晚的局面……」),D5 改等待点 short 档 wp_up_short「向上滑。」+ 状态链实操
("tut_skip", …) —— 教学跳过句(「已跳过教学。……双击动手。」),教学跳过废除(90s 替打保送 + drillDone 直进;句内「双击动手」为旧口径)
("gd_serve", …) —— 堂前旧看门狗(「客人还在堂前。上滑,再听一遍他要的茶。」),上滑状态链(sys_say_again+点单句)承担
("gd_brew", …) —— 灶上旧看门狗(「还在灶上,听声动手,双击。」),时机步由水声/滴答时间线自动判定 + L3 替打承担;句内「双击」为旧口径
(hint_water/recap_go/gd_invalid/gd_close 保留(gd_invalid 复用为 TITLE/OPENING/
CLOSE 滑动与长按首次解释;hint_water 复用为菜单回灶复述);G2/G3/G4/G5/G7 其余
句子与 NPC 平铺 65 句不动。)
## 四、键盘变体(KEY_LINES["teahouse"] 增量;只改操作词,其余一字不动)
新增句含操作词的变体(无操作词不列:sys_turn_teach / sys_say_again /
inv_serve_swipe,落回主资产):
("sys_first_tap", "按空格。")
("sys_tap_start", "按空格,开始。")
("sys_unlock_up", "想知道自己在哪,就按上方向键。")
("sys_unlock_down", "按下方向键,可以打开菜单。")
("sys_unlock_dt", "没听清,就按回车,再听一遍。")
("wp_tap_short", "按一下空格。")
("wp_tea_full", "左右方向键选茶。空格定。")
("wp_tea_short", "左右方向键。")
("wp_up_short", "按上方向键。")
("inv_up_locked", "上方向键还没解锁。先按空格继续。")
("inv_down_locked", "菜单,玩完一晚解锁。按空格继续。")
修改句的变体(必须重录,旧句含「单击/双击」字样):
("sys_menu", "菜单。左右方向键换项,空格确认。")
("sys_help", "方向键选茶,空格定下。听水声,空格提壶;滴答密,空格出汤。上键问状态,下键开菜单。")
("sys_continue_ask", "检测到没打烊的茶馆。空格继续,右方向键两次重开新店。")
("tut_water", "灶上坐水。泡泡细密是将沸,咕嘟连片是滚透——听到细密,空格提壶。")
("tut_steep", "注水,闷泡。滴答由稀到密,密起来就是将好——空格,出汤。")
修改句的变体(沿用不重录,现变体不含「单击/双击」字样):tut_tea「空格,选定这罐茶。」/
tut_serve「茶好了。空格,端出去。」/ settle_night「熄了灯,这一晚就过去了。按空格,睡下。」/
upg_open「要添置点什么?左右方向键看,空格买定。」/ tut_d0「先看茶柜。左右方向键,一罐一罐听。」
删除句的 key/ 变体随主句停用:intro_3(无变体)/ tut_status(无变体)/ tut_skip(无变体)/
gd_serve / gd_brew。
> 合并提示:并入 gen_voice_dual.py 时,新增 14 条进 TEAHOUSE_LINES、修改 10 条原地
> 替换、删除 5 条摘除;KEY_LINES["teahouse"] 同步:新增 11 条 + 重录 5 条 +
> 摘除 gd_serve/gd_brew 2 条(V 组 10 对 → 19 对)。`sys_unlock_*` 与 sys_say_again
> 虽由引擎播出,资产照常落 web/teahouse/audio/voice/{female,male}/。