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(压缩候选)
This commit is contained in:
xsl
2026-09-14 05:48:13 +08:00
parent c8843233b0
commit 4b39ae2e49
2676 changed files with 62789 additions and 1282 deletions
@@ -0,0 +1,72 @@
{"ev":"probe_ready","t":7.9000000059604645,"ta":null}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":4011.0999999940395,"ta":-0.079}
{"ev":"recstart","mime":"audio/webm;codecs=opus","t":4089.9000000059605,"ta":0}
{"ev":"fetch","url":"audio/bgm/storm.ogg","status":200,"ok":true,"ms":14,"t":4104.5999999940395,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/foghorn.ogg","status":200,"ok":true,"ms":14,"t":4104.9000000059605,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/radio_tune.ogg","status":200,"ok":true,"ms":14,"t":4104.9000000059605,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/static_burst.ogg","status":200,"ok":true,"ms":14,"t":4104.9000000059605,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/radio_beep.ogg","status":200,"ok":true,"ms":14,"t":4105,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/hatch_open.ogg","status":200,"ok":true,"ms":14,"t":4105.0999999940395,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/flash_click.ogg","status":200,"ok":true,"ms":14,"t":4105.0999999940395,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/lamp_mech.ogg","status":200,"ok":true,"ms":14,"t":4105.200000017881,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/hull_crack.ogg","status":200,"ok":true,"ms":14,"t":4105.200000017881,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/wave_wall.ogg","status":200,"ok":true,"ms":14,"t":4105.200000017881,"ta":0.015}
{"ev":"fetch","url":"audio/sfx/memory_in.ogg","status":200,"ok":true,"ms":18,"t":4109.0999999940395,"ta":0.019}
{"ev":"fetch","url":"audio/sfx/memory_out.ogg","status":200,"ok":true,"ms":20,"t":4110.700000017881,"ta":0.021}
{"ev":"fetch","url":"audio/sfx/ui_confirm.ogg","status":200,"ok":true,"ms":20,"t":4111.300000011921,"ta":0.021}
{"ev":"fetch","url":"audio/sfx/ui_menu.ogg","status":200,"ok":true,"ms":21,"t":4111.9000000059605,"ta":0.022}
{"ev":"fetch","url":"audio/sfx/amb_storm.ogg","status":200,"ok":true,"ms":20,"t":4113.0999999940395,"ta":0.023}
{"ev":"fetch","url":"audio/sfx/amb_room.ogg","status":200,"ok":true,"ms":21,"t":4114.300000011921,"ta":0.024}
{"ev":"fetch","url":"audio/voice/female/sys_new_night.ogg","status":200,"ok":true,"ms":21,"t":4114.800000011921,"ta":0.025}
{"ev":"vstart","url":"audio/voice/female/sys_new_night.ogg","t":4149.5,"dur":2.48,"ta":0.06}
{"ev":"start","t":4157.200000017881,"sid":1,"url":"audio/sfx/amb_room.ogg","layer":"sfx","dur":8,"rate":1,"loop":true,"when":0,"ta":0.067}
{"ev":"start","t":4160.4000000059605,"sid":2,"url":"audio/sfx/amb_storm.ogg","layer":"sfx","dur":10,"rate":1,"loop":true,"when":0,"ta":0.071}
{"ev":"start","t":4279.200000017881,"sid":3,"url":"audio/bgm/storm.ogg","layer":"bgm","dur":90,"rate":1,"loop":true,"when":0,"ta":0.189}
{"ev":"vend","url":"audio/voice/female/sys_new_night.ogg","t":6857.5,"reason":"kill","ta":2.768}
{"ev":"fetch","url":"audio/voice/female/gd_brief.ogg","status":200,"ok":true,"ms":3,"t":6860.4000000059605,"ta":2.771}
{"ev":"vstart","url":"audio/voice/female/gd_brief.ogg","t":6865.800000011921,"dur":4.88,"ta":2.776}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":6916.9000000059605,"ta":2.827}
{"ev":"vibrate","pattern":"[20]","t":7280.700000017881,"ta":3.191}
{"ev":"vibrate","pattern":"[8]","t":7281,"ta":3.191}
{"ev":"vend","url":"audio/voice/female/gd_brief.ogg","t":11802.40000000596,"reason":"kill","ta":7.713}
{"ev":"fetch","url":"audio/voice/female/b_open.ogg","status":200,"ok":true,"ms":3,"t":11805,"ta":7.715}
{"ev":"vstart","url":"audio/voice/female/b_open.ogg","t":11809.40000000596,"dur":3.84,"ta":7.72}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":12214.59999999404,"ta":8.125}
{"ev":"vibrate","pattern":"[20]","t":12580.40000000596,"ta":8.491}
{"ev":"vend","url":"audio/voice/female/b_open.ogg","t":12580.700000017881,"reason":"kill","ta":8.491}
{"ev":"fetch","url":"audio/voice/female/sys_skip.ogg","status":200,"ok":true,"ms":3,"t":12583.40000000596,"ta":8.494}
{"ev":"vstart","url":"audio/voice/female/sys_skip.ogg","t":12587.59999999404,"dur":2.8,"ta":8.498}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":13288.5,"ta":9.199}
{"ev":"vibrate","pattern":"[20]","t":13651.90000000596,"ta":9.562}
{"ev":"vend","url":"audio/voice/female/sys_skip.ogg","t":13652,"reason":"kill","ta":9.562}
{"ev":"start","t":13652.700000017881,"sid":4,"url":"audio/sfx/foghorn.ogg","layer":"sfx","dur":4,"rate":1,"loop":false,"when":0,"ta":9.563}
{"ev":"fetch","url":"audio/voice/female/b_rain.ogg","status":200,"ok":true,"ms":3,"t":13655.300000011921,"ta":9.565}
{"ev":"vstart","url":"audio/voice/female/b_rain.ogg","t":13660.700000017881,"dur":5.6,"ta":9.571}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":14360.5,"ta":10.271}
{"ev":"vibrate","pattern":"[20]","t":14723.800000011921,"ta":10.634}
{"ev":"vend","url":"audio/voice/female/b_rain.ogg","t":14723.800000011921,"reason":"kill","ta":10.634}
{"ev":"fetch","url":"audio/voice/female/b_rule.ogg","status":200,"ok":true,"ms":3,"t":14726.5,"ta":10.637}
{"ev":"vstart","url":"audio/voice/female/b_rule.ogg","t":14731.300000011921,"dur":5.28,"ta":10.641}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":15433.200000017881,"ta":11.343}
{"ev":"vibrate","pattern":"[20]","t":15796.59999999404,"ta":11.707}
{"ev":"vend","url":"audio/voice/female/b_rule.ogg","t":15796.59999999404,"reason":"kill","ta":11.707}
{"ev":"fetch","url":"audio/voice/female/b_goal.ogg","status":200,"ok":true,"ms":2,"t":15799.09999999404,"ta":11.709}
{"ev":"vstart","url":"audio/voice/female/b_goal.ogg","t":15803.700000017881,"dur":5.28,"ta":11.714}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":16505.30000001192,"ta":12.415}
{"ev":"vibrate","pattern":"[20]","t":16868.5,"ta":12.779}
{"ev":"vibrate","pattern":"[8]","t":16868.59999999404,"ta":12.779}
{"ev":"vend","url":"audio/voice/female/b_goal.ogg","t":21020,"reason":"kill","ta":16.93}
{"ev":"start","t":21020.5,"sid":5,"url":"audio/sfx/radio_tune.ogg","layer":"sfx","dur":3,"rate":1,"loop":false,"when":0,"ta":16.931}
{"ev":"fetch","url":"audio/sfx/amb_engine.ogg","status":200,"ok":true,"ms":3,"t":21023,"ta":16.933}
{"ev":"fetch","url":"audio/voice/female/c1_tune.ogg","status":200,"ok":true,"ms":3,"t":21023.70000001788,"ta":16.934}
{"ev":"vstart","url":"audio/voice/female/c1_tune.ogg","t":21029.90000000596,"dur":4.64,"ta":16.94}
{"ev":"start","t":21031.59999999404,"sid":6,"url":"audio/sfx/amb_engine.ogg","layer":"sfx","dur":4,"rate":1,"loop":true,"when":0,"ta":16.942}
{"ev":"gesture","type":"tap","x":195,"y":422,"t":21194.09999999404,"ta":17.104}
{"ev":"vibrate","pattern":"[20]","t":21557.90000000596,"ta":17.468}
{"ev":"vend","url":"audio/voice/female/c1_tune.ogg","t":21558,"reason":"kill","ta":17.468}
{"ev":"gesture","type":"swipeup","x":195,"y":422,"t":23867,"ta":19.777}
{"ev":"vibrate","pattern":"[10]","t":24218,"ta":20.128}
{"ev":"vibrate","pattern":"[20]","t":24218.5,"ta":20.129}
{"ev":"fetch","url":"audio/voice/female/prog_m1.ogg","status":200,"ok":true,"ms":2,"t":24220.90000000596,"ta":20.131}
{"ev":"vstart","url":"audio/voice/female/prog_m1.ogg","t":24225,"dur":3.04,"ta":20.135}
{"ev":"recstop","t":25027.20000001788,"ta":20.937}
Binary file not shown.
@@ -0,0 +1,46 @@
# keeper 实时会话 transcript
- `[ -0.08s]` **GESTURE** tap @(195,422)
- `[ 0.00s]` REC 开始 (audio/webm;codecs=opus)
- `[ 0.06s]` VOICE ▶ sys_new_night (dur 2.48s)
- `[ 0.07s]` SFX ♪ amb_room (loop)
- `[ 0.07s]` SFX ♪ amb_storm (loop)
- `[ 0.19s]` BGM ♪ storm (loop)
- `[ 2.77s]` VOICE ■ sys_new_night (kill)
- `[ 2.78s]` VOICE ▶ gd_brief (dur 4.88s)
- `[ 2.83s]` **GESTURE** tap @(195,422)
- `[ 3.19s]` VIBRATE [20]
- `[ 3.19s]` VIBRATE [8]
- `[ 7.71s]` VOICE ■ gd_brief (kill)
- `[ 7.72s]` VOICE ▶ b_open (dur 3.84s)
- `[ 8.13s]` **GESTURE** tap @(195,422)
- `[ 8.49s]` VIBRATE [20]
- `[ 8.49s]` VOICE ■ b_open (kill)
- `[ 8.50s]` VOICE ▶ sys_skip (dur 2.8s)
- `[ 9.20s]` **GESTURE** tap @(195,422)
- `[ 9.56s]` VIBRATE [20]
- `[ 9.56s]` VOICE ■ sys_skip (kill)
- `[ 9.56s]` SFX ♪ foghorn
- `[ 9.57s]` VOICE ▶ b_rain (dur 5.6s)
- `[ 10.27s]` **GESTURE** tap @(195,422)
- `[ 10.63s]` VIBRATE [20]
- `[ 10.63s]` VOICE ■ b_rain (kill)
- `[ 10.64s]` VOICE ▶ b_rule (dur 5.28s)
- `[ 11.34s]` **GESTURE** tap @(195,422)
- `[ 11.71s]` VIBRATE [20]
- `[ 11.71s]` VOICE ■ b_rule (kill)
- `[ 11.71s]` VOICE ▶ b_goal (dur 5.28s)
- `[ 12.41s]` **GESTURE** tap @(195,422)
- `[ 12.78s]` VIBRATE [20]
- `[ 12.78s]` VIBRATE [8]
- `[ 16.93s]` VOICE ■ b_goal (kill)
- `[ 16.93s]` SFX ♪ radio_tune
- `[ 16.94s]` VOICE ▶ c1_tune (dur 4.64s)
- `[ 16.94s]` SFX ♪ amb_engine (loop)
- `[ 17.10s]` **GESTURE** tap @(195,422)
- `[ 17.47s]` VIBRATE [20]
- `[ 17.47s]` VOICE ■ c1_tune (kill)
- `[ 19.78s]` **GESTURE** swipeup @(195,422)
- `[ 20.13s]` VIBRATE [10]
- `[ 20.13s]` VIBRATE [20]
- `[ 20.14s]` VOICE ▶ prog_m1 (dur 3.04s)
@@ -0,0 +1,130 @@
{
"game": "keeper",
"settings": {
"voice": "female",
"guide": "full",
"speed": 1,
"bgm": 1
},
"outdir": "/home/xsl/AutoVideo/SoundGame/web/harness/live/out/keeper-20260913214250",
"segs": [
{
"idx": 0,
"voiceId": "sys_new_night",
"t0": 0.06,
"t1": 2.768,
"dur": 2.48,
"expEnd": 2.54,
"truncated": false,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 1,
"voiceId": "gd_brief",
"t0": 2.776,
"t1": 7.713,
"dur": 4.88,
"expEnd": 7.656,
"truncated": false,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 2,
"voiceId": "b_open",
"t0": 7.72,
"t1": 8.491,
"dur": 3.84,
"expEnd": 11.56,
"truncated": true,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 3,
"voiceId": "sys_skip",
"t0": 8.498,
"t1": 9.562,
"dur": 2.8,
"expEnd": 11.298,
"truncated": true,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 4,
"voiceId": "b_rain",
"t0": 9.571,
"t1": 10.634,
"dur": 5.6,
"expEnd": 15.171,
"truncated": true,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 5,
"voiceId": "b_rule",
"t0": 10.641,
"t1": 11.707,
"dur": 5.28,
"expEnd": 15.921,
"truncated": true,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 6,
"voiceId": "b_goal",
"t0": 11.714,
"t1": 16.93,
"dur": 5.28,
"expEnd": 16.994,
"truncated": false,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 7,
"voiceId": "c1_tune",
"t0": 16.94,
"t1": 17.468,
"dur": 4.64,
"expEnd": 21.58,
"truncated": true,
"reason": "kill",
"verdict": null,
"heard": null,
"similarity": null
},
{
"idx": 8,
"voiceId": "prog_m1",
"t0": 20.135,
"t1": 20.135,
"dur": 3.04,
"expEnd": 23.175,
"truncated": true,
"reason": "session-end",
"verdict": null,
"heard": null,
"similarity": null
}
],
"rows": []
}