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

95 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 26-apply · 《音序回响》重构设计单(26 号文档落地)
> 按 26 号文档附录 C 填写。交互规则权威来源:[26-audio-interaction-playbook.md](26-audio-interaction-playbook.md)。
## 1. 一句话核心动作
**听一串音色,原样复现。**
## 2. 玩家可感知的状态(3 个)与声音身份
| 状态 | 听感 | 来源 |
|---|---|---|
| 听序列(游戏在说) | 音色序列 + 轮次播报;手势 = busy 回执(「嗯」) | §4.1 BUSY |
| 轮到你(答题) | input_open 标记音 → 风铃 + 等待声;答题回声即时 | §4.1 YOUR_TURN |
| 结算 | gameover 音 + 结算链 + menu pad | — |
## 3. 新手手势表与音色阶梯
全部六个手势在本作都是**音色**(答题输入,§4.3「滑动是玩法」裁定);
帮助(状态查询)在长按。音色按玩家实力渐进开放(做中学,一次只学一样):
| 音色 | 解锁条件(历史最佳轮数) |
|---|---|
| 单击 / 左滑 / 右滑 | 新手即有(F3:选项 ≤3) |
| 上滑 | 清过第 1 轮 |
| 下滑 | 清过第 3 轮(同时=菜单手势) |
| 双击 | 清过第 6 轮(同时=重听手势) |
新音色第一次进序列时现场教一句(「向上滑,是这个声音。」)马上用。
老玩家(best>0)跳过教学,做对过的事不教第二遍(原则 11)。
## 4. 状态 × 手势矩阵(新手期)
| 状态 \ 手势 | 单击 | 滑动×4 | 长按 | 双击(未解锁) |
|---|---|---|---|---|
| 教学(指令在播,critical) | busy 回执(等指令说完) | busy 回执 | 帮助 | busy |
| 教学答题 | 答题/纠错 | 答题/纠错(回响即反馈) | 状态句 | 按单击处理 |
| 播报/序列播放(BUSY) | busy 回执 | busy 回执 | busy 回执 | busy 回执 |
| 答题(YOUR_TURN) | 作答(音色回声) | 作答 | 状态句(轮次段位,不闭窗) | 未入池=invalid;入池=第 6 音色 |
| 结算 | 重新开始(言行一致) | invalid + 解释 | 重听结算 | (阶段3)重听结算 |
| 菜单 | 确认当前项 | 左右滑换项 | 重听菜单说明 | 当单击 |
## 5. 等待点配置表
| id | 期待 | 提示 full | 提示 short | 静默阈值 | L2 | L3 |
|---|---|---|---|---|---|---|
| tut0 | tap | (指令句刚说过) | 「点一下。」 | 6s/15s | — | 提示音 |
| tut_<g> | 当前教的音色 | 教学句 | 「再试一次。」 | 6s/15s | — | 提示音 |
| input | 全部已解锁音色 | 「轮到你了。」 | (提示音) | 10s/25s | 免费重听整串 | 放慢 + 重听 |
| settle | tap | 「单击,再来一局。」 | 「再试一次。」 | 20s/45s | — | 提示音 |
| menu | tap/left/right | menu_help | menu_help | 20s/45s | — | 提示音 |
## 6. 首 3 分钟逐秒脚本
| 时间 | 游戏说 / 播 | 期待玩家做 | 没做 | 做错 |
|---|---|---|---|---|
| 0~3s | 「音序回响。点一下屏幕。」(critical) | 单击 | 6s:「点一下。」 | 滑动:纠错 |
| 3~10s | 单击音色回响 → 「向左滑,是这个声音。」+ 音色 | 左滑 | 「再试一次。」 | 纠错句(30s 内不重播) |
| 10~30s | 「对了。」→ 右滑音、单击音各教一个,马上练 | 左/右/单击 | 同上 | 同上 |
| 30~40s | 「记住顺序,原样复现。答错,我们就再听一遍。」→「第一轮,听好了。」→ 2 音序列 | 听 | — | 播放期手势=busy |
| 40~50s | input_open + 风铃 + 等待声 | 复现 2 音 | 10s:「轮到你了。」25s:提示音 | 见失败表 |
| 50~90s | 每轮 +1 音;答对必有表扬句(≤4 字) | 复现 | 三档 + 接管 | 归因 + 免费重听 |
| 90~180s | 第 4 轮完成 → 解锁菜单教学句;序列渐长 | 复现 | 接管 L2 免费重听 / L3 放慢演示 | 第 3 次失败放慢 |
节奏检查 ✓:3s 内动手;首成功=第一击音色回响(≤10s);每轮都有进展回报。
## 7. 失败表(替代旧「机会账」经济)
| 失败次数 | 处理 | 台词 |
|---|---|---|
| 1~2 | 2 秒内归因(「错了。是向左滑。」)→ 免费重听整串 | wr_* + relisten |
| 3 | 「我放慢一些。」→ 间隔 ×1.6 + 序列减 1 音 | slow_down |
| 4 | 结算(成绩段位 + 破纪录 + 承诺句) | gameover + score_band + replay |
新手期失败零资源消耗(原则 15);归因真话(错的音色名如实说)。
## 8. 台词表(类别标注)
- `critical`:t0_new、t7_new、教学指令链(t1~t6 各 <3s)、结算承诺段(replay + 解锁教学)
- `content`:round_01..20、score_band1..6、gameover、new_record、t_ok、correct、gd_clear、gd_record
- `hint`:your_turn、t_retry、st_b1..4、sys_demo、menu_help
- `feedback`:wr_*(归因)、relisten、slow_down、t_wrong_*、inv_busy、inv_generic
- 完整清单见 `tools/gen_voice_dual.py` SIMON_LINES(74 句 × 双性别)。
## 9. 断点复述句
对局内不设存档(单局 2~5 分钟,微循环自洽);历史最佳跨局持久
(`soundgame.simon.best`),决定音色池与新音教学。
## 10. 测试记录
- 无头 playtest:`web/simon/test/playtest.mjs`(21 断言,乱点机器人:无声操作 0
(播放期也有 busy 回执)/ 被动原句重复 0 / 第一次成功 10.2s)。
- 真人冷启动:待测。