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 全项目全绿
132 lines
9.8 KiB
Markdown
132 lines
9.8 KiB
Markdown
# 《深海回音》全拟真试玩报告 — 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(观察项,全部轻微)
|
||
1. **设计内截断清单**(玩家主动动作所致,非 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)。
|
||
2. **驱动器仪器注记**:局 B 乱按 96s 期间驱动脚本阻塞未轮询事件,停手后批量补课导致
|
||
约 3 次「迟到的抢跑单击」落在 dv1_metal/dv1_link 上(放大第 1 条的样本量,非游戏缺陷)。
|
||
3. 1.7x 下 ASR 相似度整体偏低(局 B MISMATCH 26/82,「氧气还够两潜」→「还够2000」等
|
||
数字盲区同 R1)——事件层(truncated 标志)两局全部可信,ASR 层在 1.7x 只做参考。
|
||
4. 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 人设复评直接读本轮转写 + 本报告。
|