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 置完成。
136 lines
9.4 KiB
Markdown
136 lines
9.4 KiB
Markdown
# 《节拍行者》26 号重构台词清单(rhythm)
|
||
|
||
> 生成依据:`tools/gen_voice_dual.py` RHYTHM_LINES 段(变量名 `_RHY`,全表同一 instruct
|
||
> 常量)。本清单为 RHYTHM_LINES 的**全量替换稿**:新增 / 修改 / 删除 / 键盘变体四节。
|
||
> 交互与写作规范:[26-audio-interaction-playbook.md](../../docs/design/26-audio-interaction-playbook.md);
|
||
> 设计单 [26-apply-rhythm.md](../../docs/design/26-apply-rhythm.md);登记副本同步
|
||
> [24-rhythm-voice-ids.md](../../docs/design/24-rhythm-voice-ids.md)。
|
||
>
|
||
> 写作检查:指令 ≤12 字;`_short` ≤6 字;叙事 ≤25 字;状态查询 ≤20 字;肯定 ≤4 字;
|
||
> 每句标类别(critical / content / hint / feedback);「重听」一律作「重新听」(多音字);
|
||
> 通用系统句与 storyline 文案逐字一致(sys_first_tap / sys_turn_teach / sys_say_again /
|
||
> sys_unlock_* 三句)。
|
||
>
|
||
> 双性别:male=Uncle_Fu / female=Vivian;instruct 沿用 `_RHY`
|
||
> (「低沉醇厚的男声,像节奏游戏主持人,平稳有力」/「活力清晰的年轻女声,像节奏游戏
|
||
> 主持人,情绪饱满但不夸张」)。向导层 9 句 gd_* 已在库沿用不重录(不在本表)。
|
||
|
||
## 1. 新增(32 句)
|
||
|
||
```python
|
||
RHYTHM_LINES += [
|
||
# ---- 系统层(26 号:开场/状态教学/重听前缀/阶梯,文案与 storyline 一致)----
|
||
("sys_first_tap", _RHY, "点一下屏幕。"), # critical
|
||
("sys_first_tap_short", _RHY, "点一下。"), # hint
|
||
("sys_turn_teach", _RHY, "听到这个声音,就是轮到你了。"), # content
|
||
("sys_say_again", _RHY, "再说一遍:"), # hint
|
||
("sys_unlock_up", _RHY, "想知道自己在哪,就向上滑。"), # content
|
||
("sys_unlock_down", _RHY, "向下滑,可以打开菜单。"), # content
|
||
("sys_unlock_dt", _RHY, "没听清,就双击,再听一遍。"), # content
|
||
# ---- 等待点三档提示(§4.4:full / short 两档)----
|
||
("select_full", _RHY, "单击,开始。"), # hint
|
||
("select_short", _RHY, "单击。"), # hint
|
||
("settle_full", _RHY, "单击,再来一遍。"), # hint
|
||
("settle_short", _RHY, "单击。"), # hint
|
||
("menu_help", _RHY, "左右滑换项,单击确认。"), # hint
|
||
# ---- 教学跟打等待点三档提示(24 号 §0.5)----
|
||
("tut_kick_full", _RHY, "家区在下中。点一下。"), # hint
|
||
("tut_kick_short", _RHY, "点下中。"), # hint
|
||
("tut_sides_full", _RHY, "左下,再右下。"), # hint
|
||
("tut_sides_short", _RHY, "左右下。"), # hint
|
||
("tut_top_full", _RHY, "上排三个,挨个敲。"), # hint
|
||
("tut_top_short", _RHY, "跟上排。"), # hint
|
||
# ---- 教学肯定(原则 11:≤4 字,做完马上肯定)----
|
||
("tut_ok", _RHY, "对了。"), # feedback
|
||
# ---- 长按/上滑状态查询(原则 3:一句话 ≤20 字,整句预生成不拼接)----
|
||
("st_p1a", _RHY, "《启程》,前半段。"), # hint
|
||
("st_p1b", _RHY, "《启程》,后半段。"), # hint
|
||
("st_p2a", _RHY, "《追风》,前半段。"), # hint
|
||
("st_p2b", _RHY, "《追风》,后半段。"), # hint
|
||
("st_p3a", _RHY, "《星爆》,前半段。"), # hint
|
||
("st_p3b", _RHY, "《星爆》,后半段。"), # hint
|
||
("st_c1", _RHY, "连上了,跟着敲。"), # hint
|
||
("st_c2", _RHY, "连击正顺,保持。"), # hint
|
||
("st_c3", _RHY, "连击如虹,稳住。"), # hint
|
||
# ---- 无效操作解释(原则 7:每「状态×手势」一次)----
|
||
("inv_generic", _RHY, "这个操作用不上。"), # feedback
|
||
("inv_down_locked", _RHY, "菜单,玩完一局解锁。"), # feedback
|
||
("inv_up_locked", _RHY, "上滑还没解锁。"), # feedback
|
||
# ---- 断点复述(§4.12)----
|
||
("sys_continue_ask", _RHY, "上次的曲子没打完。单击继续,右滑重选。"), # content
|
||
]
|
||
```
|
||
|
||
## 2. 修改(7 句;旧文案废止口径见 §3 与 24 号正文)
|
||
|
||
```python
|
||
# 旧 → 新(整句替换,id 不变)
|
||
("tut_z_kick", _RHY, "听我敲下中,你跟着敲。"), # 旧「下面正中间,是底鼓,你的家。先听四下数拍,然后跟着我敲。」——指令 >12 字,双轴讲解拆给区名;critical
|
||
("tut_z_sides", _RHY, "左下和右下,跟着敲。"), # 旧「左下是军鼓,右下是低嗵。一左一右,跟着打。」——同上;critical
|
||
("tut_z_patt", _RHY, "上排三个音,跟着敲。"), # 旧「上面一排更清亮。左上踩镲,上中高嗵,右上吊镲。听这一句,三个音。」——乐器名由区名 zone_* 自带;critical
|
||
("select_hint", _RHY, "左右滑选歌,单击开始。"), # 旧「左右滑选曲目,单击开始,下滑回大厅。」——新手期下滑未解锁,不预告下滑;content
|
||
("restart", _RHY, "单击,再来一遍。右滑,下一首。"), # 旧「单击再来一遍,右滑下一首,下滑回大厅。」——同上(交出选择句式);critical
|
||
("rules", _RHY, "我敲一小节,你照着敲。"), # 旧「规则:我敲一小节鼓,你在下一小节照着敲回来。鼓要选对,拍点也要对。」——帮助一句 ≤12 字;hint
|
||
("menu_main", _RHY, "菜单。左右滑换项,单击确认。"), # 旧「菜单。单击切换选项,双击确认。」——双击确认废止(00 号 §5.4);content
|
||
```
|
||
|
||
## 3. 删除(5 句;音频随本轮 convert 后删除)
|
||
|
||
```python
|
||
# id:废止原因
|
||
("welcome",) # 旧开场长句(纯规则说明,§4.10 反模式 6)→ sys_first_tap 首句即动手
|
||
("tut_map",) # 双轴模型长讲解 → 区名 zone_* 自带教学(做中学)
|
||
("tut_skip",) # 新手期无下滑跳教学路径(下滑阶段 2 才解锁);卡死保护改 3 败自动跳步
|
||
("skip_hint",) # 「单击可跳过旁白。」——26 号管道自动回执,不再预告
|
||
("settings_hint",) # 菜单上滑帮助组合废止;设置只在大厅改(00 号 §1.2)
|
||
```
|
||
|
||
## 4. 键盘变体(22 句;KEY_LINES["rhythm"] 全量替换稿)
|
||
|
||
> 规则同 KEY_LINES["storyline"]:向左滑→按左方向键(四向同理);单击→按空格;
|
||
> 双击→按回车;敲鼓另有数字键一至六(本作键盘平权通道)。只改操作词,其余一字不动。
|
||
|
||
```python
|
||
KEY_LINES["rhythm"] = [
|
||
("sys_first_tap", "按空格敲鼓。"),
|
||
("tut_z_kick", "听我敲数字五,你跟着敲。"),
|
||
("tut_z_sides", "数字四和六,跟着敲。"),
|
||
("tut_z_patt", "数字一、二、三,跟着敲。"),
|
||
("tut_kick_full", "家区是数字五。按一下。"),
|
||
("tut_kick_short", "按五。"),
|
||
("tut_sides_full", "数字四,再数字六。"),
|
||
("tut_sides_short", "按四六。"),
|
||
("tut_top_full", "上排,按一、二、三。"),
|
||
("tut_top_short", "按上排。"),
|
||
("select_hint", "左右方向键选歌,按空格开始。"),
|
||
("select_full", "按空格,开始。"),
|
||
("select_short", "按空格。"),
|
||
("settle_full", "按空格,再来一遍。"),
|
||
("settle_short", "按空格。"),
|
||
("restart", "按空格,再来一遍。右方向键,下一首。"),
|
||
("menu_main", "菜单。左右方向键换项,按空格确认。"),
|
||
("menu_help", "左右方向键换项,按空格确认。"),
|
||
("sys_unlock_up", "想知道自己在哪,就按上方向键。"),
|
||
("sys_unlock_down", "按下方向键,可以打开菜单。"),
|
||
("sys_unlock_dt", "没听清,就按回车,再听一遍。"),
|
||
("sys_continue_ask", "上次的曲子没打完。按空格继续,右方向键重选。"),
|
||
]
|
||
```
|
||
|
||
> 沿用不重录:tut_probe 键盘变体「按出三个不同的键,我们就开始。」(文案未变);
|
||
> 其余无操作词主资产(zone_* / retry_* / grade_* / song*_name / st_* / tut_ok /
|
||
> sys_turn_teach / sys_say_again / inv_* / mid_song / tut_fill / menu_resume /
|
||
> menu_lobby / welcome_back / new_best_combo / song_locked / unlock_song2/3 /
|
||
> tut_done / gd_*)触屏/键盘通用,不设变体。
|
||
|
||
## 生成与验收口径
|
||
|
||
- 汇总表 = 沿用 29 + 修改 7 + 新增 32 = 68 句主表(双性别 136 条),另向导层 gd_* 9 句沿用;
|
||
键盘变体 22 句。
|
||
- 生成:`.venv-tts/bin/python tools/gen_voice_dual.py --game rhythm --gender both`
|
||
(flock .gpu.lock);检查 `--check`;转码 `--convert`;`--only-variants` 单独补键盘变体。
|
||
- convert 后删除废止 id 音频:welcome / tut_map / tut_skip / skip_hint / settings_hint
|
||
(male/female 及 key 变体共 10 文件×2 格式)。
|
||
- web/harness/voice_text.json 的 rhythm 主表与 `__key__` 变体表同步本台词
|
||
(转写时长估算与 ASR 判定用)。
|