Idea Engine允许您创建和分享虚拟现实和混合现实体验。构建这样一个通用工具需要复杂的用户界面。在这篇客座文章中,开发者布雷特·杰克逊分享了他的界面交互方法。
布雷特·杰克逊的客座文章
布雷特·杰克逊自2015年以来一直在开发虚拟现实项目,并且是总部位于英国的新公司X82有限公司的总监。他之前发布的作品包括:Dimensional(PC VR),Breath Tech(PC VR),Jigsaw 360(PC VR和移动VR)和120Hz(SideQuest)。
在XR中,通常通过2D交互面板来呈现用户界面。这并不是一个令人兴奋的前景,但它既熟悉又高效。然而,即使我们接受这种2D界面对我们的XR世界的干扰,仍然存在着新的考虑和突破2D范式的机会。
我很快对过于夸张我的手在远处面板上移动的激光指针感到厌倦,以及它们不一致的目标矢量和间断的捏取检测。我更喜欢伸出手来与世界互动。我希望面板就在我面前,这样我可以舒服地放置并像真实设备一样使用它。
我的最新项目Idea Engine是使用StereoKit(一个开源的OpenXR库)开发的。它有一个以手为先的理念,并提供开箱即用的手部跟踪支持和控制器支持。它允许高效创建具有典型用户界面控件的动态窗口。这是一个非常优秀的工具,能够快速创建XR项目并具有许多其他好处。
面板
因此,我的起点是一个我们可以在任意位置抓取的用户界面面板(无需特殊的手柄或边缘)。当我们处于抓取范围内时,它会显示一个漂亮的光环。现在,让我们添加更多的XR考虑。
在XR中,用户很容易位于用户界面面板的后方。而不是显示一个空白的背面或颠倒的用户界面,我将用户界面翻转到用户所看的一侧,非常简单。这听起来很琐碎,但值得考虑XR特定的场景。另一种方法是自动旋转面板以始终面向玩家,但这会将控制权从用户那里抢走。如果他们想要面板处于奇怪的角度,就让他们,他们可能有充分的理由。
一个单独的面板应该保持较小的尺寸(页面尺寸/监视器尺寸),以便用户可以轻松吸收内容而不需要转头,但XR为我们提供了大量的空间。我喜欢寻找突破页面边界的机会。我的可滚动区域有一个可以抓取和移动内容的手柄。在抓取时,您可以看到内容区域的大幅扩展视图,并且在此模式下可以拖放,提供更大的放置范围。
我在面板的一侧显示提示信息,并在提示信息和UI组件之间有一条线。这减少了面板上的文本量。用户可以循环查看提示信息,并隐藏熟悉的信息。
在另一个项目中,我原型化了一个横向滚动并渐变到远处的3D甘特图。用户的主要焦点仍然在正常大小的中央面板上,但他们可以选择获得更广阔的上下文。
尽管面板方便和熟悉,但我们不应感到受它们的限制,并且寻找突破的方法是有趣的。
菜单
StereoKit向我介绍了径向手部菜单,然后我对其进行了扩展。我喜欢这个想法,因为你可以用一只手操作它,所以它很方便、易于访问。我在右手和左手上都提供相同的菜单系统,并在面板上使用相同的方法来显示弹出菜单,以保持一致。
我的体积菜单更进一步,纯粹是为了利用第三个维度。我将其用于选择传送目的地(每个目的地都有一个指针),以及选择附近的节点进行编辑。我还将其用于浏览元宇宙地址时的键盘输入。这是相当实验性的。它的优点是所有符号都与中心等距离,您在不需要转开目光的情况下就可以看到您的输入(虚拟键盘常见的问题)。缺点是对用户来说不熟悉,所以我预计会有一些阻力。请注意在视频中,字母按照字母顺序从前到后螺旋扩散开,所以很快它们的位置应该变得熟悉起来。
您很快就能够将这样的菜单添加到您自己的Idea Engine项目中。
3D小部件
颜色选择器提供了一个理想的机会进行实验,它有三个值(色调、饱和度和明度),可以映射到三个维度上。在我设计的3D颜色选择器中,您可以同时更改所有三个值,也可以分别设置色调、饱和度或明度。我觉得与2D页面上的滑块相比,与之互动更有趣。
同样,在运动方面,我想在三维空间中移动,所以我设计了一个适用于流畅手部跟踪运动的3D摇杆。只需将球体拖动到所需的行进方向,并转动手腕进行快速或平滑旋转。它可以用于行走或飞行模式,并且如果用户认为一次性控制太多,可以禁用旋转。我仍然支持传统的基于控制器的运动方式,但这种单手控制器可以复制多个摇杆/按钮的功能,是三维手部运动如何以新的方式满足需求的有趣示例。
手部
在我所有的示例视频中,一旦用户开始与用户界面进行交互,我会隐藏用户的手部。许多开发人员还会努力为不同的目的精心设计抓取姿势,这看起来很好,但对我来说,一个有搭配合适姿势的手,结果不是反映出我的手部位置,反而比没有手部更令人分心。一旦交互开始,手可能成为视觉障碍。
手部消失后,我可以自由地减弱或夸大手部动作,而不会有任何视觉冲突。在颜色选择器中,我减弱手部动作以降低灵敏度,而在存在大量内容时,我夸大手部动作进行滚动。
文本
虽然Idea Engine支持使用Sketchfab下载3D模型,使用AI生成图像,以及导入照片/音频,但很难击败文本和口语来传达复杂的叙事。考虑到这一点,我需要对文本进行良好的支持,以便用户可以将所有可用的格式合并起来讲述他们的故事。
在VR中,文字通常看起来不太好,所以当您离开时,我会将其逐渐变淡,以消除不美观的伪像,并关闭文本面板。用户会渴望探索环境,而不是阅读文本,因此我有一个选项,即自动朗读您遇到的任何块状文本。
文本输入是一项具有挑战性的任务,没有很好的解决方案。我创建了类似于移动端的文本输入,支持剪切和粘贴,并使用虚拟键盘进行自动分页。当我完成时,我认为这还可以,但我不想在XR中输入长篇文章。然后,我添加了语音转文本的支持。这有所帮助,但我发现在我的口述之后需要进行大量编辑,而且这仍比传统方式慢。现在,我允许用户从任何设备上的浏览器连接到他们的头戴设备,并通过网页导入文本。我经常使用这三种技术,浏览器主要用于长文本输入。
我的经验教训是,在XR中并不总是需要解决所有问题。有时使用更合适的设备然后导入结果更好。
试用一下
从教育思维导图到互动故事和游戏,您可以利用创意共享资产并导入自己的照片、声音和文本来构建您的想法。然后,通过添加状态、事件和高级脚本来使其栩栩如生,并在我们的X82元宇宙上共享。这是一个功能丰富的终端用户工具,探索XR的可能性。
公测版现已在App Lab上免费提供下载,因此您可以尝试其中讨论的任何功能,并给我提供反馈。
0