# 26-apply · 《节拍行者》重构设计单(26 号文档落地) > 按 26 号文档附录 C 填写。交互规则权威来源:[26-audio-interaction-playbook.md](26-audio-interaction-playbook.md)。 > 玩法权威来源:[24-rhythm-drummer.md](24-rhythm-drummer.md)(谱面 / 判定窗 / BPM / 解锁 / 评级 / 音色全部不动)。 > 台词清单:[tools/voice_lines_26/rhythm.md](../../tools/voice_lines_26/rhythm.md);登记副本同步 [24-rhythm-voice-ids.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)。 - 真人冷启动:待测。