本文主要指游戏中的界面
抬头显示器,游戏里有时也称为覆层(Overlay),3D 场景上面再覆盖一层 2D 的界面显示信息
Head-up display - Wikipedia
HUD 最早来自飞行辅助驾驶,即下图中的玻璃板
一般意义的界面,和 App 界面差不多
Panel (computer software) - Wikipedia
下图是 Prey 的技能加点界面
Loot
Inventory
Loot
小地图
大地图
其实从纯引擎程序的角度,HUD 和 Panel 并没有区别,都是 2D UI,一样构造控件树进行布局和渲染
以我不太多的开发经验,有一天我发现我好像不太能区分我现在在做的是一个 HUD 还是一个 Panel,所以。。
常驻 HUD 会占据屏幕的一部分面积,挡住 3D 场景
如果界面屏占比很高,花里胡哨的会降低沉浸感
HUD 要做到需要可视化一些关键元素,而过于侵入式的复杂信息要放到 Panel 中
HUD on
HUD off
HUD 可操作交互的数量是有限的,因为按键是有限的,你还需要大部分按键用来操作 3D 游戏
实际上,大部分 HUD 并没有分配输入控制
没有输入的 HUD 分两种,常驻 HUD 显示玩家状态,比如血量,小地图;
非常驻 HUD 暗示游戏事件触发,比如播报
输入导航,简单来说,就是鼠标 Cursor,和手柄上下左右十字键,以及摇杆
HUD 不需要导航,Panel 需要导航
因为导航的输入控制和游戏 3D 操作是冲突的,比如角色移动和视角移动
所以需要按下 Esc 呼出 Panel,暂停游戏的 3D 部分操作,把控制权交给 Panel 进行操作
不过有例外情况,本质上是 Contextual Input,在一定状态下,可以把部分输入控制移交给 HUD 导航
比如 Prey 里 Loot 的时候,可以用十字键导航 Loot Container 里的 Slot,而离开 Loot 范围,退出 Loot 状态,十字键又是一般的快捷键了
HUD 只有一层,Panel 可以嵌套成界面栈,按 Esc 一层层返回
写过类似 Panel Manager 的想必更加深刻理解
比如 PUBG 吃鸡,线上多人射击竞技,实时性高,所以 HUD 比重多一些,尽量减少玩家“暂停”游戏操作界面的机会
比如文明5,策略经营,下棋类,Panel 比重多一些,慢慢看,慢慢想,也不着急,每走一步都可以暂停
玩家使用这个界面元素时,体验的哪种时间观?下面给出一些关键字:
其实和前面提到的实时性有一些交集
HUD 强调当前状态,当前发生了什么事情
Panel 则强调过去和未来,之前已经做了什么,接下来要怎么规划