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

11 KiB
Raw Permalink Blame History

26-apply · 《节拍行者》重构设计单(26 号文档落地)

按 26 号文档附录 C 填写。交互规则权威来源:26-audio-interaction-playbook.md。 玩法权威来源:24-rhythm-drummer.md(谱面 / 判定窗 / BPM / 解锁 / 评级 / 音色全部不动)。 台词清单:tools/voice_lines_26/rhythm.md;登记副本同步 24-rhythm-voice-ids.md。

1. 一句话核心动作

屏幕是一面 3×2 鼓组。领奏敲一小节,你在下一小节同一拍点敲同一面鼓。

2. 玩家可感知的状态(3 个)与声音身份

状态 Floor 听感 来源
演奏(摸鼓 / 教学跟打应答窗 / 正片) ACTION 无鼓伴奏 + 鼓声音色(声像+音高)就是状态;点按即敲,无等待声 §4.1
演出(开场指令后探针之外无;教学指令 / 数拍 / 领奏示范 / 结算评级链) SPEAKING / BUSY 语音链(教学指令 critical);数拍与示范小节只有内容音,手势给 busy 回执 §4.1
等你(选曲 / 结算 / 菜单 / 续玩问询 / 教学跟打等待点) YOUR_TURN 交接提示音 → 等待声;教学跟打等待点关等待声(演奏语义,24 号 A27) §4.1

首次教:sys_turn_teach「听到这个声音,就是轮到你了。」在曲目一第一个应答窗前随交接提示音一起出现(每账号一次)。

3. 新手手势表与解锁阶梯

手势 演奏 ACTION 选曲 / 结算 / 菜单 解锁
单击(分区坐标,immediateTap) 敲该区(判定 / 自由演奏出声) 开始 / 再来 / 确认菜单项 阶段 0
左 / 右滑 invalid 回执(非音符,不出声) 切曲(每项报名)/ 结算下一首 / 菜单换项 阶段 0
上滑 状态查询一句(同长按) 状态查询 / 帮助一句 阶段 1(第一次成功跟打,ladder.onGoal())
下滑 阶段 2 前回执 invalid;阶段 2 后无条件暂停菜单 菜单 / 回大厅 阶段 2(一首曲子打完,ladder.onGameDone())
长按 状态查询(曲目 / 段落 / 连击一句 ≤20 字;setRateBoostEnabled(false) 豁免快进) 帮助 / 重听最近播报 阶段 0(本作核心手势,longpressCore)
双击 当单击(同区两记连续点按本来就是两次 tap,doubleTapWindow: 0) 阶段 3 后重听最近播报(sys_say_again 前缀) 阶段 3

键盘平行通道:Digit1–6 / 小键盘 1–6 = 六区,按下即发零延迟(tapcancel 撤销认领同步适用);空格落 BC 家区;选曲 / 结算 / 菜单态数字键不生效。

4. 状态 × 手势矩阵(新手期)

状态 \ 手势 单击(分区) 左 / 右滑 上滑 下滑 长按 双击(未解锁) 连点 / 乱滑
开场指令(SPEAKING,critical) busy 回执 busy 回执 busy busy 状态句 折算单击→busy busy
摸鼓探针(ACTION) 敲区出声 + 首摸报名(silent-ok) invalid 回执 invalid 回执 invalid 回执 状态句 敲区 每下都出声(探索礼物)
教学指令 / 数拍 / 领奏示范(SPEAKING critical / BUSY) busy 回执 busy 回执 busy busy busy busy busy
教学跟打应答窗(YOUR_TURN,无等待声) 敲区判定(silent-ok;错鼓=invalid+归因) invalid 回执 状态句 invalid 回执 状态句 敲区 合法连击(hold)
正片(ACTION) 敲区判定(silent-ok;窗外自由演奏出声) invalid 回执 状态句 阶段2=菜单 / 回执 状态句 敲区 合法连击
选曲(YOUR_TURN) 开始当前曲(未解锁=invalid+song_locked) 切曲报名(30s 台账去重后只给提示音) 帮助一句 阶段2=回大厅 / 回执+解释 帮助一句 (阶段3)重听 400ms 防连点 busy
暂停菜单(YOUR_TURN) 确认当前项 换项报名 重听菜单说明 关闭菜单恢复 重听菜单说明 (阶段3)重听 400ms 防连点 busy
结算(YOUR_TURN) 同曲再来 右=下一首(未解锁=invalid+song_locked;末位=restart 句) 重听评级 阶段2=回大厅 / 回执 重听评级 (阶段3)重听 只处理第一下
续玩问询(YOUR_TURN) 继续上次曲目 右=重新选曲 帮助 回执+解释 帮助 (阶段3)重听 400ms 防连点 busy

无空格:每一格都有回执或内容音;invalid 在演奏态只给回执不解释(应答内零语音,24 号 §0.5),在等待态首次附一句解释(原则 7)。

5. 等待点配置表

id 期待 full short 静默阈值 L2 L3(onDemo)
select tap select_full「单击,开始。」 select_short「单击。」 18s/40s 只留 tap 提示音
settle tap settle_full「单击,再来一遍。」 settle_short「单击。」 20s/45s 只留 tap 提示音
menu tap/left/right menu_help menu_help 20s/45s 只留三手势 提示音
reopen tap/right sys_continue_ask select_short 18s/40s 只留两手势 提示音
tut_0(家区跟打) tap tut_kick_full「家区在下中。点一下。」 tut_kick_short「点下中。」 8s/16s 只留 tap 演示:游戏把本步音符敲一遍再交回
tut_1(左右下跟打) tap tut_sides_full「左下,再右下。」 tut_sides_short「左右下。」 8s/16s 同上 同上
tut_2(上排跟打) tap tut_top_full「上排三个,挨个敲。」 tut_top_short「跟上排。」 8s/16s 同上 同上
  • 教学跟打等待点在应答窗开时 yieldTurn 且 bedEnabled=false(交接提示音响、等待声不响)——演奏语义(24 号 A27);窗到期评估完成/失败即摘点。
  • 摸鼓探针(T0)不是等待点:ACTION 自由探索,任意敲出声 + 首摸报名,摸 ≥3 区或 8s 无触摸自动进 T1(探索是礼物不是门槛,24 号 §6)。
  • 正片全曲 ACTION,不挂等待点、不挂等待声;应答小节内零语音(hint/feedback 播不出就丢,§4.6)。

6. 首 3 分钟逐秒脚本

时间 游戏说 / 播 期待玩家做 没做 做错
0~3s 「点一下屏幕。」(critical)→ 摸鼓探针开(ACTION) 任意敲 8s 自动进 T1(不卡流程) 滑动:invalid 回执
3~10s 区音色 + 区名(第一次成功=第一声鼓);首摸后「摸到三个不同的地方,我们就开始。」 摸 ≥3 区 同上 重复摸:只出声不报名
10~30s T1「听我敲下中,你跟着敲。」→ 木鱼数拍 + 领奏示范(BUSY)→ 交接提示音 → 应答窗(YOUR_TURN 无等待声) 敲家区 BC 8s:tut_kick_full → short → 提示音 错区:区名归因 + 错鼓句
30~60s 「对了。」→ T2 左右下、T3 上排各一步(教一个马上用) 跟打 三档 + 迷茫接管 2 败降速 25%;3 败跳步
60~90s 「很好,演出开始。」→ 选曲(select_hint + 曲名,等待声) 单击开始 18s:select_full → 「单击。」 滑动切曲报名
90~100s 四下底鼓数拍 + 无鼓 BGM 起(ACTION);首应答窗前 1 小节「听到这个声音,就是轮到你了。」+ 交接提示音 听 → 跟敲 曲目继续(不掉血不中断) 早/晚/错鼓分档归因
100~180s 曲目一前半(Perfect 叠亮音、连击 16 震、mid_song 过半播报) 敲对区 连 2 Miss 才 gd_miss 一次(曲尾 3s 不插) Miss=闷镲 + 归因

节奏检查 ✓:3s 内动手(第一句就是指令);首成功=第一声鼓(≤10s);每 30s 有可听进展(区名 → 教学步 → 曲目句)。

7. 失败表(24 号 §0.7 数字保留,归因口径 26 号化)

失败类型 判定 归因句(feedback,2s 内) 回到哪里 新手期代价
没出手 expected+GOOD+0.10s 无应答 教学:gd_miss_none + retry_listen;正片:闷镲(连 2 才 gd_miss,同曲一次) 教学该步重演;正片歌继续 不中断、不扣
早 / 晚 同区超 Perfect 仍在 Good 教学:retry_early / retry_late + gd_miss_early / late;正片 Good 出声不纠 教学该步重演 无
错鼓 异分区音符半窗内被敲 教学:retry_wrong + gd_miss_wrong;正片错区音色本身(配额内不叠语音) 教学该步重演 combo 清零
教学 2 败 同一步失败 2 次 gd_slow「我放慢一些。」×0.75 重演(每教学局 1 次) 该步 再败跳过不卡死
长按演奏期误触 按下≥450ms 状态查询句(不判定、不归属) 原地 无

归因真话律:没出手不说「慢了半拍」;归因句 feedback 类,应答小节内播不出就丢(§4.6);曲尾 3s 内不插 gd_miss。

8. 台词表(类别标注)

  • critical:sys_first_tap(开场指令 <3s)、tut_z_kick / tut_z_sides / tut_z_patt(教学指令各 <3s)、tut_ok+下一条教学指令链、结算承诺段 restart(+解锁教学 sys_unlock_*)
  • content:welcome_back、tut_done、tut_probe、zone_(首摸报名)、song_name、song_locked、unlock_song2/3、grade_s/a/b/c、new_best_combo、mid_song、tut_fill、sys_turn_teach、sys_continue_ask
  • hint:select_full/short、settle_full/short、menu_help、tut_kick/sides/top_full/short、st_p1a..p3b、st_c1..3(长按状态查询)、rules、sys_say_again
  • feedback:retry_early/late/wrong/listen/skip、inv_generic、inv_down_locked、inv_up_locked
  • 沿用向导层 9 句(已在库):gd_answer、gd_count、gd_miss、gd_miss_early/late/wrong/none、gd_slow
  • 完整清单(新增 32 / 修改 7 / 删除 5 / 键盘变体 22):tools/voice_lines_26/rhythm.md。

9. 断点复述句

  • 保存:进曲即写 progress.lastSong(曲目粒度,schema 1 加字段);一曲打完清除。
  • 回来:tutorialDone 且 lastSong 有效 → 先播状态声与 sys_continue_ask「上次的曲子没打完。单击继续,右滑重选。」再 yieldTurn(reopen);单击=继续该曲(从头起拍,count-in 进场),右滑=重新选曲。
  • 暂停(菜单):泵停、BGM 记 offset;恢复全网格平移 = 暂停时长 + 4 拍 count-in(guide full 先播 gd_count,每曲 1 次)。

10. 测试记录

  • 无头 playtest:web/rhythm/test/playtest.mjs(判定窗 / 错鼓 / 超时 / tapcancel 撤销 / 双击两连击 / 数拍 / 加花 / 评级解锁 / 进度 summary 等玩法断言保留适配;新增 26 号断言:开场首句 critical 动手、演出期 busy 回执、ACTION 无等待声、等待点台账、§6.2 乱点机器人:无声操作 0 / 被动原句重复 0 / 打断失败 0)。
  • 真人冷启动:待测。