“Myst”柏拉图区块链数据智能中手部追踪的设计与实现。 垂直搜索。 人工智能。

《神秘岛》中手部追踪的设计与实现

运用 Presence Platform 升级后的手部追踪 API,我们在最近的更新中引入了手部追踪 神秘岛 在 Meta Quest 平台上,标题为“Hands & More”。 我们非常兴奋终于让人们玩 神秘岛 在没有物理控制器的 Quest 上! 在这篇文章中,我们将讨论在 神秘岛——特别是在虚幻引擎 4.27.2 中添加了对它的更多支持。

“Myst”柏拉图区块链数据智能中手部追踪的设计与实现。 垂直搜索。 人工智能。汉娜·加米尔的客座文章

Hannah Gamiel 是开发总监 青色——原作背后的工作室神秘' 游戏——并帮助开发了新的 '神秘 (2020)' 其中包括 VR 支持。 她最初来自纯技术背景,现在帮助领导所有作品的制作,并管理 Cyan 的业务和技术工作。 她曾制作过诸如“神秘”(2020 年)、“见证者”、“辫子,周年纪念版”、“引诱”、“苍穹”(即将推出!)等作品。

设计阶段和注意事项

为手部追踪设计导航

图片表明你想去哪里。 你可能想过指点,对吧? 这就是为什么我们选择使用“指向”方法来移动 神秘岛.

当你处于传送模式时,你可以指向你想去的地方,传送环就会出现在你的目的地。 当您“取消指向”时(通过伸展其余手指,或者只是将食指拉回手掌),就会执行传送。

当您处于平滑移动模式时,以自由移动为主的手(可以在我们的控件设置中进行配置,但默认为左手)指向将开始沿着您所指的方向平滑地移动您。

在使用指向进行游戏测试时,我们发现当您的其他手部遮挡时,用食指和中指进行手部跟踪有时会变得不可靠。 系统不确定这些手指是完全指向还是完全“封闭”在您的手中。 我们在代码中添加了一些“捏造”因素,以说明在这方面更稳定的运动启动/执行——我们稍后会在讨论对开箱即用的手部跟踪所做的更改时对此进行讨论虚幻引擎中的支持。

谈到

'point' 方法不适用于所有导航用途。 在转动方面,我们最初将指点与手腕旋转相结合。 比较玩家的手腕和相机的前向矢量将指示转弯的方向(以及转弯应该有多大)。我们最初尝试了这一点,因为在所有模式之间保持导航的“指向”主题似乎很直观。

然而,在舒适度测试中出现了并发症。 在游戏测试中,大多数玩家都会将手掌朝向地面指向前方,就像尝试指向游戏外的某物时一样。 当您的手掌面向地面时,左右旋转手腕(围绕手腕的上轴)具有挑战性,并且活动范围非常有限,尤其是在试图转离胸部时。

即使您要求玩家手掌朝内指向他们面前的某物,这个问题也是一样的。 你可以弯曲你的手腕 对于 你的身体相当多,但你不会得到相同的运动范围弯曲你的手腕远离你的身体。

那么我们是如何解决这个问题的呢? 我们最终将转向指定为“竖起大拇指”手势,而不是指针指向手势。

想象一下竖起大拇指。 现在左右转动手腕。 请注意,即使您没有大范围的运动,在此手势中用拇指指向“左”和“右”仍然相当一致。

这就是我们决定开启手部跟踪模式的原因。 虽然用拇指指点似乎不是最直观的转动方式,但它 做了 最终成为最舒适和最一致的方式。

使用快速转动时,将手腕从竖起大拇指的位置向左或向右旋转会启动一次快速转动。 然后,您必须将手放回“中心”(笔直向上)位置以重置快照,并且还要等待很短的冷却时间才能再次启动快照转弯。

平稳转动时,在竖起大拇指的位置转动手腕将开始向左或向右转动——一旦您离开一个“死区”,在您通过阈值之前不会发生转动。

处理运动和对象交互姿势之间的冲突

当然,指向手指的手势过于宽泛,无法假设仅用于导航。 出于习惯或他们自己的期望,人们会做出相同的指向手势来按下按钮或与世界上的其他事物交互。 走到那里会很刺耳(但不是 最多)一个按钮,用手指按下它,然后在游戏中突然(并且不必要地)靠近它(或无意中启动传送)!

我们防止在玩家可能与某物交互时发生移动的方法是,当做出“移动”手势的手在可交互对象的特定范围内时,防止任何移动代码触发。 这个范围已经根据游戏测试进行了多次调整,以达到一个好的“最佳位置”。

我们发现这个最佳位置距离食指指尖骨骼的世界空间位置大约 25 厘米。 神秘岛 充满了各种尺寸的交互式对象(从小按钮到非常大的杠杆),排列在宽敞的空间和狭窄的走廊中,所以我们花了很多时间来确定这个数字。 我们最初尝试了 60 厘米(约 25 英尺),但当玩家仍需要靠近物体时,这会阻止移动发生。 同样,当玩家试图抓住或触摸物体时,任何低于 XNUMX 厘米的东西都会导致触发不希望的玩家运动。

我们最好的测试区域之一是神秘岛的发电机房,在那里您穿过狭窄的入口通道,然后立即看到一个装满按钮的面板。 当交互测试区域过大时,由于检测到食指范围内的按钮,玩家无法通过入口进入面板。

也就是说,25 厘米是专门为 神秘岛. 如果其他游戏想要实现类似的东西,他们可能需要调整这个数字,并考虑到自己的标准。

为手部追踪设计对象交互

现在,所有可抓取的交互 神秘岛 专为手部追踪而设计——转动阀门、打开门、按下按钮、翻书页等等。

交互依赖于我们已经设置的内容 神秘岛 带有触摸控制器。 在那里,按下握把按钮会自动将您手的游戏内网格表示混合成“抓握”姿势,或者将您的手握成拳头(如果是空的)或抓住一个物体。 通过手部跟踪,我们添加了代码,可以对您何时弯曲手指足以“抓住”某物并启动与前面提到的相同的逻辑进行有条件的猜测。

例如,当您使用手部追踪并且您的手悬停在可抓取的东西上时,您的手部颜色会变为橙色(这正是您在 神秘岛 VR 也是如此)。 当您通过开始将手指卷成拳头来抓住可交互对象时,橙色球体将替换您的手部网格,并表示手与对象的连接位置。

我们之所以采用这种方法,而不是为您的手制作自定义可摆出的网格(或让您的手/手指看起来与这些对象的某些部分进行物理交互),是因为我们希望交互与我们提供的交互相同现在触摸控制器端。

按下按钮的工作方式有所不同。 由于按钮不是可抓取的对象,因此不需要抽象,相反,我们允许您使用在可摆手网格上的每个手指关节之间生成的胶囊碰撞器简单地按下按钮。 因此,你可以做各种奇怪而有趣的事情——比如如果你真的想的话,只用你的小指或无名指的指关节来与游戏中的每个按钮进行交互。

这种实现方式与触摸控制器与游戏中按钮的交互方式略有不同,因为我们通常希望玩家使用控制器上的抓握按钮将手设置为一个姿势的“手指指向”网格,以获得准确的游戏内按钮压在他们的头上。 借助手部跟踪,您可以用手创建的姿势显然具有更大的灵活性,因此以相同的准确度按下按钮的方式也显着增加。

菜单/用户界面交互

对于与菜单的交互,我们最终采用了 Meta 用于 Quest 平台的相同交互范例:拇指和食指之间的两指捏合,一只手。 这既可以用来打开我们的游戏内菜单,也可以用来与菜单中的元素进行交互。 当玩家第一次在 Quest 上启用手部跟踪时,已经在操作系统级别的菜单中教导他们这样做,在这里重新发明轮子是没有意义的!

将所有这些传达给玩家

因为手部追踪在 Quest 上的输入不像 Touch 控制器那样普遍,而且因为可能有人在玩 神秘岛 第一次(甚至是玩他们的第一个 VR 游戏!),我们尝试考虑如何将所有这些关于手部追踪的信息传达给玩家。 我们确保包含另一个版本的“控制器图”,专门用于描述手部跟踪交互(当在 神秘岛),我们会向玩家展示专门的通知,告诉他们如何用手移动。

此外,我们认为一旦启用,提醒玩家如何获得流畅的手部追踪体验至关重要。 玩家收到通知 神秘岛的菜单表明,如果他们确保自己在光线充足的房间内并将手保持在视野范围内,则手部跟踪稳定性会更好。

Meta 还告知玩家这些是良好追踪手部追踪环境的关键,但我们认识到有些玩家可能会在没有首先解析 Meta 的通知的情况下进入游戏,因此我们选择提醒人们以防他们忘记了。

继续第 2 页:在 Unreal 中进行的引擎修改 »

时间戳记:

更多来自 通往VR的道路