14 · UX、引导与可访问性
系统能不能被玩家感知,决定了它是否存在。没有 juice 的机制在玩家感知里等于不存在。
1. 前 60 秒(最重要的 60 秒)
目标:玩家完成核心动词并成功一次。
| 时间 |
必须发生 |
| 0–10s |
玩家开始操作(不是看动画) |
| 10–30s |
玩家理解"我要做什么" |
| 30–60s |
玩家成功一次,获得 fiero(胜任感) |
静默测试(唯一可信的检验):找 5–6 个没玩过的人,一句话不说看他们玩前 60 秒,记录每个卡顿点。
任何"需要你解释"的地方,都是设计缺陷。
2. 教学分层模型 L0–L4
| 层 |
做法 |
介入强度 |
例子 |
| L0 环境层 |
关卡布局/光照/敌人摆放即教学 |
无 |
Mario 1-1 的第一个蘑菇怪 |
| L1 情境提示 JIT |
首次触发 1 行 + 图示,不冻结,可关闭,最多出现 2 次 |
弱 |
按键提示 |
| L2 安全练习场 |
无惩罚空间 |
中 |
Celeste 引入冲刺的房间、沙盒模式 |
| L3 组合与转折 |
introduce → develop → twist |
强 |
Portal 逐室解锁 |
| L4 可查阅层 |
百科、tooltip、按键速查 |
被动 |
百科全书 |
优先级:L0 > L1 > L2 > L3 > L4。 大量使用 L4(文字说明)是教学失败的标志。
教学十准则
- 前 60 秒必须完成"我懂核心动词 + 我成功过一次"
- 一次只教一个机制;两个概念抢注意力就拆开
- 让环境提问,让玩家的动作回答 —— 不写说明
- 绝不为了弹提示而冻结输入/夺走摄像机
- 早期失败廉价、可恢复、不惩罚好奇心
- 因果可视化代替文字(Balatro 用 300ms 触发动画替代整页教程)
- 渐进披露:先给 3 个选项,掌握后再开到 6 个
- 提示三要素:是什么 / 为什么是现在 / 怎么关掉
- 给老玩家逃生口:教学可跳过、提示可关闭
- 静默测试(见 §1)
复杂度预算
| 阶段 |
玩家需同时掌握的规则数上限 |
| 前 10 分钟 |
1–2 |
| 前 1 小时 |
3–5 |
| 前 5 小时 |
6–9 |
| 精通期 |
不限(但每个都必须可视化) |
3. HUD 与信息层级
| # |
准则 |
数值 |
| 1 |
常驻视觉区块 |
≤ 5–7 个 |
| 2 |
需秒级响应的元素 |
≤ 2–3 个 |
| 3 |
同屏信息块 |
≤ 4(工作记忆 4±1) |
| 4 |
三层法则 |
只看得到"要不要行动" → 才看到"数值" → 最后"背景/叙事"(第 3 层默认关闭) |
| 5 |
菜单可达性 |
任何功能从主界面 ≤ 3 次点击 |
| 6 |
列表必备 |
筛选 + 排序 + 搜索 + 批量操作 |
| 7 |
少即是多 |
新功能优先合并进已有入口,不新增页签 |
| 8 |
HUD 只显示可行动资源 |
不显示被动数值(Doom Eternal:血/弹/链锯三件套) |
可读性数值
| 项 |
标准 |
| 对比度 |
正文 ≥ 4.5:1(WCAG AA);大字(≥24px 或粗体 ≥14pt)≥ 3:1 |
| 字号 |
PC 正文 ≥ 16px;电视 10-foot UI 字高 ≥ 屏高 2.5–3%(1080p 约 28–32px);移动 ≥ 16px |
| 行宽 |
40–60 字符/行(中文 20–35 字),行高 1.4–1.6 |
| 颜色不做唯一信息通道 |
必须叠加形状/图标/文字/纹理(色觉障碍约 8% 男性) |
| 字幕 |
1080p ≥ 24px、带说话人标签、半透明底衬、可在任何声音播放前就开启 |
| 本地化 |
预留 30–40% 文本膨胀空间 |
4. 反馈与手感
| 项 |
标准 |
| 输入延迟 |
端到端 < 50ms;动作/音游 ≤ 3–4 帧;UI 点击反馈 ≤ 100ms |
| 帧预算 |
60fps = 16.7ms |
| 反馈动画时长 |
100–300ms;> 400ms 会阻塞操作感 |
| 输入宽容 |
输入缓冲 80–150ms + coyote time |
| 可点击目标 |
触摸 ≥ 44×44 px(推荐 48×48dp ≈ 9mm),间距 ≥ 8dp |
Juice 五层(强度即信息)
形变(squash & stretch)+ 粒子 + 屏幕震动 + 数字滚动 + 音效。
每层携带独立信息,强度与事件重要性成正比。
Balatro 用震幅当"这手牌有多大"的数据通道 —— 反馈不只是装饰,它是信息通道。
Diegetic 选型
| 类型 |
适用 |
| Diegetic / Spatial(世界内) |
沉浸优先(Dead Space 血条) |
| Non-diegetic(屏幕 UI) |
信息密度与竞技性优先(RTS、战棋) |
| Meta(元层) |
仅在需要表达角色心理时 |
同屏混用不超过 2 类。
5. 可访问性清单(独立游戏低成本版)
P0(发布前必备,几乎零成本,被投诉最多的四项优先)
- 全键位可重映射(含手柄)
- 文本与 UI 缩放 ≥ 3 档
- 色盲模式(红绿/蓝黄三型)+ 形状冗余
- 字幕系统(大小/背景/说话人)
- 音量分轨:主/音效/语音/音乐独立
- 关键信息不靠颜色或声音单独传递
- 闪烁 > 3Hz 的警告可关闭(光敏性约 1/4000)
- 所有设置持久化
- 文本可自行推进、可暂停
- 提供宽泛的难度档位
P1(少量设计工时)
- 颗粒化辅助选项(速度 50–100%、无敌、额外资源、辅助瞄准),可正交组合
- 按住 → 切换(toggle)选项
- 可关闭屏幕震动/背景滚动/动态模糊/景深
- 避免或可跳过 QTE 与连打
- 支持多输入设备 + 单手模式
- 游戏内随时可查操作/目标速查
- 自动存档 + 手动存档
P2(有余力再做)
- HUD 可重排/缩放、多套高对比配色、环境音字幕、菜单级屏幕阅读器、
把可访问性写进商店页与首屏设置页、招募障碍玩家参与测试
文案原则:叫"辅助工具"不叫"简单模式";不锁成就、不标记存档(Celeste 框架)。
6. 系统侧的 UX 责任清单
每个系统交付时必须回答:
| # |
问 |
| 1 |
玩家怎么知道这个系统存在? |
| 2 |
玩家怎么知道它现在可用? |
| 3 |
玩家怎么知道自己的选择生效了? |
| 4 |
玩家怎么知道自己错了? |
| 5 |
玩家怎么查详细信息? |
| 6 |
熟练玩家怎么跳过/加速? |
| 7 |
这个系统在屏幕上的常驻成本是多少?(HUD 预算) |
7. 反模式
| 症状 |
修法 |
| 教程文字墙 / 强制教程关 |
L0 环境教学 + JIT 提示,可跳过 |
| 弹提示时冻结输入和镜头 |
边玩边教,提示非模态 |
| 开局 6 个机制同时砸过来 |
一次一个,逐层叠加 |
| 早期死亡惩罚重、重试 > 15s |
房间级重生,< 5s |
| HUD 塞满、常驻噪声 |
常驻 ≤ 5–7 个,第 3 层默认隐藏 |
| 用颜色/声音单独区分敌我 |
加形状/图标/文字冗余 |
| 菜单层级 > 3 层 |
三层可达 + 搜索 + 默认筛选 |
| 只有三档难度 |
颗粒化辅助选项 |
| 反馈过度(全屏闪白 + 常驻震动) |
强度分级、可关闭、时长 ≤ 300ms |
| 输入延迟 > 100ms / 无输入缓冲 |
端到端 < 50ms,加 buffer 与 coyote time |
| 日常任务制造 FOMO |
可补做/长周期/叙事驱动 |
| 首局无成就感事件就结束 |
前 60 秒安排一次 fiero |
| 只做一套字体与行高 |
预留 30–40% 膨胀空间 |
8. 参考
- Game Accessibility Guidelines(gameaccessibilityguidelines.com)—— Basic / Intermediate / 全量
- Xbox Accessibility Guidelines(XAG,含光敏性 XAG 118)
- Steve Swink《Game Feel》;Vlambeer《Juice It or Lose It》(GDC 2012)
- Celia Hodent《The Gamer's Brain》
- WCAG 对比度与点击目标标准