# 26-apply · 《暗室》重构设计单(26 号文档落地) > 按 26 号文档附录 C 填写。交互规则权威来源:[26-audio-interaction-playbook.md](26-audio-interaction-playbook.md)。 ## 1. 一句话核心动作 **朝四个方向滑动在房间里移动,单击检查和使用,按住屏幕问路。** ## 2. 玩家可感知的状态(3 个)与声音身份 | 状态 | 听感 | 来源 | |---|---|---| | 探索(轮到你) | 当前房间的环境音常响(水滴/风/电流) | §4.1 ACTION | | 描述在播(游戏在说) | 房间描述语音,BGM 压低跨链 | §4.1 SPEAKING | | 撞墙/无效 | 闷响 + invalid 回执(低「咚」) | §4.2 | ## 3. 新手手势表(四向滑动是玩法 → §4.3 裁定:帮助换到长按) | 手势 | 含义 | 说明 | |---|---|---| | 四向滑动 | 移动(核心玩法,不按阶梯锁) | swipeCore | | 单击 | 检查 + 使用(合并;旧「双击=用物品」废除) | 站对房间即用 | | 长按 | 我在哪、我该干嘛(目标 + 方位一句话) | longpressCore | | 双击 | (阶段3解锁后)重听最近描述 | 未解锁按单击处理 | ## 4. 状态 × 手势矩阵(新手期) | 状态 \ 手势 | 单击 | 四向滑动 | 长按 | 双击(未解锁) | |---|---|---|---|---| | 引导答题 | 按步骤答(纠错句)/ invalid | 按步骤答(脚步/闷响) | 帮助 | 按单击处理 | | 探索(ACTION) | 检查+使用(环境音/描述即反馈) | 移动=脚步声(silent-ok);撞墙=闷响+invalid+归因 | 帮助(目标+方位) | 按单击处理 | | 描述在播 | 跳过这句 + ok | 打断并移动 | 打断,帮助 | 按单击处理 | | 结算 | 重新开始 + ok | invalid + inv_settle | 重听结算 | 按单击处理 | | 菜单 | 确认当前项 + ok | 左右滑换项;上下滑 invalid(非移动) | 重听菜单说明 | 当单击 | | 迷茫 L2 期间 | 照常 | 只放行接管方向,其余 invalid(不移动) | 照常 | 照常 | ## 5. 等待点配置表(引导期)与探索期接管 引导等待点(6s/15s 两档,short=「滑一下。」/「向左滑。」): | 步骤 | 期待 | 指令句 | |---|---|---| | 0 | 任意滑动 | g0_new「黑暗。朝任意方向,滑一下。」 | | 1 | 撞墙×2(教无效反馈) | g0b(+ wall 归因) | | 2 | 左滑 | g3_new「现在,向左滑。」 | | 3 | 下滑 | g4_down「对。再向下滑。」 | | 4 | 单击 | g5_inspect → g5_key + g7_goal_new | 探索期(无固定等待点,静默喂迷茫信号 40s 起每 20s)三级接管: | 级 | 做什么 | 台词 | |---|---|---| | 1 | 说目标方位(30s 台账去重,说过就提示音) | nav_*「向右滑。」 | | 2 | 只放行第一导航方向 | sys_only_*「现在,只要向左滑。」 | | 3 | 听我做一次:游戏自己朝目标走一步 | sys_demo + 脚步声 + sys_now_you | ## 6. 首 3 分钟逐秒脚本 | 时间 | 游戏说 / 播 | 期待玩家做 | 没做 | 做错 | |---|---|---|---|---| | 0~3s | 环境水滴声 →「黑暗。朝任意方向,滑一下。」 | 任意滑动 | 6s:「滑一下。」 | 点按:纠错句 | | 3~12s | 脚步声 →「对。你被困在地下设施里。再滑两下,试试墙。」 | 滑动撞墙 | 同上 | 方向错也有闷响(试错无代价) | | 12~25s | 闷响 + 「那边是墙,换个方向。」+ 方位句 ×2 →「现在,向左滑。」 | 左滑 | 「向左滑。」 | 其他方向:纠错 | | 25~40s | 脚步 →「对。再向下滑。」→ 储物间环境音 | 下滑 | 同上 | 纠错 | | 40~60s | 「听到水声了吗?单击一下,仔细检查这个房间。」→ 拾取音 →「你摸到了一把钥匙!」 | 单击 | 「单击。」 | 滑动:纠错 | | 60~90s | 「找到能用钥匙打开的东西。迷路了,按住屏幕。」→ 自由探索 | 探索 | 40s 起接管 | 撞墙归因 | | 90~180s | 首到房间描述、谜题链推进(钥匙→铁柜→保险丝→电箱→大门) | 探索 | 接管三级 | 归因 + 就近重试 | 节奏检查 ✓:3s 内动手;首成功=第一次滑动(脚步声);每 30s 有可听进展(新房间环境音/描述)。 ## 7. 失败表 | 失败类型 | 判定 | 归因句 | 回到哪里 | 新手期代价 | |---|---|---|---|---| | 方向错(撞墙) | 越界 | wall + wall_dir_*(每方向整局一次,之后只闷响+回执) | 原地 | 无 | | 用错地方 | 站位不对 | (合并进检查语义:描述告诉你这里有什么) | 原地 | 无 | | 迷路 | 静默/乱点信号 | 接管 L1→L2→L3 | 原地 | 无 | ## 8. 台词表(类别标注) - `critical`:g0_new(开场指令 <3s);结算承诺段 again(+解锁教学) - `content`:g0b/g3_new/g4_down/g5_*、room_*、empty_*、found_key、unlock_cabinet、fix_box、escape、time_band、replay、start_room、inspect_*、gd_*_dir、gd_next_fuse - `hint`:lp_*(长按帮助)、nav_*、sys_only_*、sys_continue_ask、g_hint_swipe、menu_help - `feedback`:wall、wall_dir_*、g_wrong_*、guide_wrong_*、guide_blunt_swipe、inv_*、sys_demo、sys_now_you - 完整清单见 `tools/gen_voice_dual.py` ESCAPE_LINES(74 句 × 双性别)。 ## 9. 断点复述句 - 保存:每步移动/进展写 `soundgame.escape.save`(坐标 + 谜题状态 + 用时)。 - 回来:sys_continue_ask;单击继续(恢复坐标 + lp 帮助句作复述),右滑重新开始。 ## 10. 测试记录 - 无头 playtest:`web/escape/test/playtest.mjs`(32 断言,乱点机器人:无声操作 0 / 被动原句重复 0 / 第一次成功 2.1s;撞墙归因按原则 7 只解释一次)。 - 真人冷启动:待测。