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

11 KiB
Raw Permalink Blame History

02 · 《音序回响》重设计(26 号对齐)

给开发者的实现要点摘要

  1. 交互权威:26 号手册。设计单摘要见 26-apply-simon.md。
  2. 玩法保留:听一串音色,原样复现。对局/教学无 BGM;仅菜单与结算挂 bgm/menu(0.3)。六手势音色映射保留,但按实力渐进开放,新手只有单击/左滑/右滑。
  3. 帮助=长按(六手势都是答题输入)。新手期无双击音色;doubleTapWindow: 0。
  4. 失败不扣机会账:第 1~2 次答错=真话归因 + 免费重听整串;第 3 次放慢;再错才结算。新手期零资源消耗。
  5. 听序列 = Floor BUSY(任何手势=busy,序列不变);答题 = YOUR_TURN(input_open + 风铃 + 等待声)。回执 ≤100ms,禁止只震不响。

0. 设计单(26 号附录 C)

0.1 一句话核心动作

听一串音色,原样复现。

0.2 玩家可感知的状态(3 个)

状态 Floor 听感 第一次教
听序列 BUSY 音色序列;手势=busy「嗯」 「先听,不要动手。」
轮到你 YOUR_TURN input_open → turn 风铃 → 等待声;答题立即回声 「听到这个声音,就是轮到你了。」
结算 — gameover + 结算链 + menu pad —

不要用 BGM 区分听/答。对局全程无 BGM。

0.3 新手手势与音色阶梯

全部六个手势在本作都是音色。帮助换到长按。音色按历史最佳轮数开放,一次只学一样:

音色 / 手势 解锁条件
单击 / 左滑 / 右滑 阶段 0(选项 ≤3)
上滑 清过第 1 轮
下滑(同时=菜单手势,仅结算/菜单相位) 清过第 3 轮;对局答题中下滑仍是音色(阶段 2 后结算才开菜单)
双击 清过第 6 轮(阶段 3 专属高级音色);未入池按单击处理
长按 帮助:状态句(轮次/段位),不闭窗、不耗资源、不判错

新音色第一次进序列时现场教一句(「向上滑,是这个声音。」)马上用。best>0 的老玩家跳过已会的教学。

0.4 状态 × 手势矩阵(新手期)

状态 \ 手势 单击 已解锁滑动 长按 双击(未解锁) 连点 / 乱滑
教学指令 critical busy busy 帮助 busy busy
教学答题 答题 / 纠错(回声即反馈) 答题 / 纠错 状态句 按单击处理 计入迷茫
播报 / 序列 BUSY busy busy busy busy busy(序列不变)
答题 YOUR_TURN 作答(回声=silent-ok) 作答 状态句 未入池=invalid+首次解释 乱滑计入迷茫;有效作答照收
结算 再来一局 invalid+首次解释 重听结算 按单击处理 只处理第一下
菜单 确认 左右滑切换 重听说明 按单击处理 busy

0.5 等待点

id 期待 _full _short 静默 L2 L3
tut0 单击 (指令刚说过) 「点一下。」 6s / 15s 单击 提示音
tut_<g> 当前教的音色 教学句 「再试一次。」 6s / 15s 该手势 提示音
input 已解锁音色 「轮到你了。」 (提示音) 10s / 25s 免费重听整串 放慢 + 重听
settle 单击 「单击,再来一局。」 「再试一次。」 20s / 45s — 提示音
menu 单击/左右 菜单说明 同左 20s / 45s — 提示音

0.6 首 3 分钟逐秒脚本

时间 游戏说 / 播 期待 没做 做错
0~3s 「音序回响。点一下屏幕。」(critical) 单击 6s:「点一下。」 滑动:invalid+「先点一下。」
3~10s 单击音色回响(第一次成功)→「向左滑,是这个声音。」+ 音色 左滑 「再试一次。」 纠正(30s 内不重播同一句)
10~30s 「对。」→ 右滑、单击各练一次 左/右/单击 短句档 纠正
30~40s 「记住顺序,原样复现。答错,我们就再听一遍。」→「第一轮,听好了。」→ 2 音序列(仅已教音色) 听 — 播放期=busy
40~50s input_open + 风铃 + 等待声 复现 2 音 10s:「轮到你了。」 见失败表
50~90s 每轮 +1 音;答对 ≤4 字肯定 复现 三档 + 接管 归因 + 免费重听
90~180s 第 4 轮后可教学菜单(结算相位);序列渐长;上滑音色在清第 1 轮后入池 复现 L2 免费重听 / L3 放慢 第 3 次失败放慢

3s 内动手;第一次成功=第一击回响 ≤10s;每轮有进展回报。

0.7 失败表(取代机会经济)

失败次数(本局同序列) 处理 台词
1~2 2s 内归因(「错了。是向左滑。」)→ 免费重听整串,进度清零重输 wr_* + 重听
3 「我放慢一些。」→ 间隔 ×1.6,序列可减 1 音 slow_down
再错 结算(成绩段位 + 破纪录 +「单击,再来一局」) gameover + score_band*

归因必须点名真实按错的音色。没出手不得说「错了」。新手期不扣「机会」、不加「机会加一」。

0.8 台词类别

  • critical:t0_new、各教学指令(每句 ≤3s)、结算承诺段。
  • content:round_01..20、score_band1..6、gameover、new_record、t_ok、correct。
  • hint:your_turn、t_retry、状态查询句、sys_demo、菜单说明。
  • feedback:wr_*、slow_down、教学纠正、inv_busy。

全文见 SIMON_LINES / 02-simon-voice-ids.md。停用「机会加一 / 重听机会用完 / 双击重听」旧句。

0.9 断点复述

对局不存档(单局 2~5 分钟)。soundgame.simon.best 跨局持久,决定音色池与是否跳过教学。summary:「最佳成绩:第 N 轮」。

0.10 测试

web/simon/test/playtest.mjs。关键路径:3s 内单击 → 只教已解锁音色 → 第 1 轮 2 音复现 → 结算。序列期任何手势=busy。


1. 现版诊断(问题仍在,解法已换)

  1. BGM 与音色抢通道 → 对局不播 BGM(保留,与 10 号一致)。
  2. 数字拼接 → 轮次 1–20 整句 + 无数字兜底;成绩 6 段整句(保留)。
  3. 8 句连播教学、零交互 → 交互式,一次一音色,且先只教 3 个。
  4. 错一音即死 / 「机会账」+ 双击耗机会 → 免费重听 + 第三次放慢,无机会货币。
  5. sfx/correct/wrong 与音色同质 → 对错用语音短句 + 回执;内容结束音 sfx/gameover 保留。

2. 音频层

  • 对局不加载 BGM。间隙保持静默,利于记忆。
  • 六音色映射不变:上=上行琶音 / 下=下行低音 / 左=左声道弹拨 / 右=右声道弹拨 / 单击=底鼓 / 双击=双连响。未解锁的音色不进序列、不进教学。
  • sfx/gameover 保留。sfx/correct、sfx/wrong 不作为对错主通道。
  • sfx/input_open:进入答题的边界标记(S2 保留)。无语音链的轮次不要再叠 turn earcon 与 input_open。
  • 播放序列时每个音可叠极轻 beat 震作 chunking;回执声仍要响(播放期误触=busy 声,不再静默忽略)。

3. 旁白整句(保留句数,改交互口径)

类型 句数 说明
轮次 21 「第一轮,听好了。」…「第二十轮」;>20:「新的一轮,听好了。」
成绩 6 按完成轮数分段,原文档位保留
新纪录 1 「新纪录!」
教学 按已解锁音色,一次一句 禁止开场把六种声音一次讲完
流程 含「轮到你了。」「单击,再来一局。」 删除机会账相关句
反馈 「对。」「错了。是向左滑。」 肯定 ≤4 字;归因含正确手势

SPEAKER 常量沿用 female=Serena / male=Uncle_Fu。


4. 播放 / 答题节奏

播放 BUSY:序列不可打断。任何手势=busy,序列不变。最后一个音完 400ms 后 yieldTurn:input_open + turn + 等待声。

答题 YOUR_TURN:

事件 声音
做出已解锁手势 立即回声该音色(silent-ok)
整轮正确 每轮「对。」或仅提示音(连续 3 次对后撤离语音)
答错 1~2 invalid 语义用内容错音可选 + 归因 + 免费重听
长按 状态句,不闭窗
未解锁手势 invalid + 该格首次解释

结算链只在结算屏交付;进菜单则挂起,回结算屏补播(S6 保留)。承诺「单击,再来一局」与相位一致。your_turn 每局教一次,复活/重听不再重念(S7 保留)。


5. 交互式教学(只教已解锁)

步 内容
T0 「音序回响。点一下屏幕。」立刻动手
T1 单击音色 → 玩家点一次
T2 左滑音色 → 玩家左滑
T3 右滑音色 → 玩家右滑
T4 「记住顺序,原样复现。」→ 第一轮 2 音

上/下/双击不在首局教学出现。做对:「对。」马上下一步。做错:纠正,不惩罚。同一手势错 3 次:迷茫 L3 只给提示音或演示该手势。

禁止:下滑跳过教学绑在「向下=音色」上。回访者 best>0:开场「点一下开始」,跳过已会的音色课。


6. 难度曲线(保留数字,去掉机会)

interval(round) = max(420, 700 - (round - 1) * 25)   // 第 12 轮到 420ms 下限
  • 长度 = round + 1,从 2 开始。
  • 前 5 轮:禁止同一手势连 3 次;第 1 轮两音不同手势。
  • 全轮次:禁止连 4 个同手势。
  • 重听序列不变。
  • 序列只从当前已解锁音色池抽样。

best 写进度存储,带 summary。


7. 状态机

tutorial → announce → playback → input → (replay) → roundend → … → gameover

菜单:阶段 2 以后,结算下滑呼出;左右滑切换、单击确认。废止双击确认、双击耗机会重听。


8. 资产变动

  • 不播 bgm/theme。
  • 新录/停用:机会账句、六音色一次讲完的旧 T7、双击重听教学。
  • 保留:6 个 tone_*、sfx/gameover、sfx/input_open、轮次/成绩整句、状态查询分档句(删「重听账目/机会桶」枝,只保留轮次与进度档)。

9. 废止清单

废止 改为
每局机会货币;双击耗机会重听;答错扣机会 1~2 次免费重听;第 3 次放慢;无机会账
开场教完全部六音色 先 3 个,其余按轮次解锁
新手期双击=重听或答题 双击不存在;入池前当单击
播放期误触静默 busy 回执,序列不变
对错只靠震动 / 删除提示音后无声 回执 + 短语音;震动可叠加
菜单单击循环+双击确认 左右滑+单击
your_turn 每轮重念 每局一次
上滑与双击双义重听 帮助=长按;主动重听=迷茫 L2 或阶段 3 双击(仅重听当前序列完整播放,不绑破坏)

S1–S7 状态透明层(input_open、长按查询、结算链看守)在不与上表冲突的范围内保留。