Files
SoundGame/research/new8/keeper/round1/live-player.md
T
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

159 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 《守塔人》全拟真试玩报告 — 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 级状态混淆**:不知道自己在哪(时位句三层兜底全程可查)、不知道该做什么
(双轨看门狗+两级复述)、为何失败(零失败叙事,归因真话律无负面体验)。