(
映维网
2021年04月09日
)
Facebook
Reality Labs的开发者关系工程师泰德·迪诺拉(Ted DiNola)专注于游戏编程和设计工作已有超过10年时间,而他目前主要的工作是通过与双向沟通公司和开发者,并帮助创造一个充满活力的开发者生态系统。日前,迪诺拉为开发者社区撰文介绍了用于减少玩家挫败感的设计建议。下面是映维网的具体整理:
我给开发者的最常见的反馈之一是:在交互方面要更加“慷慨”。来自PC、主机、甚至移动环境的开发工作室已经习惯于支持离散交互,且具有高精度和完全可见性界面的平台。
对于虚拟现实应用,用户拥有更大的空间和更广泛的位置来进行交互。这意味着精确度通常较低,尤其是对于较新用户而言。另外,交互可能发生在视场边缘,甚至视场之外。
实时应用中的交互慷慨性并不是一个新概念。我们的目标是为交互提供适当的范围和缓冲,从而提供一种“差不多就行”的实现。在更复杂的实现中,你可以预测玩家的意图,以避免执行期望之外的交互。
一个常见的例子:跳跃。任何玩过《波斯王子》的人都清楚成功跳跃所需要的精度。跳得太早,你就无法跳过去;跳得太迟,你就会掉下去。现代的平台游戏增加了一定的“容忍度”,在双脚蹬地起跳时提供额外数帧。这有助于补偿显示刷新时间,允许玩家“预测”跳跃。同时,以及抵消神经信号传播所需的时间。
有些游戏会更进一步,并根据情景考虑玩家的意图。如果玩家起跳过早,但其意图是跳到另一个平台,你可以稍微调整一下轨迹以确保玩家能够平稳落地。对于重点不是精确跳跃过程的游戏而言,这种行为尤其重要。
1. 增加容忍度
在虚拟现实中,用户可以在一个360度的空间里与臂展之内的对象进行交互,甚至是更远范围的对象。如果你的大多数交互发生在彼此相距很远的位置,你可以采取的第一步就是增加用户交互发生的区域。当用户尝试与不直接眼看的对象进行交互时,这一点尤其重要。你在用户左侧皮带挂着一个工具吗?不要仅仅因为手没有碰到就忽略任何交互。如果玩家手臂放下并且检测到抓取输入,就让玩家拿起工具。在某些情况下,这种类型的交互可以是纯指向性。如果对象在3D空间中,特别是如果它没有锚定到玩家,增加“选择用于交互”触发空间可以达到相同的效果。
请注意,尽管这同时适合基于距离的交互,但如果你添加了离散的固定交互视觉效果(如指针“激光束”),你会希望确保触发空间足够紧凑,因为精度已经提升。然而,如果你允许在远距离进行“灵活”选择,它可以具有与近场交互相同的好处。
2. “粘性”
假设有几个用户希望与之交互的对象,无论是近场还是远处,而它们都相对靠近。
重要的是要确保用户不会意外地偏离预期选择。为了实现这一点,你可以给用户当前的交互空间更多的“权重”,直到其清楚地选择了一个对象。所述对象将成为新的选定对象,并且权重要大于其他任何交互空间。只有在明显看出用户正尝试与另一个对象交互时才进行切换。
对于额外的打磨优化,你同时可以根据手或控制器的movement delta触发更改。如果选择了一个对象,并且delta看起来很小,请停留在选定的对象。若看到一个很大的delta,这可能是用户尝试选择其他内容,这时你可以减少应用的额外权重。
3. 玩家意图
我们可以通过尝试预测用户来进一步理解这种设计理念。其中,我们可以依赖于游戏状态。假设你开发了一款益智游戏,而用户需要在一个真实的数字键盘中输入密码。数字都是紧密地间隔在一起,所以可以使用上面描述的“粘性”来在每个数字之间切换。在玩家知道正确的密码之前,你没有办法知道玩家会按到什么按钮,所以考虑意图并不重要。
接下来,我们知道玩家翻查了在书桌抽屉里发现的黑板,或者纸上潦草写的密码。然后玩家会再次回到数字键盘。这时,因为我们知道玩家已经大概知晓密码,所以我们可以根据序列为按钮赋予额外的权重。按下第一个按钮后,我们可以增加第二个按钮的重量,然后增加第三个按钮的重量,依此类推,直到密码输入顺序完成。
4. 整合所有
假设我们有一款包含沉浸式交互的第一人称射游戏。库存需要手动管理,武器需要手动装载和准备。接下来,我们分析一下玩家的交互尝试及其结果,并将交互慷慨性应用于两秒钟的“开火并重新装弹”顺序中。如果没有交互慷慨性,这种常见的“开火和重新装弹”顺序对玩家来说可能非常困难和令人沮丧,尤其是在战斗非常紧张激烈的时候。在应用交互慷慨性后,玩家可以更成功地执行一次又一次的“开火和重新装弹”过程,并且可以将注意力集中在来袭的目标。
回顾一下上面的例子:如果没有慷慨的交互,这种直接的交互有很多种方式会失败。尽管玩家感觉他们已经完成了所有任务,但武器可能很难瞄准或从手中掉落,弹膛可能无法正确弹出子弹,弹药可能无法抓取或装载等等。通过慷慨地对待所涉及的各个步骤,玩家更有可能完成预期的动作,并避免因失败而带来的挫败感。
5. 交互慷慨性的影响
不管你的应用类型是什么,在设计时若考虑到交互慷慨性,你可以显著减少玩家的挫败感,减少交互中断的感觉,并且减少重复尝试执行动作的需要。尤其是需要在短时间内执行一系列操作的体验,如果不慷慨,你有可能会给玩家造成非常大的挫败感。
6. 一些声明和建议
我们期待着看到你是如何为了避免玩家挫败感而实现慷慨的交互设计,并创造更令人满意的体验。
0