abyss《深海回音》: - R1 补 synthesis(5/5 愿意玩 P0=0)+ 补录 R1 缺失裁决材料 - R2 十修全部现场坐实:F1 ping迟到/尾句保护首播制/链末看门狗不拆/回波静默一拍/dv4_dual扣账口播/crit水面变体/看门狗13s/震循环1.1s/震去重/状态链人数句 - 补录语音18段(flock串行,QC无离群);playtest 242→278 - 终裁:4/4 人设满分档,连续 2 轮达标 → 可交付 ✅ detective《雨夜专案》: - R1 取证轮:补跑 live 两会话(认真新手33分钟全弧线/乱按200s三级保底抢救),5/5 愿意玩 P0=0 - R2 十一修全部坐实:intro完整落声/tut不被掐/按轴取句/人名指认/结案确认闸/指路句/选句记忆位/hint轻震/st_wrong当场记账/tut_skip补动词/L2疑点齐分支 - 补录+改词33条(29新增+4重录);playtest 265→279 - 终裁:6/6 愿意玩,连续 2 轮达标 → 可交付 ✅ 公共:00-program 批次2进度账收账、13号文档 R2 断言关键词、gen_voice_dual 两游戏段、voice_text.json 验证:abyss 278/278 + detective 279/279 + guide 122/122 + check_all_assets 全项目全绿
9.8 KiB
9.8 KiB
《深海回音》全拟真试玩报告 — R2 修复验证轮(认真新手 + 急性子)
本轮性质:R1 synthesis 十项修复(F1-F10)的现场验证轮——R1 的复现步骤原样重做, 坏结果不再出现、且新行为被事件/音频双重证据锁定。同时补上 R1 未覆盖的单载形态路径。
基本信息
- 对象:
web/abyss/(R2 修复后,game.js 含 F1-F10;新资产 18 段已入库)@ localhost:8001, 真头 Chromium + SenseVoice ASR 全拟真。泳道专用控制实例 localhost:8124(8123 为 detective 泳道在用,未动)。产物:web/harness/live/out/abyss-20260913041253(局 A)与abyss-20260913042318(局 B)。 - 局 A(认真新手):
voice=male, speed=normal, bgm=normal, guide=full,约 9.8 分钟录音 时长,50 个手势(tap 38 / swiperight 8 / swipedown 2 / swipeup 1 / swipeleft 1)。 开场撞上前序会话存档(ASK → 单击续进 INTRO 复述)。结局 e1「海燕归钟」(全右省气- p9 左取钟;saved=5),结尾单击「再来一局」→ sys_new_dive 正常重开。
- 局 B(急性子):
voice=female, speed=1.7, bgm=normal, guide=standard,约 9.3 分钟, 128 个手势(tap 68 / swipeleft 53 / swiperight 4 / swipedown 2 / doubletap 1), 抢跑跳句、96s 乱按(48 次无效左滑)、菜单开关、结算句连点截击。路径 p1左 p3左 p6左 → 氧气门单载形态(R1 live 未覆盖)→ p7 左带船长 → chen_last → p8 右 → oxy_end=0 → p9 左封锁 g9_dry 自动右 → e4「按规程上浮」(saved=4)。 - ASR 判定:局 A 84 段 OK 79 / TRUNCATED 3 / MISMATCH 2;局 B 82 段 OK 45 / MISMATCH 26 / TRUNCATED 10(1.7x 下 MISMATCH 为已知 ASR 伪影,降权解读,见测量局限)。两局 console.error = 0,零死锁、零语音叠语音。
R1 → R2 逐项修复 · 现场验证结论
F1 ping 迟到 → 修好(两次现场命中,证据最硬)
- R1 复现步骤:搜索等待干等到 gd_ping1 响起(「声呐待命。单击,发脉冲。」),照做单击。
- 局 A D1:gd_ping1 ta=67.63 起播,我 ta≈68.98 单击 → gd_ping1 同刻被掐(vend reason=kill ta=68.982),sonar_ping ta=68.982 同刻起播——R1 的 17.3s 排队迟到消失。
- 局 A D3 同款复验:gd_ping1 304.47 起播 → 单击 → kill 305.887 = sonar_ping 305.887 同刻。
- 局 B 对照(standard 档,乱按停手后 gd_ping1 在播时单击):gd_ping1 175.40 起 → kill 177.08 → ping 178.67(1.6s = 解码延迟,R1 同场景迟到 12.4s 落进 COMMS 句隙)。
- 代价入账:两句 gd_ping1 被判 TRUNCATED——这是设计意图(玩家已照做,提示说完即过时), 与 gd_continue 被推进单击掐半句同类,记入「设计内截断」而非问题。
F2 档位句/签收链不设防 → 修好
- 根因修复(
_isTailSentence改认实际播放链尾,dyn 注入句纳入保护)后: 局 B 对 oxy_ok / oxy_low / oxy_crit_deck 三句档位播报各做「起播即二连 tap」截击—— 三句全部自然播完(truncated=false),单击只换来 beat 轻震(R1:oxy_low 0.71s 被掐)。 - 签收链入口 800ms 死窗:局 A g9_in 完整播出(OK 0.97);局 B 我在 g9_in 起播后 +240ms/+660ms 连点,第一拍被死窗吞掉,第二拍(死窗已过)按 §2.3「自动链单击=跳过本句」 合法跳过(播了 1.0s,R1 同场景是在途 tap 把它剁到 0.28s)。意外截断已堵死, 主动跳过保留——正是修复目标。
F3 回波→静默一拍→解读 → 修好
- 局 A 实测:echo_metal_l 起播 → dv1_metal 起播间隔 3.31s(资产实长 2.76s + 0.55s 静默一拍);echo_groan → dv3_groan 间隔 5.01s(实长 4.42s + 0.59s)。R1 的尾巴压 解读句开头 0.35~0.55s 不再出现,P1 评审要的「定位一拍」还给耳朵了。
F4 双载 +1 格无声扣款 → 修好
- 局 A 双载 D4:dv4_down 之后追加 dv4_dual「两个人下同一潜。这趟往返,扣四格气。」 (OK 0.71)。心算账 12−3−3+3−3−4=2 与耳朵听到的 crit 档(2 格)对齐——无声的扣款没有了。
F5 crit 档错场景措辞 → 修好
- 局 A SURFACE(4)(人已出水):播 oxy_crit_deck「氧气见底,一潜都下不去了。」(OK 0.86), 原句「必须上浮」全程零播出;水下场景原句保留(playtest 断言覆盖:剧本 D 水下状态链 播 oxy_crit、deck 变体零播出)。
F6 跳句承诺名存实亡 → 修好(首播保护 + 复播可即掐,G5 两半都兑现)
- sys_skip 新词局 A/局 B 均播出:「听过的句子再播时,单击就能跳过。」(OK 1.0)。
- 局 A 现场:z1_b 首播单击不跳(完整播完 OK 0.96)→ 菜单开关触发复述重播 → 句中单击 即掐(TRUNCATED 0.77s,设计内截断)→ 链正常推进 z1_knock。首播保护挡住吃尾根因, 复播快放兑现教学承诺。
F7 链末首轮提醒 25s 太晚 → 修好
- 局 A:z1_a 播完(ta=86.93)我走神不说话 → gd_continue ta=99.93 响起,间隔恰 13.0s (R1 为 25s)。走神气口被接住,钩子不再晾 25 秒。
F8 D4 震循环过密 → 修好
- 局 A D4 危机拍 danger 震签名时间列:411.46 / 412.56 / 413.66 / 414.76 / 415.86 / 416.96 ——间隔 1.1s(R1 为 0.5s 约 10 连震),4 秒危机窗内 5 遍,紧迫感在、电钻感消失。
F9 crit 震重复 → 修好(playtest 断言:同档 crit 复听零新增 warning 震;
两局真机侧无任何异常连震投诉场景复现)
F10 状态链缺已救人数 → 修好
- 局 A D2 搜索上滑:状态链 prog_d2 → prog_saved1「已经救上一个人。」(OK 1.0) → oxy 档 → sys_help(G6 新顺序)。被打断后要捡回的第三样局面(船上躺着谁)入耳。
V2 双击重听回波(R1 覆盖缺口)→ 补上
- 局 B D2 搜索双击:echo_metal_l 重播(ta=258.40)→ dv1_metal 解读句重播(ta=261.70) 同序兑现,重听后回搜索等待正常发脉冲。R5 承诺首次真机命中。
传承机制抽查(本轮顺带复验)
- 无进展轨乱按抢救:局 B 96s 乱按(48 次无效左滑)期间 gd_prog1 ta=94.9(60s 整)/ gd_prog2 ta=154.9(120s 整) 准点响起,停手后 gd_ping1 接管——乱按饿不死。
- pendingChoice:局 B 三次提示句播放中预滑(p2/p5/p8 位),播完即生效、零插播。
- 菜单暂停一切链:局 B bai_a 播放中开菜单 → 当句掐停、关闭后原节点重播复述(局面不丢)。
- p9 氧气封锁:局 B oxy=0 左滑取钟 → g9_dry 播出后自动走右,不摆假选项(R1 取消链 路径的封锁句在单载路径同样兑现)。
- 氧气账目:局 B 逐检查点——12−3−1=8(D1 后 ok 档首播)→ 8−3−0=5、supply+3=8(D2 后 未跨档静默不播)→ 8−3−2=3(D3 后 low「只够最后一潜」)→ 氧气门 3=单载 → D4 起播 3−3=0 → 收队 oxy_crit_deck(crit 水面变体)。逐格与 §4.5 公式一致。
问题清单
P0(阻塞/卡死/状态混淆)
无。两局完整到结局(e1/e4 各一),含存档续玩、结算重开、菜单往返、96s 乱按。
P1(体验断裂)
无。R1 的三个 P1(ping 迟到 / 跳句承诺 / 结算截断)全部现场坐实修好,且未修出新断裂。
P2/P3(观察项,全部轻微)
- 设计内截断清单(玩家主动动作所致,非 bug):局 B 的 dv1_down/dv1_metal/dv1_link/ dv4_slide/g9_in/g9_dry/ep_chen_lost/oxy_gain 八处 kill 全部是我自己的抢跑单击/开菜单 所为——auto 链中段可跳是设计原文。其中 dv1_metal(「金属回波=钢板」教学句)与 oxy_gain(补给账目句)首播即可被一跳而过:跳与不跳是玩家自由,但这两句是 §6.3 承诺清单句,建议 v2 评估是否把「承诺句」纳入首播保护(本轮不动,记 backlog)。
- 驱动器仪器注记:局 B 乱按 96s 期间驱动脚本阻塞未轮询事件,停手后批量补课导致 约 3 次「迟到的抢跑单击」落在 dv1_metal/dv1_link 上(放大第 1 条的样本量,非游戏缺陷)。
- 1.7x 下 ASR 相似度整体偏低(局 B MISMATCH 26/82,「氧气还够两潜」→「还够2000」等 数字盲区同 R1)——事件层(truncated 标志)两局全部可信,ASR 层在 1.7x 只做参考。
- NPC 电台滤波句 ASR 可读性与 R1 持平(z1_a 0.72→本局 OK;gao 系 0.45-0.51 区间), 事件层零截断——滤波可懂度仍属人耳复核项(V3 持续开放)。
玩家情绪时间线
- 局 A:续档复述进开场 → D1 等看门狗说话时单击,ping 应声而出(R1 的违和感消失)→ 走神 14s 被 13s 首轮提醒接住 → 菜单复述后一跳即走(跳句终于是真的)→ D2 听状态听到 「已经救上一个人」→ D4 下水前调度明说「这趟扣四格」,账平了 → 滑坡震从电钻变成心跳 → 收队听到「一潜都下不去了」(不再是甲板上的「必须上浮」)→ e1 船钟出水,单击再来一局。
- 局 B:续档直入 → 抢跑发现首播句跳不动(beat 轻震),改用 1.7x 硬灌 → 96s 乱按被 prog 双级捞回 → 双击真的把上一枚回波+解读重放了一遍 → 单载抉择「气只够带一个」 手心出汗 → 连点截击档位句全部失败(句句播完)→ 取钟被 g9_dry 拦下「能带的,你都带 回来了」→ e4 收队,陈医官那句「灯还亮着」收尾。
结论
R1 的 F1-F10 全部现场坐实修复,P0/P1 = 0,两局打到 e1/e4。 剩余全部为设计内行为 与仪器局限。建议 R2 人设复评直接读本轮转写 + 本报告。