# 《节拍行者》鼓手模式 R1 全拟真试玩报告 两会话均真机跑完(live harness:真 chromium + SenseVoice ASR 听游戏实况,非 mock; 控制端口 8142,游戏服务器 8001)。驱动为事件流跟随器(vibrate 锚定真实发声时刻 + 谱序消费),节奏精度经多轮校准后 dt≈0.00s。 ## 局 A(主线 · male 1.0× · guide=full · 教学+曲目一全 Perfect 弧线) - 产物:`live/A/`(events.jsonl 40KB / mix.webm 4.7MB / transcript.md / verdicts.json) - ASR 判定:**OK 11 / TRUNCATED 5 / MISMATCH 2**(SFX_BGM_ONLY 间隙探针 7) - 完整弧线实录:摸鼓认区(zone_tl OK)→ T1 降速重演(gd_slow OK sim=1.0)→ T2/T3 通过 → tut_done(OK sim=1.0)→ 数拍 → gd_answer(OK sim=1.0)→ mid_song(OK sim=0.8)→ tut_fill(OK sim=0.92)→ **grade_a(A 级)→ unlock_song2(OK sim=0.93)→ restart(OK)**,全链无人为干预走通 - 演奏精度:**33 记 Perfect accent / 4 记 Miss**——跟随线程与游戏判定网格的 逐音配对(pop 日志 entry.when ≈ vibrate.ta ±0.02s)证明判定窗(±0.15/±0.35) 在真机触摸链路(CDP 合成触摸+HTTP)下准确兑现 - 归因(全部非游戏缺陷或已修级): - TRUNCATED welcome/tut_map/tut_probe = 驱动故意三连跳旁白(kill) - MISMATCH zone_tr / new_best_combo = 短句 ASR 同音近失(「右上吊镲」→ 「有上调查」;「新连击纪录」→「新联机记录」),cipher 批次先例同款 - TRUNCATED zone_bl = 探针第三击触发进阶时 stopVoice 切断区名(P2) - TRUNCATED gd_miss = 曲尾连 Miss 的向导句播 1.1s 后被结算评级语音顶掉 (半句「慢了半拍。」)——P1(F1) - 曲终 4 记 Miss 系驱动 clearPending 误杀尾单补发(驱动侧 artifact,已修) ## 局 B(压力线 · female 1.7× · guide=standard · bgm 0.3 · 错区乱打+菜单+长按) - 产物:`live/B/`(events.jsonl / mix.webm 3.3MB / transcript.md;verdicts 因驱动 超时未及落盘——control 层 artifact,非游戏问题) - 关键机制实录:跳教学(tut_skip)→ 数拍 → **错区乱打全程 guide=standard 零向导语音**(gd_* vstart = 0,earcon/震动照发)→ 32 记 error 震 + grade_c → 曲中菜单(下滑→单击切选项→上滑帮助→下滑恢复,恢复后网格平移续播)→ 长按死输入(闷镲+error 震,不判定不归属)→ 结算链 - 1.7× 语速下语音链无截断无风暴(保险丝零触发) ## 结论 - 教学 DDA(gd_slow)、归因真话律(gd_miss_none)、count-in 恢复(gd_count)、 模态菜单断点续播、错鼓闷镲反馈、长按死输入定义——全部实况兑现 - 判定网格精确性真机直证(33/37 Perfect 级命中,dt 均值 ~0.00s) - 无死锁、无状态错乱、非资产类 console.error = 0 - 基础设施教训(沉淀,惠及后续 live 驱动): 1. 事件流驱动必须单飞拉取(并发 pump 同 since 窗口 → 事件重复入队错位) 2. start 事件带 `when` 字段:when>0=排程领奏 / when=0=即时(玩家击/闷镲), 玩家击会回声触发跟随循环,必须双重过滤 3. 发声时刻锚定用 vibrate 事件(setTimeout 按 ev.time 触发),不用 start 的 t(含 _load 时序噪声) 4. BGM 的 source.start(t0) 也是 when>0 的 start 事件,入队前必须按 layer 过滤 5. 视口坐标:control 默认 390×844,三区边界 130/260(驱动初版按 300×600 导致右列全部敲成中列)