Files
SoundGame/docs/design/01-escape-redesign.md
T
SoundGame Dev cc0f8c008d HTML5 重写:6 款游戏 + 用户系统 + 全局设置 + 5 轮迭代重构
- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、
  Node 零依赖服务器(静态 + 注册登录 + 进度存档 API)
- 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、
  节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除
- 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、
  震动反馈语言(10 种震型)、服务器进度同步
- 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、
  Mureka BGM 4+3 首),终检零缺失
- 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、
  web/server/README.md API 文档
2026-08-29 21:55:44 +08:00

9.1 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:单击=重开,下滑=菜单(回大厅)。