用户与虚拟世界之间的丰富交互是 VR 如此引人注目的一个关键方面,但创建和调整此类交互对于开发人员来说是一项具有挑战性且耗时的任务。 UltimateXR 等工具集可以加快 VR 交互的迭代过程,为游戏和体验带来更多的交互性和沉浸感。
Enrique 是 VRMADA 的联合创始人兼首席技术官,VRMADA 是一家在全球提供企业 VR 解决方案的科技公司。 凭借对计算机图形学和数字艺术的强烈热情,他的职业生涯跨越了 20 年,涉及模拟、视频游戏和现场互动体验。 这些天来,他喜欢承担具有挑战性的 VR 项目和开发 终极XR,一个免费的开源 VR 框架。 你可以在推特上关注他的最新作品 @entromp.
三年前,我有机会讨论了令人愉悦的交互在 VR 应用中的重要性 Free Introduction 通往VR的道路 客座文章. 我展示了在 VRMADA 开发的一些示例,我们使用 VR 进行企业培训和模拟。 关键思想之一是,良好、自然的互动对于有效吸收培训所针对的程序至关重要。 在 VR 视频游戏中,出色的交互可以改善游戏玩法,并使某些机制变得非常有趣和令人满意。
自 2016 年左右以来,我投入了我生命中的大部分时间来构建一个框架和工具集,该框架和工具集已成为公司的技术基础。 主要目标是创建一个可扩展的系统,帮助我们的开发人员在未来几年创建 VR 应用程序。 在这些年里,我们不得不开发具有极其不同的要求、交互和目标的应用程序,从严肃的培训到娱乐。 这些差异是使框架自然地融合到准备在非常不同的场景中工作的系统的关键。
我们最近决定向公众提供框架和工具——免费和开源,供所有人使用。 结果是 终极XR 为统一。 我们也希望尽快将其移植到其他平台(虚幻、Web……?)。
在本文中,我将讨论 UltimateXR 中的一些功能,这些功能对于成功改善我们的 VR 交互同时降低周转时间至关重要。
集成的手势编辑器
在开发对象操作和其他需要在不同姿势之间切换的机制时,创作手部姿势是一个重要的过程。
一开始,我们直接从我们选择的 3D 程序(3dsMax、Maya、Blender 等)中导出手部动画,但我们很快意识到它成为了一个很大的瓶颈。 我们决定在 Unity 中开发一个成熟的手部姿势编辑器,让我们可以直接从世界编辑器调整手部姿势。
除了标准编辑选项外,我认为在缩短周转时间方面很关键的一些功能是:
- 支持自定义小部件快速旋转手指骨骼,同时也让开发者使用内置的 Unity 变换手柄。 它们都可以互换使用。
- 支持固定和混合姿势(稍后会详细介绍)。
- 支持手部姿势预设,可直接使用或作为新姿势的快速起点。
- 支持在来自使用不同坐标系的应用程序的绑定之间交换姿势。
使用常见的抓取姿势混合姿势以创作操作
在开发过程中,我们意识到很多对象都是使用众所周知的集合中的常见姿势抓取的。 唯一的区别是,根据对象的大小,握把更加开放或闭合。
我们决定创建一种称为混合姿势的新姿势类型,它由开始姿势和结束姿势定义,并且可以采用介于两者之间的任何姿势。 为了支持不同的物体大小,开始姿势将是一个完全打开的姿势,能够抓取尽可能大的物体,而结束姿势将是一个完全闭合的姿势,能够抓取尽可能小的物体。 任何中等大小的对象都可以使用相同的姿势,但具有由滑块控制的不同混合值。
在两个不同的物体上使用标准的圆柱形抓斗
虽然固定姿势通常用于手势和临时抓握,但混合姿势对于开发可被许多不同对象重复使用的抓握非常有用。
混合姿势也被证明对可以改变握把的物体很有用,例如在扣动枪上的扳机或在握住它的同时按下交互式设备上的按钮时。
可定制的手
为我们开发的每个软件创建一组不同的手将是一项非常耗时的任务。 在两个娱乐应用程序的特定情况下,我们使用了定制装备; 但对于我们的大多数培训应用程序,我们始终坚持使用相同的核心资产。 这使我们能够重用姿势,例如手势或上一节中讨论的常见混合姿势。
我们仍然希望能够让手在每个应用程序中看起来都不同。 为此,我们创建了一个可以在皮肤和手套之间切换并能够自定义两者中的任何一个的装备。 这样做的好处是能够重复使用姿势,同时仍然能够在新项目中拥有不同外观的手。
视觉方面也经常由客户要求或视频游戏设计文档驱动。 在某些训练应用中,您从赤手开始,第一步是佩戴手套等安全物品。 例如,这已经意味着您要么显示皮肤特征,要么决定使用重影着色器隐藏它们。
VR 应用程序还可以让您自定义您的肤色和手的大小。 支持多于一种手的大小可能非常重要,因为在您代表自己的某些场景中,例如逼真的协作 VR 应用程序或培训应用程序,拥有不同的手大小可能会破坏沉浸感。
不同的皮肤着色器变化:顶部的大手,底部的小手
为了避免只支持单一尺寸(在许多应用程序中往往是大的男性手),我们选择支持两种手尺寸:大手和小手。 成人手大多可以归为这两种中的任何一种。
将来我们可能会增加程序上改变手牌大小的可能性,但现在我发现这是包容性、灵活性和所需努力之间的最佳权衡。