Files
SoundGame/docs/design/01-escape-redesign.md
T
xsl 963dfa1cc8 fix(escape): 暗室状态引导方案落地(25号策划文档 B1-B8 → F1-F9 实施)
策划轮:25-escape-map-flow.md as-built地图/玩家流程/信息账本+盲区清单(S1-S7)+方案B1-B8
实施(玩法零改动,只加状态引导层):
- F1 撞墙方位句「左边是墙」(wall_dir_*×4,同向10s限频)
- F2 目标句并入方位「铁柜,在右面的房间」(gd_*_dir×3)
- F3 无进展150s活跃计时器+gd_prog_1..3进度重述(只重述不泄题,专治活跃迷路玩家——修卡关计时从「无进展」退化为「无操作」的既定偏差)
- F4 双击兜底直通L2降级L1(不再白送答案)
- F5 空房首访描述(4空房可区分)
- F7 busy窗口手势缓存补判(原静默吞手势)
- F8 结算链单击守卫(time_band/again完整到达)
- F9 跳过引导补播目标句
- F6 空房方位特征句按25号裁定留档后续轮
新增语音10句×2性别(flock串行QC无离群,ASR逐字正确)
验证:escape playtest 235/235(+85新断言)+ guide 132/132 + 终检全绿 + 14游戏回归零回退
live复跑10.4分钟通关:零截断,S1-S7盲区逐条核销
档案 research/escape-state/round1-2;01号文档追加修订记录R1
2026-09-15 00:37:41 +08:00

12 KiB
Raw Blame History

01 · 《暗室》重设计(escape redesign)

给开发者的实现要点摘要

  1. 保留 3x3 网格与谜题链骨架(钥匙→铁柜→保险丝→电箱→大门),重写开场:前 ~2 分钟为引导式脚本(带玩家走到储物间、教会移动/检查/双击使用),之后进入自由探索。
  2. 新增卡关检测 + 三级提示:以上一次"进展事件"起算,60s 无进展给暗示、120s 给明示、180s 给带路级提示;提示由计时器自动播出,不依赖玩家发现隐藏手势。
  3. 环境线索音可重听:单击检查总是先重播当前房间环境音再播描述;9 个房间环境音去重(关键房间专属线索音)。
  4. 操作反馈全部改震动(确认/撞墙/拾取/错误),iOS 静默降级;删除数字拼接播报,用时改为分段整句。
  5. 手势映射(偏离全局默认,教学中讲清):四向滑=移动,单击=检查/重听,双击=使用物品/背包与目标,引导阶段下滑=跳过引导。

1. 现版诊断:"第一个房间都出不去"断在哪

读 web/escape/game.js 现版流程,新手断点有四:

  1. 教学是两段可跳过的长旁白,零交互(voice/intro → voice/tutorial,game.js:56-87)。玩家听完(或单击跳过)后被直接丢进 PLAY,没有任何一次"做对了一件事"的体验确认。移动、检查、使用物品三个核心动作都没有被验证过玩家真的会了。
  2. 进入自由探索后没有任何方向感支撑。起点 (1,1) 播一句 voice/start_room,玩家不知道房间有 9 个、不知道自己在哪、不知道目标在西南角。环境音只有 3 种(hum/wind/drip)铺给 9 个房间(_playAmbient, game.js:134-145),相邻房间声音雷同,靠环境音导航不成立。
  3. 环境线索音只播一次。进房间播一遍就没了,没听清就永远错过;voice/wall 撞墙提示也只播一次(wallVoicePlayed)。
  4. 提示系统存在但不可达。hint_* 四级提示语音已生成,但唯一入口是"双击且无可用目标"的兜底(game.js:195-198)——玩家根本不知道双击这个手势存在,更不知道要在"错误的地方"双击才能听到提示。卡关玩家恰恰是不会操作的人,提示入口藏在操作里,死循环。

2. 新开场:引导式脚本(GUIDE 阶段)

目标:前 2 分钟是"手把手",玩家每做一个动作都得到确认,引导结束时已天然完成谜题链第一环(拿到钥匙)。

2.1 流程

阶段 GUIDE(脚本化,步骤由玩家手势推进,不是定时旁白):

步 旁白(整句,功能) 等待的玩家动作 反馈
G0 剧情引入(2 句以内,比现版 intro 短):醒来、漆黑、要逃出去 单击继续 CONFIRM 震动
G1 "先活动一下。试着朝任意方向滑一下,走一小步。" 任意滑动 脚步声 + SWIPE_OK 震动 + "很好,你迈出了第一步。"
G2 "这个房间不大,边界是墙。再滑两下,试着碰碰墙。" 滑动 2 次(其中撞墙也计数) 撞墙:wall 闷响 + ERROR 震动 + "那边是墙,换个方向。"(每次撞墙都播,取消 wallVoicePlayed 一次性限制);未撞墙:脚步 + SWIPE_OK
G3 "跟着我指的路走。向左滑。" 左滑(做错给纠正语音重等) 脚步 + "对。再向下滑。"
G4 "再向下滑。" 下滑 脚步 + 到达储物间,播储物间专属环境音
G5 "听到水声和铁锈味了吗?单击一下,仔细检查这个房间。" 单击 pickup 音 + PICKUP 震动 + "你摸到了一把钥匙!"(谜题链第一环完成)
G6 "钥匙应该能开什么。双击是把物品用出去的用法。现在先记住:双击。" 双击 兜底播报背包 + CONFIRM 震动 + "对,就是这样。接下来靠你自己了。"
G7 目标陈述:"找到能用这把钥匙打开的东西。需要帮助时,在原地双击。" — 进入 PLAY
  • 引导期间任何步骤可下滑跳过(播"跳过引导"确认后直达 PLAY);跳过标志存 localStorage/进度,第二次进游戏开场直接问"上滑重听引导,单击直接开始"。
  • 引导期间做错手势:不惩罚,播一句短纠正("不是这个方向,向左滑")继续等待;同一个步骤错 3 次给 WARNING 震动 + 更直白的重述。
  • 引导脚本写死路线 (1,1)→(0,1)? 不,(1,1)→左=(0,1),再下滑=(0,2) 储物间。路线合法(现版图 (0,1) 是空房·风)。引导期间超出脚本路线的滑动被温和拦回("先跟我走")。

2.2 教学覆盖核对

引导结束时玩家已亲手做过:滑动移动(含撞墙)、单击检查、拾取、双击使用/查看。全部六个手势里只剩"上滑"未用——escape 不用上滑(豁免,见 00 文档 §5.2),无需教。

3. 卡关检测与三级提示

3.1 进展事件

以下任一发生即重置卡关计时器 lastProgressAt:拾取钥匙、打开铁柜、拾取保险丝、修好电箱、首次到达某关键房间(铁柜房/电箱房/大门,各记一次)、成功逃脱。普通移动/检查空房不算进展。

3.2 三级提示(计时器自动触发,无需手势)

无进展时长 级别 内容(整句预生成,每级每阶段一句) 附带
60s L1 暗示 面向当前目标的一句意象提示,如"铁锈味最重的地方,值得仔细看看" WARNING 震动 + 语音提示前播"需要帮助吗?"
120s L2 明示 直接点明目标房间与动作,如"去西南角的储物间,单击检查,找钥匙" WARNING 震动
180s L3 带路 以玩家当前坐标算路,逐步导航:"从这里,向左滑,再向下滑"(每次触发按当前位置重算,滑动方向词为预生成的整句组合:方向指令句 4 句 × 顺序连读,非数字拼接,允许两句链播) WARNING 震动,此后每 60s 重复 L3 直至有进展
  • 提示级别按当前谜题链阶段(_hintVoice() 的 4 阶段:找钥匙/开铁柜/修电箱/开大门)× 3 级 = 12 句新增语音,全部是整句。
  • 提示播完不重复骚扰:同 level 对同阶段只自动播一次(L3 除外,可周期重复)。
  • 主动求提示保留:双击无目标时的兜底语音升级——先播背包,再播 L2 级明示(原来是 L1 级 hint_*)。

4. 环境线索音可重听 + 房间声音去重

  1. 单击检查 = 重播环境音 + 描述:_inspect() 改为先 play(当前房间环境音) 再链播描述语音(现版只播描述)。玩家随时可重听线索。
  2. 环境音从 3 种扩到 6 种,关键房间各有专属签名(Stable Audio 3 生成或合成,双格式):
    • 储物间 (0,2):滴水 + 金属杂物轻响(amb_storage)
    • 铁柜房 (2,1):嗡鸣 + 铁皮共振(amb_cabinet)
    • 电箱房 (0,0):电流嗡鸣 + 偶尔火花(amb_power)
    • 大门 (2,2):风声 + 门外空旷感(amb_gate)
    • 起点 (1,1):单一滴水(amb_drip,保留)
    • 其余 4 间空房:风声/远处嗡鸣两种弱化版轮换(amb_wind/amb_hum 保留)
  3. 进房间自动播环境音(保留现行为),且每次进入都播——不再是"错过就没了",配合单击重听,线索可随时复核。
  4. 大门房间通电后环境音切换为带电流声的版本(amb_gate_live),听觉上确认"电通了"这条谜题状态。

5. 反馈改震动(对齐 00 文档 §2)

事件 原反馈 新反馈
移动成功 脚步声 脚步声 + SWIPE_OK
撞墙 wall 闷响 wall 闷响 + ERROR
拾取/开柜/修电箱 sfx + 语音 sfx + 语音 + PICKUP / SUCCESS
双击无目标(无效使用) ui_deny 提示音 删除 ui_deny,改 ERROR 震动(内容语音保留)
逃脱成功 音效+语音 音效+语音 + SUCCESS
提示出现 无 WARNING

sfx/ui_deny 这类"反馈提示音"全部退役;内容音(脚步、撞墙、机关)保留。

6. 语音重做清单(整句化 + 双音色)

  • 删除:n0-n9/nshi/unit_min/unit_sec/time_prefix 数字拼接链。用时播报改 4 段整句:"不到两分钟""五分钟内""十分钟内""超过十分钟"(time_band1..4),前缀"你逃出来了,用时"并入各段整句一次生成。
  • 新增:引导脚本 8 步全部语音(每步 1-2 短句)、12 句三级提示、跳过引导/二周目开场句、储物间等 4 个关键房间的新描述。
  • 保留可用:empty_*、inspect_*、found_key、unlock_cabinet、fix_box、escape、replay、inv_* 已是整句,重录一版 male 目录即可(文本不变,speaker=Uncle_Fu,instruct 与 female 版同款)。
  • 全部语音按 00 文档 §3 生成:同 speaker+instruct 常量、female/male 双目录、ogg+m4a 双格式。

7. 流程图(新)

start → GUIDE(可下滑跳过)→ PLAY(自由探索 + 三级提示计时器)→ ENDING → 单击重开 / 下滑菜单

PLAY 阶段手势:四向滑=移动 / 单击=重播环境音+检查 / 双击=使用物品(无目标→背包+L2 明示)。ENDING:单击=重开,下滑=菜单(回大厅)。


修订记录(追加不改旧文,编号自 R1 起)

R1 · escape-state round2 状态引导改进(2026-09-15,方案见 25 号文档 §4.1)

按 25 号文档 §4.3 实施清单 F1-F9 落地(F6/B5b 按方案"可分期"留档):

  1. 撞墙报方位(B1/F1):§2.1 G2 表格的撞墙反馈在 PLAY 阶段升级为 wall 播完接播陈述式方位句 wall_dir_<dir>「左边是墙。」等 4 句 (同向 10s 限频、被打断作废)。这是对 round1-live"回退教学腔方位句"的 部分再修订——回退掉的是措辞,方位信息以世界内陈述句回归。
  2. 目标句带目标名(B2/F2):三处进展链尾方位句由「右面的房间。」升级为 "目标名+方位"一体句(gd_cabinet_dir/gd_box_dir/gd_gate_dir), 原 gd_room_* 保留作异常路径回落。
  3. 无进展计时器回收(B3/F3):§3.1"以上一次进展事件起算"的原始意图以 平行通道部分回收——无进展 150s 且期间 ≥5 次有效手势(活跃迷路)播 不泄题的进度重述 gd_prog_1/2/3(每进展段限 1 次);现行"无操作 60/120/ 180s"三级提示骨架不动(round1-live 修订继续有效)。
  4. §3.2 末条修订(B4/F4):「主动求提示保留:先播背包,再播 L2 级明示」 修订为「先播背包/use_fail,再播 L1 级意象暗示」——live 两次实录没卡关 的玩家被白送 L2 答案(泄漏 > 帮助),L2/L3 仍锁在计时器里(修订留痕于此, 25 号文档 §4.1 B4 有完整证据链)。
  5. 空房首访描述(B5a/F5):§4 房间声音去重补一条——空房首访一次性补播 现有 empty_*(不算进展事件;B5b 含方位特征的改词重录留后续轮)。
  6. 引导 busy 手势缓存(B6/F7):§2.1 补——步骤推进语音播放中(busy) 的首个非跳过分手势被缓存,解锁后按新步骤补判(合法=作答,不合法=答错 路径;缓存手势不触发下滑跳过),符合 00 文档 §5.4"做了手势 3 秒内必须有 反馈"。
  7. 结算链单击守卫(B7/F8):§7 流程图 ENDING 补——结算链播完前单击不 立即重开(_settleBusy,链完/30s 兜底解除),保障用时播报与操作指引的 完整到达权。
  8. 目标句全局可达(B8/F9):§2.1"跳过引导直达 PLAY"修订——跳过确认句 后与 REOPEN 直进路径都补播一次 g7_goal(任何路径进 PLAY 都至少听过 一次目标句;二周目可单击跳过)。

新断言登记(13 号文档不动):escape playtest 场景 G-N(B1/B2/B3/B4/B5a/ B6/B7/B8 各场景,含边界:B3 进展复位、B4 降级后 L2 仍可达、B6 缓存按序 补判、B7 结算链完整到达)共 +85 条至 235 全绿;guide.test ⑩c 换线 + ⑩d B6 full 档共 132 全绿;逐条勾账与既有断言变更登记见 25 号文档 「阶段四 · 实施勾账」。新语音 10 句台词表见 01-escape-voice-ids.md 「escape-state round2 新增主表句」。