Files
xsl ae850a4ce0 feat(rhythm): 鼓手模式重构——屏幕六区鼓组 + 无鼓伴奏合拍(用户裁定重构)
- 屏幕3列×2行六区鼓组(列=声像左中右/行=音高上亮下沉),六件程序合成打击乐,三重冗余蒙眼可辨
- 无鼓伴奏BGM上跟随领奏 call&response + 加花句;3曲90/105/120 BPM解锁制,BPM实测89.99/105.00/120.01
- 引擎后向兼容扩展:onGesture补{x,y}坐标(单参回调零感知,15游戏+3引擎测试全量回归零失败)
- 判定简化:全部音符=分区点按零延迟,旧双击补偿/下滑折中退役;键盘Digit1-6+空格=家区
- 教学摸鼓认区(摸哪报哪,8s无触摸自动进阶)+重教≤2+降速DDA+归因真话律
- 保留旧作好评:跟随领奏核心/S~C评级/解锁制/判定口径/guide工程遗产
- 语音49id双性别+8key;R1+R2连续2轮4/4愿意玩P0=0裁定可交付;live直证33 Perfect dt≈0.00s
- 03号文档仅文末加取代指针;新设计24号;档案research/rhythm-drummer/;Mureka累计$1.35
2026-09-14 20:17:10 +08:00

3.5 KiB
Raw Permalink Blame History

《节拍行者》鼓手模式 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 导致右列全部敲成中列)