Files
xsl 4b39ae2e49 feat(new8/batch3-4): cipher/teahouse/keeper/bridge 全套交付——new8 八款全部可交付收官
四泳道并行全流水线(资产→开发→测试→玩家迭代闭环),双双 R1-R2 连续达标裁定可交付:
- cipher《暗码》223 断言:摩尔斯解码嵌叙事/四结局矩阵/暴露度逐NIGHT验算/三层兜底;R2 三修(链首标记音/预警震/结局计数句+4句补录)4/4 全满分档
- teahouse《深夜茶馆》205 断言:泡茶时机窗/经济逐晚对账/多晚弧线;连续 2 轮 4/4 愿意玩 P0=0
- keeper《守塔人》257 断言:时空签名教学-兑现/插叙触发回返/trust×truth 档位/4结局;R2 F1/F2 坐实(震型豁免/首播跳句锁)4/4
- bridge《星环舰长》336 断言:巡检节奏逐毫秒/危机×系统态矩阵/仲裁7场景/忠诚差分/评级验算;R1 当场修F1-F4、R2 F5 菜单顺延保护 4/4 上行

公共:index.html 四卡片+profiles.js 四桶+check_all_assets 登记(预接线)、00-program 八款进度账收账、
gen_voice_dual 四游戏段、README/HANDOVER 阵容更新(11 款)、voice_text.json 四游戏键、mureka 台账(累计$1.26/$2.00)

验证:四游戏 playtest 223/205/257/336 全绿 + guide 122/122 + 全项目 15 游戏资产终检绿
遗留:keeper 三代人声滤波人耳试听(最高优先,ASR 对滤波句失明)、bridge 音频 32MB 超软指引 2MB(压缩候选)
2026-09-14 05:48:13 +08:00

13 KiB
Raw Permalink Blame History

《守塔人》全拟真试玩报告 — R1 双局(认真新手 + 急性子)

本文件由 producer agent 依据 live 产物(mix.webm 真实混音 / events.jsonl / verdicts.json SenseVoice ASR 判定)撰写。产物:web/harness/live/out/keeper-20260913190507(局 A)/ keeper-<局B ts>(局 B),已复制到 research/new8/keeper/round1/live/。 仪器口径:事件层截断(vend 早于预期自然结束 0.15s+)+ ASR 层相似度(<0.6 MISMATCH); NPC 唱片/电台滤波句 ASR 降级为已知限制(事件层不受影响)。

基本信息

  • 对象:web/keeper/ @ localhost:8001(复用并行泳道静态服务器),真头 Chromium + SenseVoice ASR。
  • 局 A(认真新手):voice=female, speed=normal, bgm=normal, guide=full。约 9 分钟净玩(高效听完即点,真人预计 15-25 分钟),31 个手势(tap 22 / swipeleft 9),全走心线(9 左),结局 e1「灯与归人」,三段插叙全听、尾声回响八句全收。
  • 判定账(局 A):77 个 voice 段,ASR 行 72 OK / 3 MISMATCH(全部 NPC 滤波句:rev_g1「唱针落下」0.45 / c2_back 0.47 / rev_c4 0.59——滤波+混音下 ASR 同音误识,事件层全部自然结束)/ 1 TRUNCATED(gd_brief:驱动开局重复点按跳过,玩家动作非引擎问题)/ 事件层截断 1(同上)。SFX_BGM_ONLY 26 条 = amb 底噪(风暴/炉火/唱片/引擎常驻)占领的间隙探针,正是时空签名在工作,非异常。
  • 全程零 pageerror、零死锁、零语音叠语音。

局 A 叙述(认真新手,female/normal/full)

开场链完整:t=0.1 sys_new_night → gd_brief(操作口令)→ b_open「白角灯塔,风暴夜」→ sys_skip → b_rain「浪拍到第七级台阶。雾角两长一短——塔在,我也在」+ foghorn t=12.9 兑现(承诺音绑定✓) → b_rule「风暴夜,灯不能灭」→ b_goal「两艘货轮过境」。INTRO 链逐句自然结束(事件层零截断)。

C1:c1_tune + radio_tune 调台 → amo_a「……有人吗……顺发号……」→ amo_b + radio_beep 接通 → p1(9.0s 完整听完)左滑接住人 → c1_hold「别慌。我在白角」→ c1_holdo「……好,好。你在。我听见了」 (首个正反馈:阿澈声音稳住,2.5 分钟处)→ c1_holde → amo_c「我爷爷,四十年前……白角的灯灭过一下」 → p2 左翻暗格 → c1_open + hatch_open(106.9) → rev_teach 教学(113.5) → memory_in(119.9) + bgm/memory 淡入 → 插叙1(rev_g1 锚入「唱针落下。四十年前」→ rev_g2 祖父唱片声 → rev_g3 → rev_g4 锚出)→ memory_out(141.8) + bgm/storm 回 → c1_diary「缺了最后一页」。 时空签名四要素全兑现:唱针落下/风声退后(vinyl 床)/风声回来(storm 回)/锚句在位。

CALM(1):foghorn(145.9) + lull_1「风加到十级」+ tr_half 跨档播报(149.7,trust=1 thin→half ✓) → 自动进 C2。C2:c2_back + radio_tune → amo_d「水到膝盖了」→ p3 左口诀 → c2_song/o → 插叙2(rev_f1..f5,父亲唱片声,rev_f4「上满发条能自己转一夜」=p7 知识承诺)→ c2_key「尾盖里卷着一页纸」 → amo_e → p4 左真话 → c4_true「我父亲也是守塔人……没有回来」→ c4_trueo → 危机拍1: hull_crack(256.4) 起播 + danger 签名/震同窗,c2_crack 语音 t=258.4 = 精确 2.0s 前置 ✓ → amo_f「裂了!」→ p5 左堵漏 → c5_patch/o → CALM(2):foghorn(292.2) + lull_2 + tr_deep 跨档 (297.2,half→deep ✓)。

C3:c3_eye「风眼过了」→ c3_page + flash_click(307.0) → p6 左读完 → 插叙3(rev_c1..c5,祖父忏悔 「半个时辰,回澜号,七个人」)→ c6_reade「四十年,两代人,一条规矩。今晚,轮到你选了」→ p7 左(9.3s 全表最长提示句完整听完)→ c7_go + lamp_mech(381.6) 满发条兑现 → 危机拍2: wave_wall(389.0) + danger,c3_wall 语音 391.0 = 2.0s 前置 ✓ → p8_boat 左循渔歌 → c8_songo 「海风那个吹呀——塔!是你吗?」→ c9_return「两个人,一身水,一盏灯」→(rev2 → 无 c3_dark ✓) → 签收 g9_in「风,一层一层退下去」→ g9_knot → p9a 全真相版(439.1) → 左说出 → d9_tell_a 「四十年前守塔的,是我爷爷……回澜号……对不住」(11.6s 完整) → amo_g「我爷爷,就在那七个人里」 (amo_c 伏笔回环闭合)→ d9_telle「天,亮了」→ ENDING(e1):e1_a「他在门厅睡熟,那页纸攥在手里」 → e1_b「回澜号的账,翻开了第一页」→ ep_lead → ep_amo_home / ep_lamp_full「父亲的发条,说中了」/ ep_log_told「旧账见了光」/ ep_dad「老陈,收工了」/ ep_shore + foghorn(529.0) 第四处兑现 ✓。

教学承诺六条全兑现且可被仪器验证:rev_teach 恰一次 ✓ / foghorn 恰四处 ✓ / rev_f4→c7_go ✓ / b_goal→ep_shore「航道平安」✓(c3_dark 本局不播,差分正确)/ prog_m 三幕时位句上滑可验 / 灯三态按 p7×rev2 选播 ✓。尾声逐项点名:阿澈/灯/日志/父亲班次,P2 回响感拉满。

问题清单(局 A)

P0(阻塞/卡死):无。

P1(体验断裂)

  1. gd_brief 被截(t=2.8,事件层截断):根因为驱动开局重复点按(人工解锁 tap 后驱动 又发解锁 tap),第二 tap 落在 gd_brief 播放中触发跳句——玩家动作语义内,非引擎/游戏缺陷。 对照:同链 b_open/sys_skip/b_rain/b_rule 全部自然结束。修复 = 驱动只发一次解锁 tap (局 B 已如此),游戏侧无需动作。但暴露一个真实体验点:开场链播放中点按=跳句, 新手在 gd_brief 口令播放中点屏会错过操作教学——radio 同款行为(宪法内), 由 sys_skip「想跳过这句,单击就行」补偿,维持。
  2. NPC 滤波句 ASR 三处 MISMATCH(rev_g1/c2_back/rev_c4):事件层全部自然结束、 源资产直转正确,属 README 已知限制(滤波+混音下 ASR 同音误识)。 人耳待验项:祖父/父亲的唱片滤波可读性(「宁窄勿脏」档位 250-2800Hz), 若人耳复核不可读则回退未滤波原声(staging 保留)。

P2(观察项)

  1. SFX_BGM_ONLY 间隙探针 26 条全部有能量 = amb 四床(storm/room/vinyl/engine)常驻正确, 「等待期永不静默」由底噪承载;这与 radio(无 amb 床)的仪器口径不同,非异常。
  2. p9a 提示句 12.7s 全表最长,听完再选的节奏被 p* 不可跳门保护(实测播放中 tap 只 beat 不跳)。

做得好的(实话实说)

  • 时空签名仪器级兑现:memory_in/out 三对精确成对(119.9/141.8、194.4/220.8、324.9/358.5); 每次插叙 bgm/memory 淡入、回返 storm 淡回;foghorn 恰四处;两危机拍 sfx 前置 2.0s 与 danger 签名/震同窗(256.4→258.4、389.0→391.0)。
  • 账目真实:tr_half@trust=1 / tr_deep@trust=4 跨档恰播;p9a/d9_tell_a 按 truth=3 选播; e1 尾声差分互斥全对(ep_lamp_full 而非 dark、ep_log_told 而非 kept)。
  • 77 段语音零叠音、零 pageerror;抉择提示句全部完整播出后才可答(盲玩公平契约实测成立)。

玩家情绪时间线(局 A)

0:00 新的风暴夜 → 0:03 操作口令 → 0:13 雾角第一声(塔在,我也在,安心)→ 0:52 第一句求救 「顺发号……船进水了」心提起来 → 1:10 接住人,他的喘匀了(第一个正反馈)→ 1:40「我爷爷四十年前 在这片海没的」伏笔起 → 2:00 唱针落下!底噪变了, teaching 说「这是回忆」→ 2:20 祖父的声音 (唱片质感,比岸台远、比阿澈老)→ 2:22 风声回来,缺页悬念 → 2:30 幕间雾角+「风加到十级」→ 3:00 父亲的口诀→插叙2→「尾盖里卷着一页纸」→ 4:15 真话出口,他沉默然后说「难怪今晚你一直都在」 → 4:20 危机拍1:船板裂了!danger 震+2s 前置把心提到嗓子 → 5:00 幕二到顶,tr_deep「他把命交给 你的声音」→ 5:30 祖父忏悔「回澜号,七个人」全场最重 → 6:10 p7 宿命抉择:上满发条,出海 → 6:30 浪墙!→ 6:35 循渔歌找人「海风那个吹呀」→ 7:15 接驳艇回来 → 7:20 p9a 全真相说出 「对不住」→ 7:40 amo_g「我爷爷就在那七个人里」两条家族线缝上 → 7:50 e1 他在门厅睡熟 → 8:00 尾声逐一点名,foghorn 最后一声——这一夜,接住了。

如果只能改 3 件事

  1. 人耳复核 NPC 唱片/电台滤波(ASR 无法判定的唯一盲区):祖父 250-2600Hz / 父亲 300-2800 / 阿澈 350-3200,确认「宁窄勿脏」档位可读,不可读句回退 staging 原声。
  2. 开场口令播放中点按=跳句的误触成本:gd_brief 是操作教学,被跳后只能靠 sys_skip 补偿—— 考虑 gd_brief 首播纳入不可跳门(PROMPT_RE 扩展 or 专属锁),或维持现状登记为已知行为。
  3. 9 分钟高效通关 vs 设计 21-24 分钟:高效听者(全跳等待、即点即走)压缩到 9 分钟属正常, 但序幕 INTRO→C1 节奏可再密(首输入 30s 达标 ✓);真人带犹豫/重听会在 15-25 分钟区间,达标。

(局 B 叙述与综合问题清单见下节追加。)

局 B 叙述(急性子,female/normal/standard,30.1 分钟 619 手势)

玩法账:开局乱按试探(无效手势=error 震,standard 档无语音,符合分档语义)→ 菜单 十二进十二出(sys_menu ×12,每次单击轮播三项,帮助链 sys_help+sys_settings 实测)→ p1 被连点跳过 3 次后听完第 4 次才作答(p 不可跳门实测成立*:播放中 tap 只换来 beat 轻震,提示句照播完)→ 幕一 p2 翻暗格 → 插叙1 在乱按中完整走通:memory_in → rev_teach(全局一次)→ 祖父链 → memory_out → c1_diary,期间两次乱滑只触发 beat 不破坏链。 上滑乱试触发状态链 prog_m1→tr_thin→tru_zero→sys_help(standard 档无语音、earcon+ 震在,tr_thin 状态如实=0)。幕二 p3/p4/p5 全程有跳句有重听,危机拍1 在乱按中准点: hull_crack 起播 + danger 震同窗,c2_crack 2.0s 前置一句不缺。幕三 p6 读完 → 插叙3 → p7 听完(9.3s 全表最长句被 mash 两次才听完)→ c7_go 满发条 → 危机拍2 wave_wall 准点 → p8 → p9a(truth=3 全真相版——乱按居然也凑齐了 truth=3,因为抉择答案随机但 插叙触发与 Mash 无关,全左路蒙中)。

结局链第一次被乱按剁碎(e1_a 4.3s TRUNC / e1_b 1.4s TRUNC / ep_lead 5.0s TRUNC—— 三句都被播放中 tap 跳过,这是玩家动作语义内);随后重听/复述给出干净 e1_a 7.1s OK, 结局链完整走完 → 结算态单击 → sys_new_night 第二夜自动开(新风暴夜 1477.1s 实测)→ 第二夜打到 p2(1750s)时 30 分钟时间盒到点收工。

零 pageerror、零死锁、零语音叠语音、零大厅逃逸(驱动带逃逸检测,本局未触发)。 444 个 keeper voice 段:285 OK / 78 MISMATCH(多为 1-3s 被 skip 残句+滤波句,ASR 层 伪影为主)/ 77 TRUNCATED(几乎全部落在手势 1.2s 窗内的玩家跳句,事件层语义内)/ 162 SFX_BGM_ONLY(amb 四床常驻)。乱按 30 分钟没被游戏罚过一次:无倒计时无死亡, 菜单乱逛不丢局面,错滑有被教(gd_invalid idle-only),看完门狗双轨在 standard 档以 earcon+震形态工作。

问题清单(局 B 追加)

  • P0:无(30 分钟 619 手势暴力测试零死锁零页面错误,结局达成+新夜自动接续)。
  • P1:无新增。MISMATCH 78 条逐类归因:玩家跳句残句(主因)+ NPC 滤波句 ASR 盲区 (同局 A)——非引擎级异常。
  • P2:结局链在乱按下会被逐句跳过(e1_a/e1_b/ep_lead 三次 TRUNC 实锤)——结算链只 有 800ms 死窗,窗后播放中单击=跳句是宪法赋予的自由;但「结局主句被剁」对急性子 玩家的回放体验打了折(他后来靠重听补回来了)。与 radio/abyss 同款行为,登记观察 不动作——若要抠,可考虑结局链整链纳入「复播可即掐但首播逐句保护」,属新增强, 超 R2 预算。

两局合计裁决输入

项 局 A(认真新手) 局 B(急性子)
时长/手势 8.9 min / 31 30.1 min / 619
结局 e1 灯与归人(完整弧线) e1(乱按下达成)+ 第二夜启动
ASR 72 OK / 3 MISMATCH / 1 TRUNC(驱动) 285 OK / 78 MISMATCH / 77 TRUNC(玩家跳句)
事件层截断 1(驱动误触) 79(玩家动作窗内)
pageerror 0 0
教学承诺 六条全兑现(仪器验证) 危机拍/插叙/雾角在乱按中准点

两局无 P0 级状态混淆:不知道自己在哪(时位句三层兜底全程可查)、不知道该做什么 (双轨看门狗+两级复述)、为何失败(零失败叙事,归因真话律无负面体验)。