上周发布的188bet让球跳跃运动交互引擎,我很高兴和大家分享失重:重新掌握,对我的项目的重大更新第一次3DJam中的第二名.从那以后发生了很大的变化!在这篇文章中,我们将更深入地研究交互引擎的令人难以置信的能力和多功能性,包括它构建来处理的一些基本问题。另外,一些关于失重运动的视觉反馈的提示,以及设计外观的虚拟对象可抓住的。”“

当我把原版减肥,目前还没有一个星星系统能够徒手抓取虚拟物体。用二分法捏或用拳头握住你的手似乎不如用指尖轻轻拍打周围的物体那样令人满意。不可能同时做到这两点,只有一种或另一种。

交互引擎桥接了这一鸿沟——允许你用你手中的任何部分来引导物体,同时允许您抓住并保持浮动工件,而不牺牲其中的保真度。您现在可以实际地抓起浮动的Oculus DK2并试着把它戴上!!

玻璃杯

交互引擎要点

那么交互引擎实际上做什么呢?在最基层,这使得设计抓取和抛出交互变得容易。但是,尽管交互引擎可以知道何时正在抓取对象,那只是它能做的很小的一部分。

这是因为基本的抓取非常简单。您可能在15分钟内编写代码,当手指以某种方式卷曲时,该代码设法将一个对象父代到手中。这种二进制解决方案已经存在很长时间了,但是当您添加另一只手和更多对象时,它就会完全崩溃。

当你用一只手抓住一个物体时会发生什么,同时推动另一个?当你把一堆东西推到地板上会发生什么?用另一个对象推动一个对象?抓住一个复杂的物体?从一堆东西中抓起一个物体?所有这些都可能导致大规模的物理冲突。

突然,您发现手和对象力学在更高级别的复杂性下可能是难以置信的难题。这个问题已经从两个维度——一只手加一个物体——发展到五个或更多。

交互引擎是向前迈出的一个基本步骤,因为它是在您手边对象的动态上下文中实现的。这允许您获取各种形状和纹理的对象,以及彼此相邻的多个对象,否则这些对象将是模糊的。因此,交互引擎使您几乎可以在任何其他VR演示中找到任何其他控制器都无法找到的东西。它还被设计为可扩展的,与交互材料,可以很容易地定制任何对象。

当我们考虑设计全新的交互引擎时,稍后我们将回到交互引擎失重的培训室。但首先,下面是一些对核心体验的其他更新。

使用检测器的机动UI

在虚拟现实中,移动是最大的挑战之一——因为除了走路以外的任何东西都是不直观的。幸运的是,在失重的环境中,你可以随意一些。“无重量”中的移动方法包括用户举起双手,手掌面向前,手指伸展并指向上,然后轻轻地向前推,朝着他们面对的方向漂浮。

像这样的互动很难用语言交流。在原件中,没有适当的UI向用户提供关于他们需要做什么来开始移动的反馈。

现在我们团结起来检测器脚本,给用户反馈他们当前的手势是非常简单的。您可以设置一个检测器,以检查手掌是否向前(包括设置检测器启用或禁用的目标方向周围的范围),并在满足条件时触发事件。

失重运动

我把探测器连接到你手套后面的视觉用户界面上。当手指伸展时,这些颜色从红色变成绿色,向上(手指向上)和向前(手掌向前)相遇。绿色意味着去!!

努力创造黑洞

在最初的《无重量》中,你获得了一个“重力能力它让你通过手腕上的按钮吸引漂浮的物体到你的手上。这很有趣,但是通常物体的漩涡风暴会扰乱你的视野,使看不清楚

黑洞

现在你可以双手合拢,捏成一个小黑洞,效果相同。类似于块中的块创建交互,你可以在释放夹子之前通过伸展黑洞来调整黑洞的大小。

训练室

为了真正探索交互引擎的潜力,我想设计一个新的部分,围绕其独特的优势。向数百人演示积木,我发现很多人会关闭重力,然后尝试用其他物体撞击漂浮的物体。有些人直到成功才把耳机拿开!这启发了我设计一个关于抓取和向目标投掷失重物体的体验。

抓取和(虚拟)工业设计

在开发交互引擎时,很明显每个人都以不同的方式抓取对象,这在VR中尤其如此。有些人非常温柔,几乎不接触物体的周边,而其他人会很快地将整个手握进物体内的拳头。交互引擎必须始终如一地处理这两种情况。

我想探索的一个领域是,一个物体的形状如何向用户传达它应该如何保持。幸运的是,工业设计师已经做了很长时间了,创造术语“启迪”作为一种方式设计可能的行动到物体的外观。就像门把手的形状表明你应该抓住它,虚拟对象仅仅通过它们的形式就可以提供基本的交互提示。

为了在训练室里抓住并扔出的子弹,我首先尝试了均匀颜色的简单形状——一个球体,立方体,一张光盘——观察人们如何抓住它们。没有任何许可,用户很难确定如何保存对象。一旦举行,许多用户双手紧握拳头。这让投掷变得更加困难,因为物体在你释放后会嵌入你手的碰撞器中。

从保龄球和棒球投手的握把中得到线索,我添加了一些缩进到形状,并用重音颜色强调它们。

保龄球棒球运动

失重空间原型4

失重空间原型-5

这导致用户通过将手指放在凹槽中来抓取弹药的比率更高,并且使得成功释放弹药更容易。

抓斗类型

交互式引擎的滑动窗口

在跳跃运动交互引擎内,188bet让球金宝搏牛牛开发人员可以将交互材料分配给包含“控制器”的对象。每个控制器都影响对象在某些条件下的行为。投掷控制器决定释放对象时应该发生什么——更具体地说,它应该以什么方式移动。

有两个内置控制器,PalmVelocity控制器和SlidingWindow控制器。PalmVelocity控制器使用手掌的速度来决定物体应该如何移动,防止手指向物体传递奇怪和不正确的速度。在释放发生之前,SlidingWindow控制器获取可定制窗口上的平均速度。

在训练室,我使用了SlidingWindow控制器,并将窗口长度设置为0.1秒。如果用户在实际释放对象之前稍微停止他们的手,那么这似乎可以很好地过滤掉速度的突然变化。

设计房间

在狠狠地狠狠地攥取然后朝目标释放浮动物体的交互作用之后,我开始整理一些关于环境的大量研究,我认为这些经验可能有趣:

失重空间原型2

失重空间原型

我试过360种环境,但是我发现我花了更多的时间环顾四周,试图跟踪目标,而不是专注于交互。向另一个方向摆动,我尝试了一些线性的类似隧道的空间,这些空间使我的视野向前集中。当然更容易管理,较小的投掷空间意味着我经常无意中将投掷物弹出墙面。我是否命中目标更多地是由于机会而不是意图。

失重空间原型3

失重空间原型6

我决定把两个极端结合在一起——一个非常宽的圆柱体,为用户提供180°的开放空间,目标在站台上方和下方。

压缩和拖动Sci-Fi接口

经过一连串的测试,我发现尽管我的投掷变得相当准确,一旦子弹离开我的手,主要是等待的游戏,看看他们是否会击中目标。

为了把这种被动的观察变成一种主动的交互作用,我增加了在空中捏来召唤球形推进器UI的能力。通过拖离原来的夹点,用户可以向飞行中的弹丸添加定向推力,弯曲并引导它朝向目标。你甚至可以使它回环,并抓住它在你的手!!

由于基本上是远程控制一个小(有时很远)对象,我试图添加尽可能多的线索来帮助传达推力的强度和方向:

  • 线渲染器,将球心连接到当前夹点,随着推力变强,颜色发生变化
  • 同心球体,当夹子拖过它们时,它们发光并产生音频反馈。
  • 使用者的手套也改变颜色以反映推力强度。
  • 当推进时,弹丸本身会点亮。
  • 速度,密度,推力器颗粒系统的方向由推力强度和方向决定。

在播放器后面的菜单上还有一个滑块来调整推进器的灵敏度。设置到最大允许甚至小夹子弹的弹道变化很大。折衷之处在于控制起来要困难得多。

推力器

我希望你们像我一样喜欢建造《无重量》和《训练室》。5个级别中的每个级别在本地保存最佳时间,所以告诉我你最快的时间!将交互引擎支持添加到您自己的项目中既快速又简单——了解更多然后下载模块开始工作。

马丁舒伯特

Martin是Leap 金宝搏牛牛Motion的开发者传教士,也是《重量与几何》的188bet让球创始人。

推特LinkedIn