Files
SoundGame/docs/design/17-abyss.md
T
2026-10-01 23:26:47 +08:00

9.3 KiB
Raw Blame History

17 · 《深海回音》(abyss) — 深海救援叙事 RPG

给开发的实现要点摘要

  1. 交互权威:26 号手册。叙事范式对齐 26-apply-storyline.md。搜索等待的单击=发声呐脉冲,等同宪法「检查」,不是四向滑动玩法,帮助用上滑。
  2. 骨架同 radio:节点链 + seqToken + pendingChoice。宏状态 INTRO / DIVE / COMMS / SURFACE / ENDING + MENU。
  3. 氧气=步进资源,无实时倒计时、无中途死亡。软失败=少一潜/少带一人。声呐与语音互斥(sonarGate)。
  4. 台词 17-abyss-voice-ids.md(148 句:双性别 127 + NPC 21)。废除双击重听回波:搜索等待再单击=再发脉冲(自然再听)。
  5. 章程 N2:15–25 分钟、9 抉择(实走 7–9)、4 结局。

附录 C · 设计单

1. 一句话核心动作

听一段救援,单击继续或发声呐;听到选项时左右滑做决定。

2. 玩家能感知的状态(3 个)

状态 听感 Floor
听讲 调度/船员语音,BGM 整链压低 SPEAKING
轮到你 turn → 等待声;搜索等待用深海 amb + 余音 YOUR_TURN
危险 danger 签名 + 火花/滑坡(仅 D2/D4) SPEAKING/BUSY

氧气档靠跨档句与 breath_loop(low/crit),不单开第四态。

3. 新手手势与解锁

手势 含义 解锁
单击 继续 / 搜索等待发脉冲 / 跳过当前句 阶段 0
左/右滑 抉择 阶段 0
上滑 我在哪(潜次 → 已救人数 → 氧档 → 一个动作) 阶段 1(第一次脉冲成功后)
下滑 菜单 阶段 2(第一次结局)
双击 按单击。阶段 3=重听当前等待点完整句 阶段 3
长按 新手 invalid;之后旁白加速 —

4. 状态 × 手势矩阵(新手期)

状态 \ 手势 单击 左/右滑 上滑 下滑(未解锁) 双击 连点
游戏在说 跳句 + ok(p*/锚句/档位句不可跳 → busy) 抉择点缓存,不盲选;否则 invalid 打断,我在哪 invalid 按单击 400ms busy
等你继续 继续 invalid 我在哪 invalid 按单击 busy
搜索等待 脉冲 sonar_ping(silent-ok) invalid +「点一下,发脉冲。」 「第 N 潜。点一下发脉冲。」 invalid 按单击=再脉冲 冷却/连点 busy
等你选择 再听选项 抉择 「左右滑。」 invalid 按单击 迷茫
结算 新救援 invalid 结局+氧档一句 菜单(阶段2) 按单击 第一下
菜单 确认当前项 左上一项 / 右下一项 重听说明 关闭 按单击 busy

搜索中再点=再听回波,废除「双击=重听上一条回波」。玩家脉冲先于向导散句(先掐 gd 再出 ping)。

5. 等待点

id 期待 full short 静默 L2 L3
intro tap 「点一下屏幕。」 「点一下。」 6s/15s tap 替点
ping tap 「单击,发一枚脉冲。」 「点一下。」 8s/18s tap 替发脉冲
continue tap 「单击,继续。」 「单击。」 13s/30s tap 替继续
choice L/R pN 「左右滑,选。」 25s/50s 左右滑 演示
settle tap 「单击,重新开始。」 「单击。」 20s/45s tap 提示音

COMMS 链末 full 档静默 13s/30s(不对齐旧 25/50)。乱滑不推进节点:迷茫 L1 短句 → L2 只留期待手势 → L3 演示脉冲或选择。

6. 首 3 分钟

时间 播 期待 没做 做错
0~3s 甲板风浪 →「点一下屏幕。」 单击 「点一下。」 滑动 invalid
3~8s ok → 极短目标句 → 下潜声 →「点一下,发脉冲。」 单击脉冲 「点一下。」 滑动 invalid
8~10s sonar_ping → 静默一拍 → echo_metal →「金属回波,钢板。」 —(第一次成功)
10~20s turn 教学 → 接通小舟 单击继续 三档 inv_nosel
20~60s p1 听暗号/直接上 左右滑 复述 p1 不盲选
≈60s 解锁上滑 上滑 「向上滑。」
60~180s p2 → 上浮扣 3 格 → 档位句 单击/滑 接管 归因真话

7. 失败表

类型 判定 归因 回到 新手期
搜索滑动 DIVE 等待滑 「点一下,发脉冲。」 原地 无
非抉择滑动 「现在不用选。」 原地 无
氧气门取消第四潜 SURFACE(3) oxy≤2 取消链指向实际花气的左选择 签收 p9 已救者不失去
干涸 mid-dive floor 0 dry_b 指向最后那个左选择 上浮结算 人已上吊索仍救出
迷茫 信号≥2 L1–L3 原地 无

8. 台词类别

  • critical:sys_first_tap;dv1_teach「点一下,发脉冲」
  • content:b_、dv、船员对白、p1–p9、e*、ep_、dv4_dual、oxy_(水面 crit 用 oxy_crit_deck「一潜都下不去了。」)
  • hint:gd_ping1/2、prog_dN、prog_savedN、oxy 档、sys_continue_ask
  • feedback:inv_*、dry_b、gao_final 留别句
  • 停用:任何「双击重听回波」句

148 句(含 _k 11 对);音频 127×2+21=275 条 ×2 格式。

9. 断点复述

保存:每潜进入、抉择后、SURFACE/ENDING、菜单保存。回来 sys_continue_ask;单击重播当前节点(恢复首句锁)。上滑:第 N 潜。已救 K 人。氧档。点一下或左右滑。

10. 测试记录

web/abyss/test/playtest.mjs。改:双击不重听回波;菜单左右+单击确认;首次脉冲 ≤10s;回波与 voice 零重叠仍失败即不通过。真人待测。


1. 概述

深潜救援员,声呐里是「海燕号」。氧气在倒数,但全是事件点扣格:无实时倒计时、无死亡。最优省气路径全员生还。与 radio 同骨架,压力源=氧气稀缺(宽限化)。

2. 状态机

状态 内容 BGM
INTRO 极短甲板口播 deck
DIVE 下潜 auto → 搜索单击脉冲 → 回波+接通 dive
COMMS 对白+抉择 comms
SURFACE 扣账+档位+补给(D2),auto deck
ENDING 结局+回响 ending
MENU 覆盖 deck 低响
INTRO ──单击──> DIVE(1) ──脉冲找到──> COMMS ──> SURFACE ──> DIVE(2)…
SURFACE(3) 氧气门:oxy≥4 双载 / =3 单载 / ≤2 取消链
──> ◆p9 ──> ENDING

取消链/干涸链/结局链/签收链入口 800ms 手势死窗。档位句纳入尾句保护(不可单击掐)。非 auto 叙事尾句首播保护,复播可掐。

3. 抉择树

D1 找船·小舟:教学脉冲 → p1 听暗号(−1, knowsPipe) / 直接上 → p2 等日志(−1, hasLog) / 不等 → 扣 3。

D2 机舱·老白:p3 慢撬(knowsPipe?0:−1) / 快切(危机拍火花)→ p4 关阀门(−2, valve) / 走 → 应急瓶 +3(全局一次)。

D3 病舱:p5 先陈 / 先郑(stayer)→ p6 留瓶(−2, spareGift) / 约定。

D4:双载 p7 慢浮(−2)/快浮;单载 p7 带船长/带留守;p8 说出来(gaoPeace)/不问。

p9 取钟(需 oxy≥1)/ 进医疗舱;oxy<1 封锁左路(g9_dry,不摆假选项)。

结局 条件
e1 海燕归钟 saved=5 且 p9 左
e2 满载的黎明 saved=5 且 p9 右
e3 最后一潜 saved<5 且 p9 左
e4 按规程上浮 saved<5 且 p9 右

跨潜仅标量:oxy、saved×5、stayer、flag×6。约 70 节点。

4. 氧气经济

初值 12;D2 后 +3,总预算 15。每潜起扣 3。抉择耗气见上。mid-dive 负数 floor 0。档位=floor(oxy/3):full≥9 / ok 6–8 / low 3–5 / crit 0–2。水面 crit 用 oxy_crit_deck。双载 D4 口播 dv4_dual「这趟往返,扣四格气。」

SURFACE(3) 时 oxy=6−lefts → 双载 lefts≤2;单载=3;取消≥4。教学潜与机舱潜预算上永不卡死。

船员:小舟/老白恒活;陈/郑/船长按 p5/p6/氧气门/p7。好感只影响 ep 选播。

5. 声呐双通道

信息类回波与 voice 零重叠(sonarGate)。搜索段:脉冲 → 静默一拍 → 回波 → 解读。回波时长:金属 3300 / 敲管 3500 / 呻吟 5000ms。玩家脉冲抢先于向导散句。语音在播时远程脉冲垫 −6dB。并发前景 ≤2。

教学承诺:金属回波=船身(凡「船身」节点必播 echo_metal*);单击=脉冲;四潜=基础 3×4=12;氧气门=oxy<3 取消;每潜扣 3;敲管=老白;补给恰 +3 一次。

6. 音频资产

BGM:deck / dive / comms / ending。SFX:sonar_ping、echo_metal_l/r、echo_debris、echo_groan、pipe_knock、link_beep、static_burst、amb_deep、amb_deck、breath_loop、spark_flash、valve_close、landslide、surf_splash、ascent_chime、bell_toll。

Voice:潜航员 30 + 调度 97(双性别)+ 船员 21 平铺滤波。D4 danger 震间隔 1100ms。crit 档 warning 震按「进入该档」去重。

7. 存档

{
  "phase": "COMMS", "node": "bai_b", "dive": 2, "oxy": 6,
  "saved": { "zhou": 1, "bai": 0, "chen": 0, "zheng": 0, "gao": 0 },
  "flags": { "knowsPipe": true }
}

summary:第N潜·<舱段> · 氧气K格 · 结局X/4。

8. playtest 指针

四结局 + 氧气逐点、sonarGate 零重叠、教学承诺、结算死窗、pendingChoice:保留。删除双击回波重听与菜单双击确认。乱按 96s 必须被迷茫/三档救出,不得静默死局。