开发者分享:使用UltimateXR快速轻松开发丰富VR交互

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

使用UltimateXR快速轻松地开发丰富的VR交互

映维网Nweon 2022年09月14日)在用户和虚拟世界之间实现丰富交互是VR的一个关键研究方面,但对开发者而言,创建和调整相关交互是一项具有挑战性和耗时的任务。所以,UltimateXR等工具集希望可以加快虚拟现实交互的迭代过程,为游戏和体验带来更多交互性和沉浸感。

恩里克·特罗普(Enrique Tromp)是UltimateXR背后的VRMADA的联合创始人和首席技术官。特罗普对计算机图形和数字美术有着强烈的热情,并在20年的职业生涯涉猎过模拟、游戏和现场交互体验。如今,他喜欢承担具有挑战性的虚拟现实项目,并开发了免费开源的虚拟现实框架UltimateXR。

日前,恩里克·特罗普撰文介绍如何使用UltimateXR快速轻松地开发丰富的VR交互:

我在三年前曾讨论过虚拟现实应用中实现愉快交互的重要性。我当时展示了VRMADA开发的示例,而其中一个关键观点是:良好、自然的交互对于有效同化培训目标程序至关重要。在虚拟现实游戏中,良好的交互可以提高游戏性,并使得特定机制变得有趣和令人满意。

从2016年左右开始,我把大部分时间都用来构建一个用于开发相关交互的框架和工具集,而这已经成为公司的技术基础。我们的主要目标是创建一个可扩展的系统,帮助我们的开发人员在未来几年内创建实用的VR应用程序。从严肃的培训到休闲的娱乐,我们利用所述工具开发过需求、交互和目标极为不同的应用程序。

最近,我们决定将它们免费开放给公众。结果是UltimateXR for Unity。我们希望很快将其移植到其他平台(Unreal、Web?)。

在本文中,我将讨论UltimateXR中能够成功VR交互并同时降低turnaround时间的功能。

1. 集成手势编辑器

在开发需要在不同姿势之间切换的对象操纵和其他机制时,编写手姿势是一个重要的过程。

一开始,我们直接从我们选择的3D程序(3dsMax、Maya、Blender等)导出手部动画,但很快我们意识到这成为了一个很大的瓶颈。我们决定在Unity开发一个功能齐全的手势编辑器,允许我们直接从世界编辑器调整手势。

除了标准的编辑选项,我认为降低turnaround时间的关键功能包括:

  • 支持自定义小部件快速旋转手指骨骼,允许开发者使用内置的Unity变换handle。它们都可以互换使用。
  • 支持固定姿势和混合姿势(稍后详细介绍)。
  • 支持可直接使用或作为新姿势快速起点的手势预设。
  • 支持在使用不同坐标系的应用程序的rig之间交换姿态。

2. Blend Pose

在开发过程中,我们意识到许多对象都是使用已知集合中的常见姿势进行抓取。唯一的区别是,grip根据对象的大小更为打开或关闭。

我们决定创建一种新的姿势类型blend pose,它由开始姿势和结束姿势定义,可以采用中间的任何姿势。为了支持不同的对象大小,开始姿势将是完全开放的姿势,能够抓取最大可能的对象,结束姿势将是一个完全闭合的姿势,可以抓取最小可能的对象。任何具有中等大小的对象都可以使用相同的姿势,但具有由滑块控制的不同混合值。

尽管固定姿势通常用于手势和特殊grip,但blend pose对于开发可由许多不同对象重复使用的grp非常有用。

blend pose同时证明了它适用于handle可能发生变化的对象,例如按住枪械的扳机或按下交互设备的按钮时。

3. 可定制的手

为每个软件创建一套不同的手将是一项非常耗时的任务。对于两个娱乐应用的特定情况,我们使用了一个自定义rig;但对于大多数培训应用,我们始终坚持使用相同的核心asset。这允许我们重复使用姿势,如手势或上一节中讨论的常见blend pose。

我们依然希望能够令每个应用中的手看起来不同。为此,我们创建了一个可以在皮肤和手套之间切换,并可以自定义这两者的rig。这样做的好处是可以重复使用姿势,同时在较新的项目中仍然可以拥有一套外观不同的手。

视觉方面通常由客户需求或游戏设计文档驱动。在特定培训应用程序中,你会从手开始,第一步是佩戴手套等安全物品。这已经意味着你可以显示蒙皮特征,或者决定使用重影着色器隐藏它们。

VR应用同时可以允许你自定义肤色和手的大小。支持多只手的大小可能非常重要,因为在某些场景中,你代表着你自己,例如协作VR应用或培训应用程序,拥有不同的手部大小可能会打破沉浸感。

为了避免只支持一种尺寸,我们选择支持两种手尺寸:大手和小手。成人的手通常可以分为这两类。

在未来,我们可能会增加程序性改变手部尺寸的可能性,但目前我认为这是包容性、灵活性和所需努力之间的最佳权衡。

4. 可抓取对象编辑器灵活性

除了编程之外,创作交互时花费的大部分时间都用于创建抓取姿势和编辑可抓取的对象。可抓取的对象使用可抓取对象组件进行配置,它告知对象的行为方式,以及可抓取所述对象的一个或多个点。

拥有一个好的可抓取对象编辑器非常有助于最小化使对象可抓取所需的时间。但在开发了许多不同的VR应用之后,最具挑战性的是如何正确使用:

  • 应用需要对象的新操作参数,因为当前参数列表不支持此行为。
  • 组件现在更加灵活,一个新的参数已经expose,以供编辑。
  • expose的参数越多,UI就越混乱,使用起来就越困难。
  • 在某些情况下,它变得太难、不直观,并且没有达到降低turnaround时间的初始目标。

这是预料之中的事情。毕竟操纵是一个极其复杂的过程,你可以对一个对象执行数百种操作。它不再是按下控制器的X来“使用”一个对象,而是使用你自己的手来操纵对象。可能性无穷无尽。

我发现,在这些情况下,大多数新功能可分为两大类:

  1. 如何抓取物体。例如,能够在两个方向使用所有可能的位置和角度抓取。
  2. 对象的行为。例如,控制面板中的旋钮可以转动到四个不同位置。

我对这个问题的解决方案是创建一个坚实的GrabbableObject base和使用两种类型的专门化组件扩展功能的架构。

  • GrabPointShape:将对象上的单个抓取点扩展为众所周知的形状,使抓取更加灵活。例如,可以将圆柱体形状添加到撬棍中,以便可以沿整个长度和任何角度使用单个默认抓取点。另一个例子可以是盒子形状,这样书可以被4个边中的任意一个点而不是单个点抓取。
  • SpatialControl:通过接管GrabbableObject中某些参数的控制并添加新行为,添加专门化功能。例如,旋钮组件将隐藏所有允许编辑旋转约束的可抓取对象参数,控制它们,并添加行为以捕捉旋钮旋转中的不同位置。

这种新的架构已被证明非常具有价值,因为功能现在已经很好地进行划分。它同时具有简化用户界面的额外好处,因为专门化组件将从GrabbableObject中隐藏比它们在自己的组件上epose的参数多得多的参数。而且它们更容易理解,因为它们直接与专用功能相关,而不是通用。

以上都是非常重要的经验,帮助我们缩短了turnaround时间,并为未来的扩展奠定了坚实的基础。感谢你一直的支持。我希望这篇博文能够帮助你了解VR应用的一些工作原理。也许它们同时可以激励其他从事类似技术的VR开发者,甚至鼓励你考虑在项目中使用UltimateXR。

本文链接https://news.nweon.com/100638
转载须知:转载摘编需注明来源映维网并保留本文链接
入行必读AR/VR——计算机历史第二次大浪潮
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供

更多阅读推荐......

资讯