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 全项目全绿
20 KiB
《雨夜专案》全拟真试玩报告 — R1 双局(认真新手 + 急性子)
基本信息
- 对象:
web/detective/@ localhost:8001,真头 Chromium + SenseVoice ASR 全拟真(mix.webm/events.jsonl/verdicts.json 落盘在web/harness/live/out/detective-20260913033752(局 A)与detective-20260913041753(局 B))。 - 局 A(认真新手):
voice=male, speed=normal, bgm=normal, guide=full。录音窗 33.1 分钟(含驱动停顿约 5-6 分钟,净玩 ≈27 分钟;同弧转写参照系 20.6 分钟),159 个有效手势,全教学七步跟练 + 六份卷宗全听 + 故意同值指证 1 次 + M1-M4 全坐实 + 结案先错指小顺再正指周先生、凶器动机全对 + 裁决结算 + pack B 短打一处。评级 B(疑点 4/4、两问全对、错指 1、冗余指证 1、保底提示 2 条——驱动停顿引来提示,账目如实降级)。 - 局 B(急性子):
voice=female, speed=1.7, bgm=normal, guide=standard。录音窗 9.5 分钟,开局撞局 A 存档(sys_continue_ask → 单击续玩 pack B 半途:已听 0/6、疑点 1/4),标题乱划、证词板乱按 200s(pair-tap 即起即停+狂滑+菜单三进三出)、菜单五项全巡览+帮助链、照保底提示指证坐实 M4b、结案先乱指老葛再正指小顺、凶器动机故意全错、裁决链中五连乱点、接新案 pack A、播放中长按快进实测、菜单保存回大厅。评级 B(疑点 2/4、两问全错、错指 1)。 - 两局合计 477 个 voice 段:A 局 OK 261 / MISMATCH 9 / TRUNCATED 7(6 条玩家动作可解释,1 条真 bug);B 局 OK 71 / MISMATCH 82 / TRUNCATED 46 / 未判 1(1.7x 下 MISMATCH 与 pair-tap TRUNCATED 多为伪影/玩家动作,见「测量局限」——46 条截断逐条复核全部落在手势 1.2s 窗内)。
- 全程无卡死、无死锁、无语音叠语音、零页面错误(A/B pageerror=0);裁决链锁、菜单、存档续玩、接新案翻包、保存回大厅全部走通。
局 A 叙述(认真新手,male/normal/full)
开场链:t=3.8 我在标题页先试左滑——gd_invalid「这个操作,这里用不上。」+ error 震(full 档无效手势语音纠错,onceKey 本局只此一次 ✓)→ t=6.5 单击开案 sys_new_case → intro_1 播到 t=16.1 被掐(最后 0.85s「川死了」丢了,详见 P1-1)→ intro_2/intro_3/tut_d0 完整。
DRILL 七步:D0 右滑 → 条目报名(paper_turn+sig_shun+「学徒小顺的证词。」)与 D1 指令撞车——tut_listen 只播了 0.4s 就被报名掐死(P1-2)→ 单击听老葛全链(6 句全完整)→ 双击重听末句 → 上滑状态链(st_asked_1→st_doubt_0→recap_go)→ 长按进指证(E2 受理干脆)→ D5 练习选老葛 w1_1 vs 小顺首句 → tut_cf_ok「练习不算数,真矛盾要靠耳朵找」+ success 震 → tut_done → 进板。
自由调查:六份全听(w1 重听整份=「全部听过=整体重听」兑现)。途中三项专测全过:播放中双击=重听当前句(w4 链 wen_2 播到一半双击,当场掐断重播同句,链后续不断);播放中单击停止 + 续听从首个未听句起(scene 链 sc_3 起播 0.45s 时单击停,再单击从 sc_3 重起——被掐句不计入已听 ✓);播放中左右滑静默忽略(fo_2 播中左滑+右滑,条目不变、零 error 震、链照走 ✓)。六份听齐上滑:st_asked_6→st_doubt_0→recap_go「接着查。」——然后就进入了三人设共同撞上的空档(见 P2-1:此刻它只教我「左右滑,换卷宗」)。
指证:先故意挑一对同轴同值(老葛 w1_2 vs 温太太 wen_1 都说雨 21:40 起)→ contra_miss 钝音 + cf_same「这两句说得一致,不矛盾。」(miss 三档第一档首次真机兑现,归因是真话 ✓)。然后 M1-M4 逐条坐实:每条 hit 链 contra_hit→cf_hit「对不上!矛盾成立,记入疑点。」+success 震→周先生 react 递进(记岔→支吾→拒答→想走,我恰好按 M1→M4 顺序所以句句对上——顺序错位即答非所问的隐患见 P1-3);第二份选择前第一份选定句自动重播(P1 记忆契约,5 次全兑现 ✓);M4 落音后 hint_fin「疑点齐了。去结案陈词。」自动接播一次 ✓。
结案:翻到「结案陈词」单击直接掉进三问(无确认闸,P1-5)→ 先错指小顺:确认句「就指认他?」(对他是真话;若我滑到温太太这句就是假话,P1-4)→ acc_shun「我宿在城南刘掌柜家,他全家都能作证!」→ fin_clear「不在场证明成立。证据放人,回到证词板。」(无限再机会 ✓)→ 再进,正指周先生 → 凶器四选项逐个预览(顺序=洗牌)选铜秤砣 → fin_wp_right → 动机选监守自盗 → fin_mv_right → VERDICT:fin_right→rain_swell 渐强→z_break_1..3 认罪三段→gavel 法槌→结算链。链锁实测:z_break_2 播中我补一记在途 tap(t=1773.6)、settle_open 播中一记右滑(t=1786.9)——全部只换来引擎基础震,链纹丝不动走到 settle_hook 落声(R1 转写轮 P1 标注「死窗未注入不判」的缺口,本局补上:吞得干净)。评级 rate_b「案子结了,卷宗上有疏漏。」+ st_doubt_4「疑点,四处,齐了。」+ st_miss_1「指证,错过一两回。」——我的账目(疑点 4、错指 1、冗余 1、保底提示 2)逐条属实,A 档卡线条件 hints≤1 被我驱动停顿引来的第 2 条提示踩破,降级是真的,我认。
SETTLE 单击接新案:sys_new_case → pack 翻转到 B → 短打 M1b(b_shun_1「我走的时候,顺手熄了店堂的灯。」vs wen_2)→ cf_hit + b_shun_react_1「灯?我、我走的时候明明熄了……」(变体 react ✓)→ 收工。
局 B 叙述(急性子,female/1.7x/standard)
开场撞局 A 存档:sys_continue_ask,先两记左滑——standard 档无效手势只有 error 震、无语音(与局 A full 档对照成立 ✓);双击重听 continue_ask ✓ → 单击续玩:复述链 st_asked_0「六份卷宗,一份都没听。」→ st_doubt_1「疑点,一处。」→ recap_go(半途存档复述账目属实 ✓)。
乱按 200s:pair-tap 即起即停(w1_1 被我自己剁了十几次,全在手势窗内,属玩家动作)、狂滑换条目、菜单三进三出——无进展轨三级全开火且全为真:turn_tick(45s 级,ta=64)→ hint_a「探长,还没听的卷宗,先过一遍耳朵。」(ta=108.7,当时我 0/6 未听,真)→ b_hint_c2「试试指证:小顺说铜秤卖了,现场铜秤还在。」(ta=168.7,L3 轮询跳过局 A 已坐实的 m1b,给的是 m4b——真且可指证)。菜单挂起时长被剔除(三次乱逛后提示仍在正确窗口到)。
菜单全项巡览(补 R1 转写「五项只露第一项」缺口):sys_menu → 单击连切 resume/cf/save/help/restart 五项全部起播 ✓ → 上滑帮助链(sys_help+settings_hint)→ 下滑关闭。保存回大厅路径走通(sys_saved→跳大厅)。
照提示指证:长按进指证 → 急性子扫句(预览句听 0.55s 就滑,sc_1/sc_2/sc_3 被我自己掐半截)→ b_shun_3 vs sc_4 定下 → contra_hit + cf_hit + b_shun_react_2「别问了……别问了……」(累计第 2 次坐实取 react_2 ✓)→ 疑点 2/4。
结案乱来:错指老葛 → acc_ge「我守了一夜门!温太太来借热水,她能作证!」→ fin_clear 回板;再进指正主小顺 → 凶器首项不是铜秤砣就直接定(故意答错)→ fin_wp_wrong「不对。铜屑不答应。记下了。」(不重答、记账 ✓)→ 动机同样乱定 → fin_mv_wrong「不对。账上短的东西,才是引线。记下了。」→ VERDICT(变体):fin_right_b → b_shun_break_1..3(「棉袄反穿,弓着背」把老葛访客证词收回 ✓)→ gavel → 结算。链中我连打 tap+右滑+双击+上滑+单击五记——全吞,认罪三段与评级一句不缺。评级 rate_b + st_doubt_2「疑点,两处。」+ st_miss_0「指证,一次没错。」——全账属实。
接新案 pack 翻回 A → 听老葛:播放中长按=引擎 1.7x 快进实测生效(boost on/off 成对,在 1.7 基速上再加速),松手恢复;双击重听当前句、单击停止照常 → 菜单保存回大厅收工。
问题清单
P0(阻塞/卡死)
无。两局完整到结案+接新案;乱按 200s、菜单五进五出、裁决链五连乱点、续玩复述、保存回大厅全部无死锁,零页面错误。
P1(体验断裂:截断/假话/设计承诺不兑现)
-
intro_1(male)实长 8.8s 超 8s 兜底,开场第一句案情被掐尾 0.85s——「沈万川死了」的「川死了」丢了(局 A t=8.16 TRUNCATED,kill 时刻=起播+8.0s,与 SENTENCE_FALLBACK_MS 精确吻合;转写轮不可见,真机才暴露)
- 触发链:
_playSentence的 8s 资产缺失兜底计时器在真实长句上先开火 → 链推进 → 下一句顶掉在播句。同批超标资产(实测 ffprobe):male/sys_help9.28s、male/key/sys_help10.48s、female/key/sys_help9.52s(female/intro_1 7.44s 安全;证词链全部 ≤7.4s 安全——≤8s 设计口径本来就是冲证词负荷定的)。 - 后果:开场叙事第一句缺尾巴;help 被掐则「下滑菜单」四个字可能听不见。修法:兜底 8000→15000(它只该防资产缺失/引擎异常,不该是节奏装置);§4.3 契约同步改 15s;资产侧登记 4 句超标句(不强制重录——内容完整,节奏可容)。
- 触发链:
-
教学 D0→D1 交接互掐:tut_listen「单击,听取当前卷宗」只播 0.4s 就被 D0 的条目报名掐死(局 A t=33.8 TRUNCATED,kill 者=item_w2 报名)
- 机制:D0 处理器先
_navItem()(450ms 后播条目名)再_drillPass()(立即播 tut_listen)——450ms 后条目名把指令句顶掉。mock 转写里靠 8s 兜底「看起来正常」,真机指令直接丢。新手在 D1 面前没有听到「单击」两个字(靠猜也能过,但教学承诺破了)。修法:D0 通过路径串行化——先播完条目名再播 tut_listen(或 D0 不报名、由 D1 回正统一报名)。
- 机制:D0 处理器先
-
真凶 react 按「累计坐实次数」取句,与所坐实的矛盾内容脱钩——换个坐实顺序就是答非所问(人设 P1 建议 1;局 A 我按 M1→M4 顺序恰好逐轴对应「灯→钥匙→秤→逐客」,纯属运气)
- 反例构造:先戳 M3 凶器(「是松木劈柴砸的」被法医铜屑证伪),第 1 次 react 播的却是「灯?……许是我记岔了」——玩家会以为自己指错了对象,「归因真话律」在演绎层面破功。修法:react 改按轴取句(lamp/key/weapon/scale 四轴各配一条),递进由同轴二次坐实或认罪链承担;pack B 同步(b_shun_react_1/2 已是内容弱绑定,可只补映射)。
-
结案确认句埋着性别假话 + 指认选项念卷宗名不念人名(人设 P1 建议 2;两局只验到男性目标,温太太分支是静态实锤)
fin_who_confirm写死「就指认他?单击,定下来。」——真凶问四选一里有温太太,选她即假。修法:改中性「就指认这位?」(零新性别分支成本)。- 真凶问选项复用条目名「学徒小顺的证词。」——指认的是人不是卷宗。修法:新增 4 句纯人名选项(item_who_w1..w4「门卫老葛。」等,旁白双性别 ×4=8 条新语音)。
-
「结案陈词」是循环列表必经站,单击即坠三问、无确认闸(人设 P2 建议 1 + 转写压力线误闯 6-7 次;局 B 实测误入后只能下滑开菜单再双击「返回证词板」自救——代价真实)
- 修法:case 条目单击 → 先播一句结案闸(fin_pre「证据在手,就此结案?单击定,滑走继续查。」)进确认相位,再单击才进 FINISH;滑走=留在板。与全局两段确认范式一致。
P2(不适/慢)
- 「六份听齐、疑点为零」空档:状态链尾只说「接着查」,板级一级提示还教「左右滑,换卷宗」——卷宗全听完了换什么换(局 A t=610-616 亲测撞见;人设 P1/P3/P4 三人同撞)。修法:全部听完且疑点未齐时,recap_go 换指路句(「挑一句你不信的,按住指证」)+ gd_board 此情换词;或该状态下 L3 提前。注:150s 保底 hint_c 本身好用(两局都真),只是来得矜持。
- 指证选句无加速通道:每句全文重播、四条矛盾回回从第一句扫起(局 A 四次指证选句段实测 ≈25-35s/次;人设 P1/P3/P4 同点)。修法:选句预览放行长按快进(语音在播,宪法内;现 CONFRONT 长按=error 震)或给「从上次确认句接着预览」记忆点(cf.lineIdx 按条目记忆)。
- 保底提示附 warning 三连震 [30,50,30,50,30],像训人(人设 P4 建议 3;局 A/B hint 落点实测每次都带)。修法:hint_a/b/c/fin 换轻震(confirm 级),warning 留给真正的危险语义(本作无 danger 态,warning 震实际只在递答案时出现——音色与语义错配)。
- 错指不当场记账:S 与 A 的差距靠玩家自己悟(人设 P2 建议 2;局 A 我错指小顺后直到结算才听到账目)。修法:fin_clear 后补一句「错指一次,记档。」(st_wrong_1..n 不必,单句即可——预算内 1 句 ×2 性别)。
- tut_skip「已跳过教学。左右滑换卷宗,单击听取。」不说「按住=指证」(人设 P2 建议 3;局 B 靠 L3 保底才摸到指证入口的同款路径)。修法:tut_skip 补半句「按住屏幕,指证矛盾。」。
- L2 提示在疑点 4/4 已齐后仍播「逐句比对」而非「去结案」(局 A t=1595 hint_b 实播,当时我四疑点已齐——内容不算假但指引过时)。修法:L2 选句加
doubts==4 → hint_fin分支(hint_fin 全局限 2 次的口径沿用)。
P3(建议/记录)
- 菜单五项两局露全(局 B 巡览实播 resume/cf/save/help/restart + 帮助链 + 保存回大厅)——R1 转写轮 P1 标注的「存档退出入口存在性无法证实」缺口关闭。顺带实测:菜单打开即停播报、关闭回板不丢局面、菜单挂起时长不进无进展轨 ✓。
- NPC 平铺回退每句 4 个 404(局 A 156 次 / 局 B 48 次失败请求:voice/male/z_1.{ogg,m4a,mp3,wav} 全试一遍再落 voice/ 根)——功能零损,纯日志噪音,abyss R1 同款(P3-1 同源)。引擎级,非本作代码。
- FINISH 入口 tap 双震 [20]+[20](引擎基础确认震 + guide.turn haptic 叠加,局 B ta=395.67/428.65 两处)——轻,不碍事;要抠的话 guide.turn 的 haptic 在有引擎基础震时可省。
- 周先生与 male 旁白同 speaker 的已知风险在 male 档实播:intro_w3(旁白嗓)紧贴 z_1(周先生嗓)背靠背(局 A t≈402-405,转写 main t+403.4/405.5 同见)——签名 earcon 只垫条目名前、管不到这条缝。建议:intro_w3 换周先生 NPC 声自报(「我姓周,管了十年的账……」)或其后补半拍静默。人声美感属人耳复核范畴,本条只记结构缝隙。
- 覆盖缺口残留:guide=off 未进 live(playtest 场景已断零 gd_* 零定时器);键盘通道未进 live(playtest 场景 13 已断路由);D5 教学期菜单打断回退路径未实测(playtest 已断)。均已有断言兜底,留真机抽查。
测量局限(本次仪器口径)
- 1.7x 语速下 ASR 大面积 MISMATCH(局 B 82/200 段 vs 局 A 9/277):「法医报告」→「阿一报告」、「新案开卷」→「今按开卷/我请按开卷」、「铜秤砣」→「同秤土」等,短句(≤6 字)+混音背景下的 ASR 伪影(README 已知限制)。源资产直转正确(同 id 在 1.0x 局 OK)。事件层(TRUNCATED/SILENCE)两局全部可信;1.7x 会话的 MISMATCH 只做参考。
- 局 B 46 条 TRUNCATED 逐条复核全部落在手势 1.2s 窗内(pair-tap 即起即停、快进扫句、裁决链乱点)——玩家动作语义内截断,无一条引擎级异常。
- 存档 PUT 不在探针 audio-only fetch 记录内(无 auth token 不发送),服务器侧落盘未验(仪器限制,非问题;localStorage 链路经读档复述间接验证为真)。
做得好的地方(实话实说)
- 裁决链锁两局实弹验过:A 局 z_break_2 播中在途 tap + settle_open 播中右滑;B 局认罪链 tap/右滑/双击三连 + 结算链上滑/单击——链全部完整走到 settle_hook,状态零逃逸、语音零截断(R1 转写轮 P1「死窗未注入不判」缺口关闭)。
- 保底救援两局真开火、全部说真话、照做即中:B 局乱按 200s → 45s turn_tick / 90s hint_a(当时我 0/6 未听,真)/ 150s b_hint_c2(轮询跳过已发现 m1b,给 m4b,真)→ 照它指证当场 cf_hit;A 局驱动停滞期 hint_a 在 fore 未听时开火(真)。「证词板乱按也要被抢救」实测成立。
- 归因真话律 live 全账对得上:cf_same(同说雨 21:40)/ acc_shun / acc_ge / fin_wp_wrong / fin_mv_wrong / 两局 rate_b 的每一分降级(A: hints=2 踩破 A 档线;B: 疑点 2+两问全错)都能在事件流里找到对应事实;st_doubt/st_miss 播报值=运行值。
- 记忆契约与聆听保护全兑现:cf_second 后第一份选定句自动重播(两局 6 次);播放中双击重听当前句、单击停止、续听从首个未听句起(sc_3 断点续 sc_3)、播放中左右滑静默忽略零 error 震——P1 转写轮标注的三条「真机必测」全部通过。
- E2 长按互斥实测成立:7 次长按全部落在空闲期进指证(各带 0.15s 无害 boost 壳);播放中长按=引擎快进(B 局实测 1.7x 基速上再 boost),两语义零冲突。
- 菜单模态完整(五项循环、帮助、保存回大厅跳大厅);续玩复述账目属实;pack 翻转二周目真凶换人(A 局末 b_shun_1 谎句一耳朵是新内容);无效手势 full 档有 gd_invalid 语音、standard 档仅震(分档正确);turn_tick 9 次全在 45s 级窗口;female/male 双声部真机各跑一局零缺失;277+200 段语音无叠音。
玩家情绪时间线
- 局 A:0:06 左滑被「这个操作,这里用不上」温柔纠正,规矩 → 0:16 开场白尾巴被咬掉半拍(「沈万川…」——当时没察觉,复盘才发现丢了「川死了」)→ 0:34 教学指令被报名盖掉,愣了一下但猜着过了 → 2:00 老葛证词听完,「已听一份」入账,感觉在干活 → 4:00 D5 练习「真矛盾要靠耳朵找」被当同行 → 10:00 六份听齐,「接着查」之后有点空,看门狗还在教我换卷宗(出戏) → 11:00 同值指证被「说得一致,不矛盾」诚实挡回,信任+1 → 11-24 四连坐实,每发 contra_hit+支吾递进都爽;第二份自动重播救了我这种记性 → 25:00 错指小顺被不在场证明温柔放回 → 27:00 认罪三段+雨声+法槌,试着戳屏幕发现链锁死,安心听完 → 评级 B(我以为该是 A——复盘才发现两条保底提示记了账,服气)→ 接新案,小顺开口第一句就是新谎,立刻想再戳他一次。
- 局 B:0:06 续玩复述「六份一份都没听,疑点一处」——账目对得上 → 乱按 200s,菜单乱逛三回都没丢局面 → 1:48 被「还没听的卷宗先过一遍耳朵」点了一下(它说的是真的)→ 2:48 直接把矛盾对喂到嘴边,照做就中,爽 → 菜单五项一个个听过去(原来还有「保存并回大厅」)→ 4:30 乱指老葛被「她能作证」顶回来,不扣东西 → 5:00 故意答错两问,「铜屑不答应」「账上短的东西才是引线」——错得明明白白 → 认罪链里乱点五连全被吞,法槌照落 → 又是 B,账目没冤枉我 → 接新案快进扫证词,保存回大厅,一趟地铁结案。
如果只能改 3 件事
- 修两条真机截断:8s 兜底升 15s(intro_1 的「川死了」不能丢)+ D0→D1 交接串行化(tut_listen 的「单击」不能丢)——开场与教学的前 60 秒是全部信任的源头,现在两句都被自己人掐了。
- 让 react 慌在点上 + 指认不说假话:react 按轴取句(先戳凶器就该慌凶器)、fin_who_confirm 改「就指认这位?」、真凶问选项念人名——「归因真话律」是本作的立身之本,这三处是它仅存的裂缝。
- 给「结案陈词」加一道确认闸:循环列表必经站单击即坠三问,每个玩家每局都会误闯——一句「就此结案?单击定,滑走继续查」就解决,与全局两段确认同范式。