百摩网
当前位置: 首页 生活百科

青子cyan(Cyan为Quest作品神秘岛Myst带来裸手交互跟踪)

时间:2023-08-12 作者: 小编 阅读量: 2 栏目名: 生活百科

系统不确定手指是属于指向状态还是收回到手中。在游戏测试中,大多数玩家都是手掌朝地指向前方。当手掌面向地面时,左右旋转手腕是一项挑战,并且运动范围非常有限,尤其是当尝试从胸部转开时。最后,我们将转向指定为“竖起大拇指”的手势,而不是指针指向的手势。这个范围已进行多次调整,以达到基于测试的“甜蜜点”。换句话说,25厘米是专门针对《神秘岛》。

查看引用/信息源请点击:映维网Nweon

正式支持裸手交互

映维网Nweon 2022年08月01日)使用Presence Platform升级的Hand Tracking API,开发商Cyan为Quest平台的作品《神秘岛(Myst)》带来了裸手交互跟踪。现在,Quest用户无需控制器都可以畅玩这款冒险作品。日前,团队撰文介绍了在《神秘岛》中实现手部追踪的过程,下面是映维网的具体整理:

在这篇博文中,我们将讨论在《神秘岛》中实现手部追踪的演变和迭代,特别是在Unreal Engine 4.27.2中为其添加更多支持。

设计阶段和注意事项

1. 设计手部追踪导航

如果要告诉别人走到哪个位置,你会怎么做?你会用手指指,对吧。所以我们选择在《神秘岛》中使用“指向”方法进行移动。

对于传送模式,你可以用手指指向目的地,然后传送环就会出现。当你伸出其余的手指,或简单地收回伸出的手指,系统就会执行远程传送。

对于平滑移动模式,你可以用主导手(可以在控制设置中配置,但默认情况下是左手)进行指向,然后角色将开始沿你所指的方向平滑移动。

我们发现,当用手指测试动作时,如果手指被手的其余部分遮挡,用食指和中指进行手部追踪有时并不可靠。系统不确定手指是属于指向状态还是收回到手中。所以我们在代码中添加了修正因数,稍后我们将进一步讨论。

2. 转弯

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

然而,舒适度测试中出现了问题。在游戏测试中,大多数玩家都是手掌朝地指向前方。当手掌面向地面时,左右旋转手腕是一项挑战,并且运动范围非常有限,尤其是当尝试从胸部转开时。

即便你让玩家手掌朝右地指向前方,这个问题同样存在。你可以将手腕向身体方向弯曲很多,但将手腕向远离身体的方向弯曲时,你将无法获得相同的运动范围。

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

想象一下竖起大拇指。现在左右转动手腕。请注意,即使你的动作幅度不大,但在这个手势中,你的拇指指向“左”和“右”依然相当一致。

尽管用拇指指向似乎不是最直观的转弯方式,但它确实是最舒适、最连贯的转弯方式。

对于快速转弯,从拇指向上的位置向左或向右旋转手腕,可以启动单次快速旋转。然后,你必须将手放回“中心”位置,以实现重置快速转向,并额外等待非常短的冷却时间,然后就可以再次启动快速转向。

对于平稳转弯时,当你离开“呆区”时,在拇指向上的位置转动手腕将开始向左或向右旋转。

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

当然,手指指向的手势应用范围太宽,不能假设它只用于导航。出于习惯或自己的期望,人们会做出同样的指向手势来按下按钮或与世界上的其他事物交互。走到(但不是直接走到)一个按钮前,用手指按它,然后突然(毫无意识地)启动传送,这将非常影响游戏体验。

当玩家进行交互时,我们防止移动发生的方法是:当做出“移动”手势的手在可交互对象的特定范围内时,防止任何移动代码触发。这个范围已进行多次调整,以达到基于测试的“甜蜜点”。

我们发现这个甜蜜点距离食指指尖骨骼的世界空间位置大约25厘米。《神秘岛》充满了各种大小的交互对象(从小按钮到非常大的杠杆),排列在宽阔的开放空间和狭窄的走廊中,所以我们投入了大量的测试来确定这个数字。我们最初尝试了60厘米,但当玩家依然需要靠近物体时,这阻止了移动。同样,当玩家尝试抓取或触碰物体时,任何小于25厘米的物体都会引发非本意的玩家移动。

我们最好的测试区域之一是发电机房。在那里,你需要通过一条狭窄的入口通道,然后立即会遇到一个充满按钮的面板。当交互测试区域太大时,玩家无法穿过入口并向面板移动,因为它检测到食指范围内的按钮。

换句话说,25厘米是专门针对《神秘岛》。其他游戏可能需要根据实际情况调整这个数字。

4. 设计用于手部追踪的对象交互

现在,《神秘岛》中所有可抓取的交互都是为转动阀门、打开大门、按下按钮、翻阅书页等而构建。

所述交行户是基于我们根据Touch控制器而为《神秘岛》进行的设置。对于这一点,按下抓取按钮会自动将游戏中手部网格表示融合到“抓取”姿势中,要么是卷成拳头状,要么是抓取对象。在手部追踪方面,我们添加了将对手指何时弯曲到足以“抓取”某物,并启动与前面提到的相同逻辑进行限定猜测的代码。

例如,当使用手部追踪时,当手部悬停在可抓取物体上时,手部颜色会变成橙色。当你开始将手指卷成拳头状并抓取一个可交互的对象时,一个橙色的球体将取代你的手部网格,并表示手附着到对象的位置。

之所以采用这种方法,而不是为手部制作定制的可定位网格,或者让手/手指看起来与对象的某些部分进行物理交互,是因为我们希望裸手交互能够匹配Touch控制器的体验。

但按下按钮的效果不同。由于按钮不是可抓取的对象,因此不需要抽象,相反,我们允许你使用生成的capsule collider在可定位手部网格的每个手指关节之间简单地按下按钮。你可以做各种奇怪有趣的事情,因为这就像只使用你的小拇指或无名指的指关节来与游戏中的每个按钮交互。

与通过Touch控制器来和游戏中按钮的交互方式相比,这种实现方式略有不同,因为我们通常希望玩家使用控制器的抓握按钮将手设置为posed“手指指向”网格,以便在游戏中准确按下末端的按钮。通过手部追踪,你可以用手创建的姿势明显更加灵活,因此可以用更多的方法以同样的精度按下按钮。

5. 菜单/UI交互

为了与菜单进行交互,我们最终采用了Meta在Quest平台使用的相同交互范式:拇指和食指相捏。这既可以用来打开游戏中的菜单,也可以与菜单中的元素进行交互。当玩家第一次在Quest中启用手部追踪时,他已经在操作系统级菜单中学会了这一点,所以重新发明轮子毫无意义。

  1. 将所有这一切传达给玩家**

对于Quest,手部跟踪不像Touch控制器那样常见,而且可能有人是第一次开完《神秘岛》(甚至是第一次玩VR游戏!),所以我们尽量考虑如何将所有关于手部追踪的信息传达给玩家。我们确保包含专门用于描述手部追踪交互的“控制器图解”,并向玩家显示专门的通知,告诉他们如何准确地用手进行移动。

另外,我们认为一旦启用,提醒玩家如何拥有流畅的手部追踪体验至关重要。《神秘岛》的菜单会向用户告知,如果他们确保自己在光线充足的房间里,并将手放在视场之内,手部追踪的稳定性会更好。

Meta同样会告诉玩家,这是良好手部追踪环境的关键,但我们认识到,有些玩家可能没有注意Meta的告知并直接进入游戏,因此我们选择再次提醒大家,以防他们忘记。

7. 在Unreal进行引擎改动

我们目前正在为《神秘岛》使用Unreal Engine 4.27.2。Meta提供了用于在Unreal中进行手部追踪的基本代码,但对于像我们这样需要更好的手势和置信度检测的游戏而言并不足够。Meta的大部分手势检测和用于手部追踪的物理库目前仅在Unity中可用,因此我们需要在这方面进行基础性的改动,以获得能够在Unreal中识别的简单手势,如“竖起大拇指”和“手指指向”。

8. 系统手势垃圾修复

如果你开始按压,即便不是等待确认按压已处于相同状态一段时间,Oculus左手系统手势(用于菜单按钮)都会触发。我们通过将Oculus输入库中的事件更改为等待按压完成(等待系统手势填充其确认圈),然后再触发notify事件来修复这个问题,而不是在事件进行时这样做。

9. 多平台Build稳定性

与任何Blueprint一起序列化的Oculus Hand Component将导致其他平台(如Xbox)的Build在本地化步骤中中断。这是因为Oculus Hand Component是OculusVR插件的一部分,而所属插件仅针对Windows和Android启用,因此在构建其他平台时,不能在Blueprints中引用其任何component。

在Unreal Engine 5中没有官方支持本地化,但对于Unreal Engine 4中的用户来说,根据项目的需要保持启用状态可能依然有用。因此,在Blueprint level为所有平台打包的游戏纳入一个hand component不可行。

我们的解决方案是,每当检测到手部追踪启用或禁用时,我们只会在Touch控制器生成和销毁C中的Oculus Hand Component,并且所属功能仅在为Quest构建的Android Build中启用。hand component源代码和我们所有的手部追踪代码都被排除在其他平台之外。

遗憾的是,这意味着如果你是一名开发者,拥有一个面向多个平台的Blueprints-only项目,并在Unreal Engine 4中利用本地化,同时正在考虑为Quest实现手部追踪,你可能必须将项目转换为源项目,以避免Quest以外平台的本地化问题。

10. 自定义全手手势识别

在Unreal中,Oculus输入库中没有内置有意义的全手手势识别。这意味着,如果你做了一个竖起大拇指或手指指向等要求其他手指塞进去的手势,Unreal不会通知你发生了这个特定的手势。

我们的解决方案是在Oculus Hand Component中实现我们自己的骨骼旋转检测,从而推断何时:

  • 手指指向(食指)正在发生
  • 抓取动作正在发生
  • 出现竖起大拇指的手势

所有这一切都会作为可以在C中绑定的输入事件激发。

11. 手势和追踪稳定性调整

在Unreal中实现和测试《神秘岛》的手部追踪支持时,当某些手指在被手的其余部分遮挡时,其追踪稳定性存在一定的问题。例如,如果你:

  • 在抓取物品时所有手指都背对你,亦即被手背遮挡
  • 在用食指指向时举直举高手部

我们注意到,在抓取物品时所有手指都背对你,手部追踪有时可能会认为你的小指没有夹在拳头里。事实上,当抓取物品时只看到手背的时候,所有手指的追踪精度并不特别高。这是一个问题,因为当我们希望玩家抓住阀门或杠杆等物品,继续转动/移动它们,并且不会很快放开的时候,手部追踪系统可能会认为你不再抓取物品,因为它会认为你松开了手指。

在用食指指向时举直举高手部时,有时手部追踪系统会认为你的中指比实际更放松,甚至会认为你是同时用中指和食指进行指向。这是我们导航和移动系统的一个问题。如果系统不再认为你只是用手指进行指向,它可能会认为你在尝试抓住什么,从而阻止你移动,或者无意中执行了一个你还没有准备好启动的远程传送。

对于这两种情况,我们的解决方案都是添加单独的手指阈值,在我们认为一只手“不抓”或“不指”之前,我们允许在这些情况下有问题的手指放松。通常情况下,追踪系统认为手指比实际更放松,而不是相反。我们将所述阈值纳入到在Oculus Hand Component之中。

12. 其他方便的实用程序

为了实现自定义手势识别,我们对Oculus Hand Component源进行了大量修改,但我们同时为了它的一些实用性功能而进行了修改。我们编写的功能之一是一个用于从世界空间中的其他点获取手部碰撞最近点的一个实用程序。它同时返回最接近的骨骼的名称。我们将这个实用程序功能用于不同交互的各种输入验证。

值得一提的是,我们发现无论手的深度如何,对腕骨的追踪可靠性都是最一致的,因此我们比其他人更经常地对所述骨骼位置进行测试。

13. 写在最后

手部追踪可以成为游戏中一个非常强大的附加功能。对于《神秘岛》而言,这需要一定的工作,但我们尝试将其与现有的输入系统相结合,这样我们就不需要对整个游戏进行太多整体性的更改。我们的目标是创造一种直观舒适的用户体验,而不需要在后端构建一个完全独立的输入系统。

Meta的Unreal Engine分支提供了开箱即用的手部追踪支持,可以由能够更改引擎的团队使用。话虽如此,它需要一定的修改才能识别有用的全手手势。我们真的非常期待看到Meta对Unity的手部追踪能够赶上Unreal。同时,能够在Unreal中轻松处理基于源代码的项目的团队应该会发现,他们有足够的灵活性来根据项目实现手部追踪。

---原文链接:https://news.nweon.com/99452

,
    推荐阅读
  • 沈万三被皇帝救(活财神沈万三被满门抄斩同日凌迟真相)

    也有称沈万三会“点金术”,能够点物成金,因此黄金源源不断。此外,沈万三甚至还表示愿意捐资犒赏军士。这次打击不仅使沈家失去了沈万三这个当家人,而且财富也减去了大半。现在看来,即使沈万三不主动捐款劳军,他也逃脱不了被处罚的命运。总之要将他的财产全部归“公”。既然他已经在元朝末年去世,当然不可能遭到明朝开国皇帝朱元璋的打击。在元明易代之际,沈万三的儿子已进入暮年,他本人尚在人世的可能性是极小的。

  • 教师资格证面试的技巧(教师资格证面试技巧有哪些)

    教师资格证面试的技巧准备时要注意放松心态,如果排序较后,可以小睡一下,养精蓄锐,在考前十分钟调整全身状态,使自己在入场时达到最佳。鞠躬完毕等待主考官的提示。这时主考官会向你介绍考试的方式和内容,主考官介绍完毕,会问你听清楚了吗?你要清晰明确的回答“听清楚了”,如未听清楚,则可以提出疑问,万不可不懂装懂,搞错了规则。注意加强对时间的掌控,不要超时。

  • 取名宝典四字名字(年轻家长把取名当成儿戏)

    很多00后的学生名字都是由四个字组成,不过越来越多的老师发现,10后的学生的名字再次发生了变化。家长取名又有新花样,“四个字”的名字已不再时尚如今很多年轻家长在给学生取名字的时候,更加偏向趣味性,满足自己内心的恶趣味,不知道学生长大以后会怎么想。想法是好的,但是这个名字是不是有些过于随意了,这样随意的家长不止一个,还有这位家长给学生取名“王者荣耀”。是因为这对父母太喜欢打王者荣耀了吗?

  • 重阳节登高是什么意思(重阳节登高含义)

    重阳节登高是什么意思重阳节登高的寓意有:避邪气、祈福和感恩、祈求吉利等。古人认为重九之时,天地二气相交,不正之气弥漫,为避免接触不正之气,须登高山以避重九之邪气。重阳节,又称重九节、晒秋节、“踏秋”,为每年的农历九月初九日,中国传统节日。庆祝重阳节一般包括出游赏秋、登高远眺、观赏菊花、遍插茱萸、吃重阳糕、饮菊花酒等活动。

  • 咖啡拉花最简单的方法(咖啡拉花技巧)

    除此之外也遭遇着一些人要要想去培训学习咖啡拉花,尽管看起来简易却并沒有那么非常容易。

  • 菠萝莓和白草莓的区别(菠萝莓和白草莓的区别图片)

    产地区别菠萝莓:菠萝莓是日本奈良县果农经过长时间的研究培育而成的,因为菠萝莓十分娇嫩,主要在日本有培育。菠萝莓为什么没人买1、菠萝莓的种植难度大,果子产量低,不能大范围供应,因此买的人少。

  • 吃完山竹不能吃什么(吃完山竹有哪些禁忌)

    下面更多详细答案一起来看看吧!吃完山竹不能吃什么山竹忌和西瓜、豆浆、啤酒、白菜、芥菜、苦瓜、冬瓜、荷叶等寒凉食物同吃。肥胖者及肾病、心脏病患者少吃;糖尿病患者忌食。体质虚寒者只能少吃,不宜多吃。每天最多吃3个山竹,过多会引起便秘。若不慎吃过量,可用红糖煮姜茶调和一下。吃山竹时,如果紫色汁液染在肉瓣上,注意会影响到口味口感的。

  • 金庸文学名著中的经典句子(书到用时方恨少)

    金庸总是能在最适合的时候,将最恰当的古典诗词,用在合适的小说场景中,令人眼前一亮。有趣归有趣,但是目前“书到用时方恨少”已经是不少省份的中考考试范围,所以我们还是有必要了解一下这句诗真正的出处。书到用时方恨少,事非经过不知难。《增文广记》中的内容理解起来很容易,但却汇集了许多名家的智慧,大家若是有兴趣可以读一读,相信会有不错的收获。

  • 怎么快速消肿眼睛(快速消肿眼睛的方法)

    按摩消肿按摩肌肉摩擦产生热量可以促进血液循环,帮助排出肿了眼睛多余的水分,帮助消肿。双手食指和中指配合各在眼睛的上下眼睑,从内眼角往太阳穴的方向按摩多次,消肿效果很不错。因为哭肿的眼睛眼皮肿起来,还有眼袋。所以需要选择两种颜色较暗的眼影,画到颜色递减的效果掩盖眼肿眼睛变小的事实。再搭配下眼线的眼影,这个眼影的颜色要以亮色为主上下搭衬。

  • 幞怎么读(幞的解释)

    幞怎么读?