Files
SoundGame/docs/design/12-skip-and-longpress-ux.md
2026-10-01 23:26:47 +08:00

4.3 KiB
Raw Permalink Blame History

12 · 跳过旁白、长按加速、帮助手势(26 号对齐)

给开发的实现要点摘要

  1. 单击跳过:voice 在播且本句可跳 → 跳当前这句(skipVoice,链继续)。无 voice 时单击 = 原语义。
  2. 跳过后 400ms 内再单击 = busy,不连跳两句、不误进下一段。
  3. 新手期无双击,不存在「双击=重听对偶」。重听是阶段 3 解锁,或玩家在等待点上滑/长按问「我在哪」。
  4. 长按:默认仍是旁白 1.7× 加速。若该游戏帮助手势是长按(四向滑动是玩法),对局中长按=帮助,关闭加速。
  5. 男女声边界核查结论保留在文末,无需修复。

交互权威:26 号原则 5、6、§4.1 打断规则;00-global-ux.md §5。


1. 单击跳过当前句

1.1 总则

  • 语境:SPEAKING 且本句非 critical → 单击 = skipVoice()(截断当前句,视为播完,链续)。给 ok。
  • critical 句:单击 = busy,不跳。
  • 无 voice:单击 = 各游戏原语义。
  • 统一跳下一句,不跳到节点末。
  • 跳过不给震动。
  • 连点:执行跳过或继续后 400ms 内,后续单击只 busy。

废止:靠 300ms 双击窗区分「跳过」和「重听」。新手期没有双击窗。

1.2 逐游戏裁定

游戏 阶段 单击跳本句? 说明
叙事类(storyline / radio / abyss / detective / cipher / keeper / teahouse) 剧情对白 是 最后一句被跳 = 进入等待点,不起连跳进下节点(400ms 防抖)
同上 抉择提示 否(critical 或 hold) 选项必须听完再选。单击 = 再听选项(「再说一遍:」+ 完整句)
escape 引导指令 否 指令即步骤。迷茫接管后再演示
escape PLAY 描述/卡关 是
escape 关键获得 否,且 ≤3s 标 critical 旧「<10s 不可跳」改为拆短:关键句本身 ≤3s
simon 教学指令 否 busy
simon 轮次/成绩播报 是
simon 序列播放 — 无 voice;手势 = busy 聆听不可打断序列
rhythm / drummer intro/结算/选曲 是
rhythm / drummer 演奏 手势是演奏,不走跳句 ACTION
space 演练指令 否
space 归因/结算/引入句 是 归因是 feedback,玩家已操作则作废不播
rpg / dungeon 场景/NPC 是
rpg / dungeon 战斗指令名、教学战、格挡窗口 否
全部 菜单项名 否 正在选

1.3 滑动打断

游戏在说时,左/右滑(及玩法所需的四向滑)= stopVoice() 作废当前链,然后执行这次滑动。排队中的 hint/feedback 清空。

上滑/长按帮助:同样打断,然后播一句「我在哪」。


2. 长按:加速 vs 帮助

2.1 默认:旁白加速

voice 播放中长按 ≥450ms → 当前句临时 max(1.7, settings.speed),松手恢复。BGM/sfx 不变。由引擎拦截,游戏收 longpress 与否见下。

2.2 帮助占用长按时,关闭加速

四向滑动是核心玩法的游戏(00 §5.3):对局与探索中长按 = 「我在哪」,setRateBoostEnabled(false)。菜单/结算旁白仍允许加速。

游戏 对局长按 旁白加速
escape / space / dungeon / hunt 帮助 关
rhythm / drummer 演奏+教学跟打 不用(演奏输入) 关
simon 序列播放 busy/忽略 关(该阶段无 voice)
simon 答题 帮助(状态句) —
storyline / rpg 探索 / new8 叙事 不占用 开
rpg 战斗 不占用;格挡不绑长按 开(前摇是 sfx,加速 voice 不影响判定)

2.3 首局发现性

大厅 footer:删除「单击有 300ms 延迟」。改为:「旁白中点一下跳过这句。想知道自己在哪,就向上滑(有的游戏是按住屏幕)。」

跳过与帮助都是核心能力,不再藏着等玩家摸索。首 3 分钟脚本里:第一次 SPEAKING 后的单击自然就是跳过;阶段 1 用一句教帮助,马上用一次。


3. 男女声边界核查(保留)

旁白走 voice/<gender>/,角色/NPC 走平铺 voice/。storyline / rpg 已核对符合,无需修复。

勘误保留:storyline n11_child 是旁白句不是角色音;RPG NPC 实际 14 id 不是 16。