150 lines
16 KiB
Markdown
150 lines
16 KiB
Markdown
# 纯音频游戏交互设计方法论(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 教训:正片有归因而教学没有=好钢用在刀背上)。**归因真话律:归因句必须与玩家实际行为严格对应,「宁可粗、不可假」**——没出手被报「慢了半拍」会让玩家学会不信任一切归因(round3 视障评委实测证伪「无尝试归入迟到」的偷懒合并)。**资源账目真实**:有限资源(机会/生命/货币)在消耗时播报真实余量,教学承诺与运行时账目必须一致。
|
||
- **A5 零惩罚教学**:学习期(首局/前 2 次失败)不扣任何资源、自动降难;首胜 ≤3 分钟保送;**需要超过一句话解释的机制直接砍掉**(Blind Drive 铁律);**教学看玩家表现**——成功即时确认(新句),失败才给补救,绝不在成功后继续灌补救教学(round1 教训:「我都挡住了它还说来不及」= 被当成白痴时刻)。
|
||
- **A6 全局一致**:同一语义永远同一声音/震动(跨 6 款游戏);**探索-激活分离**——单击预览/播报,双击执行(读屏惯例,资深视障玩家零学习成本)。**手势语义可预测律**:当一手势在「答案词表」与「系统键」间-context 两义时,判据必须在**轮次开始前用语音宣告**(「这一轮,向上滑是作答」),不能藏在游戏内部逻辑里让玩家猜(round2→round3 两轮三人设收敛教训:换一个重听键只是移动冲突,占用预告才是根治)。
|
||
- **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.25~0.4s、单音符 ≥0.08s、每秒 ≤6 音符、频带 125Hz~5kHz、响度高于 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 会话层 ——「随时来,随时走,随时接着玩」
|
||
- 单局 3~5 分钟结构:≤10s 可操作开局 → 单峰爬升 → 高潮 → 15~30s 结算;每 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/01~05 各报告末尾来源列表(合计 100+ 条);本项目用户反馈裁定档案 docs/design/00~13。*
|