Files
SoundGame/docs/design/04-space-voice-ids.md
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

15 KiB
Raw Permalink Blame History

04a · 《盲航》重构版语音台词表(voice ids,R4 录音依据)

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 在游戏正文设计单里点名,补进本表后再进生成脚本。

给音频总监的录制说明

  • 设计依据:04-space-rebuild.md。闪避为同向(左来左滑),台词已全部按此写死,不存在反向表述。
  • 旁白双性别:female = Serena,male = Uncle_Fu(R1 音色分配表)。落 web/space/audio/voice/female|male/<id>.{ogg,m4a}。
  • instruct 全表统一(同游戏同 instruct,00 文档 §3.2):
    • female(Serena):平静清晰的女声,像飞船领航员,沉稳可信
    • male(Uncle_Fu):低沉醇厚的男声,像飞船领航员,沉稳有力
    • 演练的紧迫感靠台词文案表达,instruct 不变。
  • 全部整句、无数字拼接:方位/次数/存活时间/躲避数全部按句写死或分档。
  • 多音字已规避("重新听"不写"重听";无"撞着/着陆"类风险)。
  • 管线:tools/gen_voice_dual.py 照录本表。本表全量替换 R1 生成的 space 语音(旧 id 见表末映射)。

D 组 · 交互式演练(14 句)

id 台词全文 触发
drill_welcome 欢迎登上盲航。你只有一双耳朵。 D0
drill_rule 陨石来了,会有声音告诉你方位。 D0
drill_left 听,左边有陨石。向左滑,把它拨开! D1
drill_right 这次在右边。向右滑! D2
drill_up 上面有东西,声音又尖又高。向上滑! D3
drill_down 下面是低沉的轰隆。向下滑! D4
drill_good 漂亮。 演练做对(D1/D3 播)
drill_retry_left 那是左边来的,向左滑。 D1 做错重教
drill_retry_right 那是右边来的,向右滑。 D2 做错重教
drill_retry_up 声音又高又尖,是上面,向上滑。 D3 做错重教
drill_retry_down 轰隆声在下面,向下滑。 D4 做错重教
drill_moveon 没关系,跟着我,我们继续。 同一步失败 2 次自动带过
drill_done 四个方向你都会了。引擎点火,出发! D5
drill_skip 跳过演练,直接出发。 下滑跳过

P 组 · 保护期(5 句)

id 台词全文 触发
protect_left 训练护盾接住了。那颗在左边,听到左边的呼啸,向左滑。 保护期被撞(左)
protect_right 训练护盾接住了。那颗在右边,听到右边的呼啸,向右滑。 保护期被撞(右)
protect_up 训练护盾接住了。那颗在上面,听到高高的呼啸,向上滑。 保护期被撞(上)
protect_down 训练护盾接住了。那颗在下面,听到低沉的轰隆,向下滑。 保护期被撞(下)
protect_end 训练护盾关闭。接下来,靠你自己了。 第 60 秒

F 组 · 单击/双击分批引入(6 句)

id 台词全文 触发
feat_boost 试试单击,引擎会短促加速,直接冲过空隙。 第 20 秒引入
feat_boost_done 感觉到了吗?加速的时候,陨石撞不上你。 单击后确认
feat_shield 双击展开护盾,能挡下一次撞击。 第 45 秒引入
feat_shield_done 护盾展开后会自动充能,好了我会告诉你。 双击后确认
shield_ready 护盾充能完毕。 30 秒冷却结束(沿用 R1 id,重录)
shield_block 护盾挡下了撞击。 护盾生效(沿用 R1 id,重录)

H 组 · 被撞归因(5 句,保护期后)

id 台词全文 触发
hit_left 左边撞上的。听到左边的呼啸,向左滑。 第 1/2 次被撞(左)
hit_right 右边撞上的。听到右边的呼啸,向右滑。 右
hit_up 上面撞上的。听到高高的呼啸,向上滑。 上
hit_down 下面撞上的。听到低沉的轰隆,向下滑。 下
hit_last 船体只剩最后一次了,小心! 第 2 次被撞后接在方位句后

M 组 · 里程碑(4 句)

id 台词全文 触发(躲过数)
ms_10 十颗了,稳。 10
ms_25 二十五颗,老练的飞行员。 25
ms_50 五十颗,传奇。 50
ms_100 一百颗!天空属于你。 100

R 组 · 结算(10 句)

id 台词全文 触发
time_1 不到三十秒,再试一次。 存活 <30s
time_2 超过三十秒,有进步。 30~60s
time_3 超过一分钟,合格的飞行员。 60~120s
time_4 超过两分钟,王牌飞行员。 ≥120s
dodge_1 只拨开几颗。 躲过 <5
dodge_2 拨开了十来颗。 5~14
dodge_3 拨开了几十颗。 15~49
dodge_4 拨开了一大群,漂亮。 ≥50
new_record 新纪录! 破纪录(插在 time_* 后)
restart_hint 单击再飞一次,下滑回大厅。 结算尾

Y 组 · 菜单与系统(8 句)

id 台词全文 触发
second_run_ask 上滑重新听演练,单击直接出发。 二周目开场
menu_main 菜单。左右滑选择,单击确认。 → 勘误(R 终审):菜单约定已改(00 §5.2),以音频重录版"菜单。单击切换,双击确认。"为准。 下滑呼出
menu_resume 继续飞行。 菜单项
menu_lobby 回大厅。 菜单项
menu_help 重新听教学要点。 菜单项
help_recap 左边来向左滑,右边来向右滑,上面来向上滑,下面来向下滑。单击加速,双击护盾。 帮助重听(>25 字,生成期拆两句拼接:句 1 四方位,句 2 单击双击)
settings_hint 音色、语速、背景音乐,请回大厅修改。 菜单内
paused 已暂停。 菜单打开时

合计 52 句 × 2 性别 = 104 条(×2 格式 = 208 文件)。

旧 id 处置:R1 生成的 num*/n_*/intro1-4/hit1/hit2/gameover/restart 全部弃用(数字拼接与旧教学);shield_ready/shield_block 沿用 id 重录。平铺旧文件按 R1 约定在切换验证后统一清理。

键盘变体(key,P1 输入平权路线 a,24 句)

「生效输入模式=键盘」(settings.input=key,或 auto 且键盘在跟/纯桌面初始判定, web/engine/gesture.js inputMode())时,引擎 voice 候选链前置加载 web/space/audio/voice/<gender>/key/<id>.{ogg,m4a},变体缺失回退主资产——触屏措辞零改动。

措辞规范(02-input-parity.md §4.3 路线 a + P1 裁定):向左滑→按左方向键(四向同理, WASD 不进台词);单击/轻触屏幕→按空格;双击→按回车;按住/长按→按住空格; 复合短语(左右滑→左右方向键、滑动→方向键)按语义等价展开;只改操作词,其余 内容一字不动,不新增「重」类多音字。本表与 tools/gen_voice_dual.py 的 KEY_LINES 逐字一致(两表一致铁律:改一处必改另一处)。 资产:×2 性别 = 24×2 条、×2 格式 = 24×4 文件;管线 gen_voice_dual.py --only-variants 生成 → --convert 落盘,终检 tools/check_all_assets.py(key 两性别一致且 ⊆ 主集)。

id 键盘台词全文(触屏原句见本表上方对应 id)
drill_left 听,左边有陨石。按左方向键,把它拨开!
drill_right 这次在右边。按右方向键!
drill_up 上面有东西,声音又尖又高。按上方向键!
drill_down 下面是低沉的轰隆。按下方向键!
drill_retry_left 那是左边来的,按左方向键。
drill_retry_right 那是右边来的,按右方向键。
drill_retry_up 声音又高又尖,是上面,按上方向键。
drill_retry_down 轰隆声在下面,按下方向键。
protect_left 训练护盾接住了。那颗在左边,听到左边的呼啸,按左方向键。
protect_right 训练护盾接住了。那颗在右边,听到右边的呼啸,按右方向键。
protect_up 训练护盾接住了。那颗在上面,听到高高的呼啸,按上方向键。
protect_down 训练护盾接住了。那颗在下面,听到低沉的轰隆,按下方向键。
feat_boost 试试按空格,引擎会短促加速,直接冲过空隙。
feat_shield 按回车展开护盾,能挡下一次撞击。
hit_left 左边撞上的。听到左边的呼啸,按左方向键。
hit_right 右边撞上的。听到右边的呼啸,按右方向键。
hit_up 上面撞上的。听到高高的呼啸,按上方向键。
hit_down 下面撞上的。听到低沉的轰隆,按下方向键。
restart_hint 按空格再飞一次,按下方向键回大厅。
second_run_ask 按上方向键重新听演练,按空格直接出发。
menu_main 菜单。按空格切换选项,按回车确认。
help_recap 左边来按左方向键,右边来按右方向键,上面来按上方向键,下面来按下方向键。按空格加速,按回车护盾。
skip_hint 按空格可跳过旁白。
gd_hit_hint 被撞了。听方位,按对应方向键就能拨开。

R5 追加 · space polish 轮新增(2 句 × 2 性别 = 4 条;取证依据 research/space-polish/round1/)

本轮(R5)只追加,不改上方任何旧表。instruct 沿用全表 _SPC 常量(两性别同游戏同 instruct,00 文档 §3.2)。 台词已同步 tools/gen_voice_dual.py 的 SPACE_LINES(两表一致铁律)与 web/harness/voice_text.json 的 space 键。 无键盘变体:两句均不含操作词(space 键盘变体表 24 句不增)。

id 台词全文 触发
protect_soon 训练护盾还剩十秒。 开局第 50s(保护期剩 10s 预告;queue 不顶句,被菜单/分批引入打断由 _rearmRunTimers 补播)
boost_not_ready 引擎还在冷却,稍等一下。 加速冷却中单击(R5 归因真话:拒绝必须有回音,此前冷却单击全静默);与护盾拒绝共用 4s 去抖

R6 · 26 号对齐改造(设计单 04-space-rebuild.md 附录 C;施工记录 26-apply-space.md)

交互权威 26 号手册。本轮删 D0 零操作欢迎、删单击/双击保护期插课、菜单改左右滑 + 单击 (00 §5.4)、帮助一律长按、新手期无双击。增量清单原文 = tools/voice_lines_26/space.md (生成并表时逐字并入 tools/gen_voice_dual.py SPACE_LINES,两表一致铁律; web/harness/voice_text.json space 键已同步)。类别:critical / content / hint / feedback。

新增(18 句 × 2 性别):

id 台词全文 类别 触发
hint_tap 单击。 hint settle / reopen / ask 等待点 _short 档
d_short_left 向左滑。 hint d1 等待点 _short;迷茫 L2 限定方向
d_short_right 向右滑。 hint d2 等待点 _short;迷茫 L2
d_short_up 向上滑。 hint d3 等待点 _short;迷茫 L2
d_short_down 向下滑。 hint d4 等待点 _short;迷茫 L2
hint_swipe 向声音那边滑。 hint 迷茫 L1;演练等待点单击首次解释
inv_tap 现在只要滑。 feedback 对局未解锁加速时单击首次解释
inv_whiff 现在没有这边的陨石。 feedback 挥空首次解释
miss 没拨到。声音一响就滑。 feedback 演练没出手归因(禁说「慢了」)
lp_run 引擎舱。躲开呼啸。向声音那边滑。 hint 长按 = 我在哪(≤20 字)
lp_teach 想知道在哪,按住屏幕。 content 第一次成功闪避后教长按帮助(阶段 1)
sys_turn_teach 听到这个声音,就是轮到你了。 content 教「轮到你」状态(D2 后一次;与 storyline 同文案)
sys_say_again 再说一遍: hint 主动重听前缀(结算/菜单长按与阶段 3 双击)
sys_unlock_down 向下滑,可以打开菜单。 content 第一局结束教阶段 2(挂结算链尾)
sys_demo 听我做一次。 hint 迷茫 L3 / 演练 2 次失败演示
sys_now_you 现在你来。 hint L3 演示后交回话轮
resume_ask 上次飞到一半。单击继续,右滑重开。 hint 断点复述询问(reopen 等待点 _full)
resume_recap 你在航道上。躲开呼啸。向声音那边滑。 content 续玩复述句(count-in 前)

修改(9 句,id 不变重录):drill_left「听,左边有陨石。向左滑。」(critical); drill_right「这次在右边。」;drill_up「上面,向上滑。」;drill_down「下面,向下滑。」 (04 §0.5 d1~d4 _full,压进指令字数);feat_boost「点一下,加速。现在试试。」与 feat_shield「双击,展开护盾。现在试试。」(04 §4 解锁教学,替代保护期第 20s/45s 插课); help_recap「听到哪边来,就向哪边滑。按住屏幕问路。」(删单击加速/双击护盾口径); menu_main「菜单。左右滑切换,单击确认。」(00 §5.4,旧「单击切换,双击确认」废止); restart_hint「单击,再飞一次。」(critical 承诺段;菜单入口改由 sys_unlock_down 教)。

删除(9 句):drill_welcome / drill_rule(D0 零操作欢迎,04 §2)、drill_skip (演练不再提供下滑跳过)、skip_hint(开场零操作旁白已删)、paused(对局中不开菜单)、 settings_hint(菜单帮助只留 help_recap 一句)、feat_boost_done(boost 音即反馈)、 gd_hit_hint / gd_last_life(向导层让位 Floor:hit_

与 hit_last 已覆盖)。 上方 D 组 / F 组 / Y 组表中对应行按本节口径废止;second_run_ask 保留。

通用句取舍:sys_first_tap 不引入(开场第一句 = D1 指令,§4.10 第一句就让玩家拨一颗); sys_unlock_up 不引入(up 是玩法闪避方向,阶段 1 教的是长按 → lp_teach); sys_unlock_dt 不引入(阶段 3 以后双击 = 护盾而非重听,教学用 feat_shield)。

键盘变体:新增 18 条 + 重录覆盖(drill_right/up/down 变体移除——修改后主句不含 操作词,动作提示由 d_short_* 变体承担);多音字口径维持「重新听」(全表无「重听」)。