Files
SoundGame/research/02-methodology/methodology.md
T

16 KiB
Raw Blame History

纯音频游戏交互设计方法论(v1.0)

本研究项目的核心交付物。综合 5 路文献调研(research/01-literature/)+ 本项目 6 款游戏的交互清点(research/03-schemes/game-inventory.md)+ 两轮玩家代理试玩验证(research/04-playtests/)得出。 用法:设计/评审任何纯音频游戏交互时,按 §3 交互栈逐层过一遍,用 §4 决策规则按(游戏类型 × 用户 × 场景)推导参数,用 §5 度量验收,§6 反模式一票否决。


0. 一句话总纲

视觉游戏的画面是一层「空间上常驻、可随时回读」的信息;听觉是一层「时间上串行、过耳即逝」的信息。纯音频游戏交互设计的中心问题,就是用时间上可预测的声音结构,重建空间上常驻的信息层——让玩家在任意时刻都能在 2 秒内答出:我在哪、在发生什么、轮到我了吗、我该做什么。

玩家「不知道自己处于什么状态」的根因不是声音太少,而是状态信号不可预测:事件层的音效很多,但缺少「可预期的、成结构的状态表达」。由此得出下面的公理与栈。

1. 四通道模型(原语)

通道 带宽 时间特性 承载 约束
语音 TTS 高(≈4.5字/秒) 串行、独占、慢 指令、归因、状态查询、叙事 并发 ≤2 条(CHI'25);必须可打断、逐句跳过、可重听;语速可调(视障档至 ≥2.2×)
音效/earcon 低(每音 1~3 bit) 即时、可叠 事件刻画、信息类别前缀、回合标记 同类事件跨游戏同音色(Friberg 分类学);写实声学须夸张化才可读(BlindSide 教训)
音乐/BGM 中(情绪+结构) 连续、常驻 宏观状态签名、进度段落、紧张度 状态→曲目一一对应(「状态即音乐」已有规范);语音播放时 duck 至 20%
震动 极低(10~25 个可学模式) 即时、独占 操作反馈(对/错)、离散事件、静默场景兜底 iOS 无震动→静默降级绝不回退提示音(既有裁定);静音玩法(摸鱼档)震动语言 ≤6 语义

分工铁律:语音说「你要做什么」,音效说「正在发生什么类别的事」,音乐说「你在哪个状态」,震动说「你刚才那下对不对」。四者语义不得混用——用户反馈⑦的根因(提示音混淆)就是音效抢了震动的语义。

2. 七条设计公理(不可妥协)

  • A1 状态常显:任何时刻玩家都能用两个途径获知状态——被动:BGM 状态签名 2 秒可辨;主动:status key 手势随时查询「我在哪/有什么/能做什么」。二者都必须存在。
  • A2 回合明确:等待输入的每一个边界都有标记(turn cue 音+可选语音),动作类游戏每回合/每应答窗口都算,不能只标第一次;任何等待 >3 秒必须有声(进度音/环境声/心跳),绝无静默死局;暂停/中断恢复回到实时玩法时必须有 count-in(拍点)或局面复述,否则恢复后第一拍注定失败。
  • A3 信息分层:关键事件 > 指令播报 > 环境氛围,用音量域+音色域区分优先级;并发语音 ≤2,其余排队或降级为音效。
  • A4 归因闭环:失败后 ≤2 秒内语音回答三问:为什么输(具体行为,能分档就分档:早了/晚了/方向错)、差多少(量化差距)、下次一条建议;随后重试入口 ≤2 秒。失败不可归因是弃游强预测因子(CHI'25)。教学期失败尤其要归因——「没关系」不是归因(round1 教训:正片有归因而教学没有=好钢用在刀背上)。
  • A5 零惩罚教学:学习期(首局/前 2 次失败)不扣任何资源、自动降难;首胜 ≤3 分钟保送;需要超过一句话解释的机制直接砍掉(Blind Drive 铁律);教学看玩家表现——成功即时确认(新句),失败才给补救,绝不在成功后继续灌补救教学(round1 教训:「我都挡住了它还说来不及」= 被当成白痴时刻)。
  • A6 全局一致:同一语义永远同一声音/震动(跨 6 款游戏);探索-激活分离——单击预览/播报,双击执行(读屏惯例,资深视障玩家零学习成本)。
  • A7 场景显式:手机网页拿不到可靠上下文传感器——场景适配做成入口显式选择 + 记忆上次选择(通勤/摸鱼/睡前/下班四档参数包),不搞自动切换(A 与 B 的响度需求互斥)。

3. 交互栈(五层,逐层实现状态感知)

L1 反馈层 ——「你刚才那下,机器收到了」

  • 每次触摸(含无效手势)≤100ms 给确认:震动(引擎已内置 swipe/confirm/error)+ 结果性音效 ≤1s。
  • 无效手势给 error 震动 + 纠错语音(见 L4),绝不静默(storyline 现状:无效手势零反馈,必须修)。
  • 反模式:只在「做对」时有反馈;错误时静默或只震不说。

L2 事件层 ——「发生了什么类别的事」

  • 每个可交互对象/事件一个独特音色,按 Friberg 五分类(avatar/object/character/ornamental/instruction)管理词汇表。
  • earcon 只做「粗类别」标记,语义靠语音承载:实验结论——earcon 达到 100% 识别平均要 8.5 轮训练,语音只需 1.14 轮(Dingler & Lindsay, ICAD 2008);元分析排序为 语音 ≈ spearcon > 混合告警 > 拟真音 > earcon。因此:类别 earcon 全游戏 ≤5~7 个、开场显式教一次、只回答「这条信息要不要行动」,具体内容永远用语音说。
  • earcon 合成硬参数(Brewster 指南):总长 0.250.4s、单音符 ≥0.08s、每秒 ≤6 音符、频带 125Hz5kHz、响度高于 BGM 背景约 +10dB;类别区分用「音色定家族 → 节奏定子类 → 音高细分」的层级结构(音高单独区分需要 2~3 个八度,不可依赖)。
  • 威胁类事件必须有前置预警窗:预警音 → 判定的时间窗 1.5~2s 起调(Blind Drive P3),预警强度随距离/紧迫度连续上升;告警三重呈现=快起音宽音域 earcon + 语音 + 震动。
  • 反模式:所有音效同等响度同等音色域;用写实但不可读的声学;用 earcon 承载需要「听懂」的精细语义;pitch 单音高区分状态。

L3 状态层 ——「我在哪」(本方法论的核心层)

  • 状态 earcon 签名:每个宏观状态(菜单/探索/战斗/抉择/结算/危险,全项目共 6 个,不多做)绑定一个 2~3 音签名 earcon(家族=音色、子类=节奏,见 L2 参数),进入状态时播(不是退出时);签名跨游戏同族(菜单永远是那两个下行音);开场教学里把 6 个签名各教一次(「听到这个音=进入战斗」)。
  • 状态即音乐:状态 BGM 一一对应(既有 10 号规范),音乐段落编码进度;并发声流 ≤2(ASA:人同时只能注意 1~2 条声流;并发 earcon 识别率仅 ~30%,McGookin & Brewster)。
  • 被动阈值播报:生命/时间/资源在 75/50/25/15% 节点自动短促播报(配独立音色+震动),<15% 转持续脉动;杜绝「毫无预兆死亡」。
  • status key:全局手势(长按/上滑)随时播报:游戏名/阶段/生命与关键资源/当前目标/当前可用手势清单(三十年音频游戏惯例);单次播报 ≤3 个选项(听觉工作记忆 ≈4 chunks,Cowan 2001)。
  • 全局混音签名(P7):状态不只靠提示音——低血量=全声场闷化/心跳叠加,让「耳朵里整体感觉不对」。
  • 反模式:只在大厅有状态表达,局内没有;状态查询要进二级菜单;签名 earcon 超过 6 个或不在教学里出现。

L4 引导层 ——「向导」

  • 向导人设:一个角色化系统声持续播报方位/下一步(A Blind Legend 的 Louise 模式,P1);系统音与叙事音色分离(P2)。
  • 静默看门狗:等待输入无操作 3~5s → 轻 turn cue 复述;二次 escalate 播上下文提示;之后停止(不轰炸)。提示永不逐字重复——同一等待点的第 2 次提示必须是新短句或纯音频标记(round1 四人设全票教训:逐字重播 26s 说明书 = 「罚听」,把「停下来回味」的玩家当成了卡死者);剧情/叙事类游戏的等待点是合法的回味时间,看门狗阈值加倍且只重申手势;纠错/提醒类语音空闲才播,过期丢弃(queue 尾部迟到的纠错句比不播更有害——它归因于已过去的错误)。卡关 60/120/180s 三级提示(escape 已有,推广到全游戏)。
  • 开场三要素模板(P9):每局开场 ≤60s 讲完 地形/场景 → 目标 → 威胁音色预览(先在教学里听一次威胁声,实战才认得);首次进入某游戏时把该游戏用到的状态签名 earcon 各教一次(「这个音是战斗」),因为 earcon 不教不认识(8.5 轮训练结论)。
  • Prime→Teach→Observe:预听示范 → 首局中做一次 → 后续局自然复现;教学寄生局内、≤90s、永远可跳过;同一手势 10 分钟内 2~3 情境复现。
  • 向导等级设置:full(全语音向导)/standard(仅 earcon+关键语音)/off(老手),全局设置 + 每游戏入口显式问一次。
  • 反模式:弹窗式教学;开场不能跳的长教程;提示打断操作节奏。

L5 会话层 ——「随时来,随时走,随时接着玩」

  • 单局 35 分钟结构:≤10s 可操作开局 → 单峰爬升 → 高潮 → 1530s 结算;每 30~60s 一个奖励点。
  • 断点续玩:任意时刻可退出;重进 ≤5s 回到可玩状态,开局 5 秒语音局面复述(上次到哪/现在该做什么——被打断后恢复平均要 23 分钟,恢复成本游戏承担)。
  • 开环钩子:结算必含一个未完成项(Zeigarnik);奖励放下一局开头。
  • 失败结算 ≤15 秒必答 A4 三问。
  • 反模式:结算只有分数没有归因;退出丢进度;重进从头再来。

4. 决策规则:从(游戏类型 × 用户 × 场景)推导方案

方法论给出的不是单一方案,而是一台「推导机」:

4.1 游戏类型 → 状态层重点

游戏类型 信息结构 状态层重点(在本项目中的游戏)
叙事抉择型 线性节点+分支 抉择窗口标记(「请选择」earcon 前缀+选项预听)、进度段落化(幕/章)(storyline)
空间探索型 图状空间 方位连续参数映射(夹角→音高/距离→ping 节奏,Shades of Doom 参数表)、撞墙归因、目标方向信标 (escape)
记忆复现型 序列 听/答阶段切换标记(最强 turn cue 需求)、序列长度进度 (simon)
节奏跟随型 时间网格 领奏/应答角色切换标记、拍面锚点(beat 震+音已有)、判定反馈分级 (rhythm)
反应闪避型 连续流 威胁方位离散化(≤4 象限)、预警窗、受击归因、难度自适应三档 (space)
回合策略型 轮转 回合权轮转标记(谁回合)、指令菜单列表导航、格挡窗口纠错、血量阈值播报 (rpg)

4.2 用户 → 旋钮(叠加在基线上)

用户 默认向导等级 关键旋钮
视障玩家 standard(尊重专家,别当白痴) 语速上限 ≥2.2×、完整空间信息、读屏共存、绝不简化深度(反「把盲人当白痴」)
时间充裕大学生 standard 保留成长深度、引导全可跳过、开环钩子拉留存
时间紧张白领 full(上手快) 3 分钟一局、断点秒续、摸鱼档(静音震动玩法,≤6 震动语义)
疲惫工人 full 零新信息教学(只复用已学手势)、容错拉满、二值化反馈、低认知负荷

4.3 场景 → 参数包(入口显式选择,A7)

参数包 语速 响度/混音 单局 特有机制
A 通勤·噪声鲁棒 0.9×+句间停顿 关键信息两遍式、响度提亮 3 分钟、到站可弃 关键值重听零成本
B 摸鱼·静默震动 —(全静音) 仅震动语言 ≤3 分钟、随时弃 自动暂停+一句话续玩
C 睡前·助眠低负 默认 低音量暖音色 不限 睡眠定时器软着陆、失败即鼓励
D 下班·轻回血 默认 扬声器免耳机 短局 即时正反馈前置、容错拉满

推导算法:方案 = 全局基线(§3 全栈) → 按 4.1 加该游戏类型的重点项 → 按 4.2 设用户旋钮 → 按 4.3 叠场景参数包。任何一步冲突时优先级:安全(听力/场合)> 状态感知 > 沉浸感。

5. 度量与验证(方法论的自证闭环)

三层验证,逐层便宜:

  1. 转写审计(自动化,每轮必跑):用玩家感知转写器(web/harness/)对每游戏生成整局信息流日志,自动统计四个指标:
    • turn cue 覆盖率:每个「等待输入」前是否有标记(目标 100%);
    • 静默死局数:等待输入且无声 >5s 的段数(目标 0);
    • 归因完整率:失败事件后 2s 内有三问语音的比例(目标 100%);
    • 状态可辨识性:任意转写点,仅凭最近 2s 的声音事件能否判断宏观状态(抽查,目标 ≥95%)。
  2. 玩家代理评审(每轮必跑):4 人设(视障/大学生/白领/工人)读转写写心得,按「状态感知自评 1-5 / 我知道下一步该做什么吗 / 是否愿意继续玩 / P0 问题清单」结构化输出。结题门槛见章程 §4。
  3. 真机人类听测(发布前):音色美感、响度舒适、双耳定位精度、蓝牙延迟——代理无法替代(roadmap §4 既有流程)。

6. 反模式清单(一票否决)

  1. 静默死局:等待输入时无声无提示。
  2. 不可打断语音 / 不可重听的关键指令。
  3. 失败只给「错了」,不给归因与下一步。
  4. 数字/碎片拼接语音;一句话讲不完的机制。
  5. 提示音与游戏内容音混用同一语义域(反馈⑦根因)。
  6. 弹窗式/不可跳过教学;新手期惩罚性失败。
  7. 跨游戏语义不一致(同语义不同声、同声不同义)。
  8. 黑屏寂静的结算/等待(黑屏=崩溃误解,P13:屏幕要有呼吸感,音频同理要有生命迹象音)。
  9. 为「纯音频」而砍深度(视障社区最反感);反之,为深度而堆并发语音(>2 条)。
  10. 自动感知场景并切换参数(不可靠;要显式选择)。

7. 与本项目既有实现的差距表(落地索引)

方法论条目 本项目现状 差距动作
A1 状态 BGM ✅ 10 号规范已实现 无
A1 status key 部分(上滑=帮助/状态,各游戏实现不一) 统一内容模板:状态+目标+可用手势
A2 turn cue ❌(仅 rpg 有 turn_player) 引擎 guide 层统一实现
A2 静默看门狗 部分(escape 三级提示;storyline/simon 无) 引擎 guide 层统一实现
A4 归因闭环 部分(space 有归因语音;rhythm Miss 无语音) 逐游戏补纠错语音
A6 earcon 词表 ❌(无 earcon 体系) 引擎 guide 层运行时合成词表
A6 探索-激活分离 部分(菜单单击循环+双击确认已有) 保持,不全盘改单击语义(改动成本>收益,见方案文档裁定)
A7 场景参数包 ❌ 大厅入口场景选择(本轮先落参数包 A/C 的最小集,见方案文档分期)
L5 断点续玩 部分(rpg/escape 有存档;局面复述无) 重进时播局面复述一句
语音可打断/语速 ✅ 打断/长按快进/1.7× 已有 语速档补 2.2×(视障档)

参考来源:research/01-literature/0105 各报告末尾来源列表(合计 100+ 条);本项目用户反馈裁定档案 docs/design/0013。