Files
2026-10-01 23:26:47 +08:00

7.4 KiB
Raw Permalink Blame History

14 · 发言权、向导与迷茫接管(26 号对齐)

给开发者的实现要点摘要

  1. 本文取代 v1~v4「只靠 earcon + 静默看门狗 + queue 插播」的向导层。新骨架:Floor(发言权)+ 回执 + 三档提示 + 迷茫检测。模块示意见 26 号 §4.1~§4.5。
  2. guide.js 的 8 个 earcon 词表保留(menu/explore/battle/choice/settle/danger/turn/nudge)。turn 仍是交接提示音。
  3. 看门狗不再原样重播帮助长句。同一等待点用三档:完整句 → 短句 → 只响 turn/nudge。
  4. 纠错、提示类语音:空闲才播,过期丢弃;玩家一操作就清空。禁止排到长链尾。
  5. 文末档案保留 v1~v4 台词 id,供资产对照。交互规则以本文前半与 26 号为准。

交互权威:26-audio-interaction-playbook.md;全局口径:00-global-ux.md §6。


1. 六个引擎模块(施工)

模块 职责 关键 API(示意)
Floor SPEAKING / YOUR_TURN / BUSY / ACTION;整链 duck;等待声 speak(ids) yieldTurn(waitPoint) handleInput(g)
Receipts ok / invalid / busy 合成短音 play('ok'|'invalid'|'busy')
Hints 三档选择 + 30s 台账去重 pick(waitPoint) replayOnRequest()
Confusion 乱点/无效/重听/失败/静默加权 record* → onConfused(level)
Novice 手势解锁、doubleTapWindow: 0、回车当单击 unlocked(g) map(g)
Pipeline 手势先过 Floor → Confusion → 游戏 → 回执 makeInputPipeline(...)

settings.guide:

  • full:等待声 + 三档语音 + 回执 + 迷茫接管。
  • standard:等待声 + 回执 + 提示音,无向导语音。
  • off:回执仍在;不挂看门狗与迷茫定时器。回归测试用。

2. 发言权规则

  1. speak() 进入 SPEAKING,整条链结束才离开。句间不 unduck、不起等待声。
  2. 链结束只能去 YOUR_TURN 或 BUSY,禁止「什么都不是」的安静。
  3. yieldTurn():guide.turn → 400ms 后等待声 → 挂该等待点的提示计时与迷茫。
  4. 打断:单击跳句;滑动/帮助打断整链并执行。critical 句给 busy。
  5. 等待声参数见 26 §4.1。超过 20s 间隔拉长到 2.5s。玩家操作 80ms 内淡出。

3. 三档提示与看门狗

每个等待点配置 full / short / earcon,外加静默阈值。

游戏类型 第 1 级 第 2 级 之后
动作 / 探索 5~8s 播 short 或 full(第一次) 再 8~12s 只 earcon 停,只留等待声
剧情 15~20s 只说操作方式 再 15~20s earcon 停

禁止第 2 次仍播与第 1 次相同的完整句。玩家主动重听:sys_say_again + full。

旧 escape 60/120/180s 卡关计时器并入迷茫接管:无进展视为静默信号,L1 短目标句、L2 只放行导航方向、L3 游戏走一步。不再单独「带路级长句周期轰炸」。

4. 迷茫三级接管

信号与权重见 26 §4.5。达到 2 分触发,15s 冷却。

级 行为
1 该等待点 short 句
2 只保留一个正确手势,其余 invalid
3 「听我做一次。」演示一步 →「现在你来。」

同一等待点升到 3 后停止接管,只留等待声。

5. 语音类别与 idle-only

类别 打断 过期
critical 否(busy) 否
content 是 否
hint 是 1.5s 播不出则丢
feedback 是 1.0s 播不出则丢

旧 guide._say 对 error/watchdog 的 idle-only 保留并推广到所有 hint/feedback。turn 的 earcon 立即发,不排队。

6. 状态 earcon 教学义务

8 个签名音保留。新手期只暴露该游戏用到的 ≤3 个。第一次出现必须配一句,例如「听到这个声音,就是轮到你了。」(配 turn)。未教过的 earcon 对新手等于没有。

7. 全项目共用新台词(各游戏旁白音色各录一份,或引擎共享 sys_*)

id 全文 类别
sys_first_tap 点一下屏幕。 critical
sys_turn_teach 听到这个声音,就是轮到你了。 content
sys_say_again 再说一遍: content
sys_where (由游戏填:位置。目标。一个动作。) content
sys_demo 听我做一次。 hint
sys_now_you 现在你来。 hint
sys_only_tap 现在只要点一下。 hint
sys_unlock_up 想知道自己在哪,就向上滑。 content
sys_unlock_hold 想知道自己在哪,就按住屏幕。 content
sys_unlock_menu 向下滑,可以打开菜单。 content
sys_unlock_replay 没听清,就双击,再听一遍。 content
sys_confirm_ok 对。 feedback

游戏专属 short 句在各自 voice-ids 的「26 号增补」节。

8. 与旧逐游戏接线的对照(废止项)

旧接线 废止原因
storyline 看门狗重播 help+进度 反模式:原样重复长说明书
storyline 双击=整节点重播 连点误触;改为阶段 3 才重听当前句
simon 双击重听 / 上滑重听双义 新手期无双击;帮助改长按;免费重听改迷茫 L2
simon「免费机会有两次」账目 新手期失败不扣资源(原则 15)
rhythm 只在静默时提醒 补乱点迷茫;演奏期 ACTION 不插等待声
escape 双击使用物品 / 双击求提示 单击合并检查+使用;帮助改长按
向导语音永不顶掉 玩家操作必须顶掉非 critical
onceKey 同局只说一次纠错 改为每个状态×手势解释一次,之后只回执;连续 3 次无效进迷茫

playtest 在 guide='off' 时仍测纯玩法。新增乱点机器人必须 guide='full'(26 §6.2)。


档案:v1~v4 裁定与台词 id(交互规则已废止)

以下各节原文是 R7 / round2~4 的落地记录,只作资产对照:已生成的 gd_* 文件不要无故删除;文案与新手期冲突的(如「双击重新听」)须重录或停用。

A. earcon 词表(仍有效)

名 音色家族 节奏 语义
menu 柔和正弦双音 下行二度 系统界面
explore 温暖三角波单音 单音长尾 探索/安全
battle 略紧方波双音 上行纯五度 战斗
choice 清亮正弦三音 上行琶音 抉择
settle 柔和三音 下行三连 结算
danger 低频双音 急促重复 危险
turn 风铃单音 短 轮到你了
nudge 木鱼单音 极短 轻提醒

参数:总长 0.25~0.4s,单音 ≥0.08s,125Hz~5kHz,总增益 ≈0.12。

B. 仍可复用的短句(需核对手势口径)

可用(含义不绑双击):gd_continue「轻触屏幕,继续。」、gd_brief、gd_again「还在吗?单击继续。」、gd_clear「漂亮,过了。」、tut_b2b「挡得漂亮。」、gd_wrap_first/last、gd_next_fuse、gd_room_*、dir_*、gd_miss_none「这拍没接。」、gd_slow「我放慢一些,跟着试试。」、gd_count「四拍之后,继续。」

须停用或重录:任何「双击可以重新听」类(gd_relisten 旧文、t7_retry 旧文、gd_economy 旧文)。帮助入口改为上滑或长按后,占用预告 gd_occ_* 仅在阶段 3 双击入池后才有意义。

v1~v4 的 F1~H5 实现细节见 git 历史与 research/04-playtests/。新开发不要再按那些看门狗秒数接线。