155 lines
7.8 KiB
Markdown
155 lines
7.8 KiB
Markdown
# 19 · 《暗码》(cipher) — 1940 密战叙事 RPG
|
||
|
||
> **给开发的实现要点摘要**
|
||
> 1. 交互权威:26 号手册。叙事+解码小局,**不**用四向滑动,帮助=上滑。废除 DECODE 双击重听/慢放、长按翻密码本。
|
||
> 2. 摩尔斯由运行时 `morse.js` 合成(不走有损文件)。左右滑预听候选即对照电文——新手靠这一层听辨,不必先学双击。
|
||
> 3. 暴露度隐藏资源;教学封 T1 译错即时归因+无限重选;正片译错不揭穿,尾声兑现。
|
||
> 4. 台词 [19-cipher-voice-ids.md](19-cipher-voice-ids.md)(139 句:双性别 134 + NPC 5)。键盘变体 11 对。
|
||
> 5. 章程 N3:15–25 分钟、9 抉择(4 译词+5 叙事)、4 结局。
|
||
|
||
---
|
||
|
||
## 附录 C · 设计单
|
||
|
||
### 1. 一句话核心动作
|
||
|
||
**听电文,左右滑对照候选词,单击选定;叙事段单击继续、左右滑处置。**
|
||
|
||
### 2. 玩家能感知的状态(3 个)
|
||
|
||
| 状态 | 听感 | Floor |
|
||
|---|---|---|
|
||
| 听讲 | 旁白/处长,BGM 整链压低 | SPEAKING |
|
||
| 译电 | 摩尔斯(750Hz 电文 / 620Hz 候选)+ choice 签名 + 等待声 | YOUR_TURN |
|
||
| 轮到你(叙事) | turn + 等待声 | YOUR_TURN |
|
||
|
||
静电底噪是场景,不单开第四态。
|
||
|
||
### 3. 新手手势与解锁
|
||
|
||
| 手势 | 含义 | 解锁 |
|
||
|---|---|---|
|
||
| 单击 | 继续;DECODE 浏览=进确认;确认=定下 | 阶段 0 |
|
||
| 左/右滑 | 叙事抉择;DECODE=循环候选(自动预听对照档) | 阶段 0 |
|
||
| 上滑 | 我在哪(第几封。密码本余页。暴露档。左右滑听词。) | 阶段 1(T1 译对后) |
|
||
| 下滑 | 菜单(含「翻密码本」) | 阶段 2(第一局结束) |
|
||
| 双击 | 按单击。阶段 3=重听电文原速;再请求=慢放 0.5× | 阶段 3 |
|
||
| 长按 | 新手 invalid。之后旁白加速。**不**翻密码本 | — |
|
||
|
||
密码本:阶段 2 菜单项;迷茫 L3 也可演示慢放+揭示辨析位(教学 T1 首次翻页仍免费,由系统在 T1 迷茫或菜单未解锁前自动给一页教学)。
|
||
|
||
### 4. 状态 × 手势矩阵(新手期)
|
||
|
||
| 状态 \ 手势 | 单击 | 左/右滑 | 上滑 | 下滑(未解锁) | 双击 | 连点 |
|
||
|---|---|---|---|---|---|---|
|
||
| 游戏在说 | 跳句(摩尔斯首播/p* 不可跳 → busy) | 缓存抉择 / DECODE 首播中 busy 轻声 | 我在哪 | invalid | 按单击 | 400ms busy |
|
||
| RX 首播摩尔斯 | busy | busy | 我在哪 | invalid | 按单击 | busy |
|
||
| DECODE 浏览 | 进确认(电文原速再播一遍) | 切候选:620Hz 摩尔斯 → 静默一拍 → 词义句 | 状态链 | invalid | 按单击 | 迷茫 |
|
||
| DECODE 确认 | 定下(800ms 死窗→揭晓) | 取消回浏览 | 状态链 | invalid | 按单击 | busy |
|
||
| 叙事等选择 | 再听选项 | 抉择 | 「左右滑。」 | invalid | 按单击 | 迷茫 |
|
||
| 结算 | 新夜班 | invalid | 结局+档 | 菜单(阶段2) | 按单击 | 第一下 |
|
||
| 菜单 | 确认(可消耗一页密码本) | 切项 | 重听说明 | 关闭 | 按单击 | busy |
|
||
|
||
摩尔斯不叠语音(morseGate)。BGM 摩尔斯期间 −6dB。u 恒定,不受 settings.speed。
|
||
|
||
### 5. 等待点
|
||
|
||
| id | 期待 | full | short | 静默 | L2 | L3 |
|
||
|---|---|---|---|---|---|---|
|
||
| intro | tap | 「点一下屏幕。」 | 「点一下。」 | 6s/15s | tap | 替点 |
|
||
| decode | L/R | 「左右滑,听候选词。」 | 「左右滑。」 | 10s/25s | L/R | 慢放电文一遍再交还 |
|
||
| confirm | tap | 「单击,定下这个词。」 | 「单击。」 | 10s/20s | tap | 替确认 |
|
||
| choice | L/R | pN | 「左右滑,选。」 | 25s/50s | L/R | 演示 |
|
||
| continue | tap | 「单击,继续。」 | 「单击。」 | 13s/30s | tap | 替继续 |
|
||
|
||
T1 译错不进失败终局:即时 dv1_wrong(摩尔斯写死在句里)+ 回浏览。正片译错不揭穿。
|
||
|
||
### 6. 首 3 分钟
|
||
|
||
| 时间 | 播 | 期待 | 没做 | 做错 |
|
||
|---|---|---|---|---|
|
||
| 0~3s | 雨+静电 →「点一下屏幕。」 | 单击 | 「点一下。」 | 滑 invalid |
|
||
| 3~8s | 调谐 → BAY 摩尔斯首播(不可跳) | 听 | | |
|
||
| 8~10s | turn →「向右滑,听下一个词。」 | 右滑 | 「向右滑。」 | 点太早进确认:可左滑取消 |
|
||
| 10~25s | 候选对照 → 滑到 BAY → 单击→再单击定下 | 滑+点 | L3 慢放+揭示 B | DAY/RAY:即时归因重选 |
|
||
| ≈25s | 「对。」dv1_right(第一次成功) | | | |
|
||
| 25~60s | p2 报北风/压日志 | 左右滑 | 复述 | 不盲选 |
|
||
| 60~180s | T2 开始;上滑已解锁 | 译词 | 三档 | 正片错译走分支 |
|
||
|
||
### 7. 失败表
|
||
|
||
| 类型 | 判定 | 归因 | 回到 | 新手期 |
|
||
|---|---|---|---|---|
|
||
| T1 译错 | 非 BAY | 「不对。B,一长三短。」 | 浏览,无限 | 暴露 +0 |
|
||
| 正片译错 | 非真词 | 不揭穿;揭晓按认知 | 处置链 | 暴露 +1 |
|
||
| 页数用尽再翻 | hints=0 | paper_page + invalid,无语音轰炸 | 原地 | — |
|
||
| 收网 | p9 前 expose≥5 且发报 | d9_caught 真话 | 结局 e3 | 软失败 |
|
||
| 迷茫 | | L3 慢放 | 浏览 | 无 |
|
||
|
||
### 8. 台词类别
|
||
|
||
- `critical`:开场点一下;T1 教学「左右滑,听词」
|
||
- `content`:rx/dv/rev/r*/n*/p*/e*/ep_*
|
||
- `hint`:gd_tune 改为不含双击;book_3..0;exp 四档;hint_* 密码本
|
||
- `feedback`:dv1_wrong、inv_*
|
||
- 停用:gd_tune2「双击再听/再双击放慢」、E1 长按翻本口令
|
||
|
||
139 句;音频 134×2+5=273 ×2 格式。摩尔斯零文件。
|
||
|
||
### 9. 断点复述
|
||
|
||
保存 expose/hints/t1..t4/p flags。回来 sys_continue_ask。DECODE 恢复:重挂浏览并自动预听当前候选。上滑:第 N 封。余页。暴露档。左右滑。
|
||
|
||
### 10. 测试记录
|
||
|
||
改:双击不慢放;长按不扣页;菜单确认翻页;3s 动手;10s 内完成一次候选预听。morse 事件钩子字符断言保留。剧本 E 提示流改走菜单或 L3。
|
||
|
||
---
|
||
|
||
## 1. 概述
|
||
|
||
1940 江城,电讯处夜班报务员,也是「北风」的耳朵。四封密电:怎么译、报不报、报给谁。压力=隐藏怀疑账本+认知风险(译错是另一条真剧情)。无倒计时、无死亡。
|
||
|
||
## 2. 摩尔斯小局
|
||
|
||
| 参数 | 值 |
|
||
|---|---|
|
||
| u 原速 | 80ms(≈15 WPM),不随语速 |
|
||
| 慢放 | u=160ms,阶段 3 或 L3 |
|
||
| 对照档 | u=110ms,切候选自动播 |
|
||
| 音色 | 电文 750Hz / 候选 620Hz,正弦+5ms 边沿 |
|
||
|
||
| 封 | 真词 | 候选 | 辨析位 | 提示 |
|
||
|---|---|---|---|---|
|
||
| T1 船期 | BAY | DAY/RAY | 1: B/−··· | 第 1 字母 B,一长三短 |
|
||
| T2 名单 | TOP | TAP/TIP | 2: O/−−− | 第 2 字母 O,三长 |
|
||
| T3 交接 | HAND | SAND/LAND | 1: H/···· | 第 1 字母 H,四短 |
|
||
| T4 处置令 | SPY | SAY/SLY | 2: P/·−−· | 第 2 字母 P,短两长短 |
|
||
|
||
提示揭示辨析位 ⟹ 候选唯一。密码本 3 页,T1 教学首次不扣;用尽只翻空纸声。
|
||
|
||
流:RX 引入+调谐+电文首播不可跳 → 浏览(滑=预听)→ 单击确认再播电文 → 再单击定下。
|
||
|
||
## 3. 状态机与树
|
||
|
||
INTRO → RX(1) → DECODE(1) → RELAY(1) → NIGHT → … → RX(4) → 签收 p9 → ENDING。
|
||
|
||
T1 恒收敛真词。T2–T4 译错不揭穿,p4/p8/p9 走 known/blind 差分。p6 亲自去 expose+2;p8 反喂 +2;p9 左发报结局用 p9 前暴露。
|
||
|
||
| 结局 | p9 前 expose | p9 |
|
||
|---|---|---|
|
||
| e1 最后一电 | ≤4 | 左 |
|
||
| e2 值完这个班 | ≤4 | 右 |
|
||
| e3 孤灯 | ≥5 | 左 |
|
||
| e4 长夜 | ≥5 | 右 |
|
||
|
||
暴露事件:T2–T4 译错 +1/封;p2 右 +1;p4 左 +1;p6 左 +2;p8 左 +2。档:0 calm / 1–2 low / 3–4 mid / ≥5 hot(=收网门)。跨档才播。
|
||
|
||
## 4. 音频
|
||
|
||
BGM:radio_room / closing(T4 起)/ night / ending。SFX:tune_seek、static_bed、amb_room、paper_page、key_send、pen_scratch、tea_cup、step_halt(前置 2s)、lock_click、dawn_bell。处长 Eric 平铺 5 句。快手七无台词,存在=手法音。
|
||
|
||
## 5. 存档与验算
|
||
|
||
剧本 A 全对全右 p9 左 → e1 expose=0;C 全错全左 → e3。边界 wrong=2+risk=2=4 仍 e1/e2。summary:`第N封 · 暴露档 · 余页K · 结局X/4`。
|