在 VR/AR 世界,有些时候物体会出现在双手够不到的地方,或超出用户的直接操控范围。这时该怎么办呢?
Leap Motion 一贯秉持的设计理念是:最自然、最直觉化的交互一定是直接且物理的。用手直接操控物体顺应了我们长久以来习惯的本能,省去了学习新交互方法的时间。不过在 VR/AR 世界,有些时候物体会出现在双手够不到的地方,或超出用户的直接操控范围。这时该怎么办呢?我们可以让用户走到物体旁边,又或者,我们可以赋予用户超能力! 我们最新的交互设计实验开发出了三种把远处物体召唤到臂展范围内的原型:第一种是简单的动画召唤技术,适用于与单个物体的交互,第二种赋予用户 “意念移物”的体验,第三种直接增强了用户手臂在虚拟世界中的能力。 实验一:动画召唤 第一种方案可以有效地选取遥远的单一静物,并将其直接召唤至你手中。一旦完成查看和交互后,你还可以把它送回原处。这就像从架子上选中一个物体,把它召唤到手边再让它原路返回,这一用例适用于各类游戏、教育和数据可视化应用等。 这种方法需要调动四种交互过程:选取、召唤、抓握/交互以及归位。 1. 选取 许多 VR 开发者常常会掉入一个陷阱,认为我们的双手和手柄的使用机制类似,并以此为基础进行交互设计。选取远处物体需要对目标精确瞄准,这种情况下很适合使用射线(raycasting)。不过,让手指或整只手悬空瞄准某个方位是很难的,特别是当你需要依靠瞄准触发动作时。 与其从手部直接发射射线,我们的做法是将头部/头显位置作为参考位置,通过添加偏移量估算出肩膀位置,再从肩膀处发出射线,经过手掌位置两点成线直达目标。
这种方法可以大大提升射线投射的稳定性,当射线击中物体的碰撞器时,线渲染器和物体周围的高亮光圈会示意使用者。 除了确保射线的稳定投射,我们还为远处物体添加了范围更大的代理碰撞器,有助于增加目标物面积,提高命中率。此外,我们还为代理碰撞器添加了逻辑程序, 一旦目标射线击中远处物体的代理碰撞器,线渲染器会被直接吸附到物体的中心点。这一结果相当于切断目标物周围区域外的线渲染器,使得这些物体能够被精确命中。
在确定了选取的运作机制后,我们还要确定何时激活这个动作,因为一旦物体移至使用者双手可及之处,使用者就要从“选取模式”返回常规的直接操作模式。 由于从手部发射射线击中远处目标的交互太过抽象化,我们考虑用相关物理隐喻来指向这一动作。如果一个小孩想要去拿他够不着的东西,他会本能地张开五指伸手去抓来表达他的愿望。
于是我们决定用这一动作来激活选取模式。当你在距离头部一定位置处张开五指,我们就开始向可能的目标物发射射线。
为了完成这一选取交互,我们还要一个确认指令,以确定悬浮物体就是我们想要选取的物体。我们再一次借鉴了小孩想抓取远处物体的做法,如果你对着悬浮物体弯曲手指做出一个抓取的动作,就能选中该物体。随着你手指继续弯曲,悬浮物体和它周围的高亮光圈会缩小,模拟一种被握住的状态。当你的五指全部攥紧,物体就会回到原来的大小,高亮光圈的颜色也会变化,说明选取成功。
2. 召唤 现在,远处的物体已被选中,接下来,我们想让它移至可直接操作的范围内。我们又一次借鉴了现实生活中的手势。试想当我们想让某些物体靠近时,我们通常会手掌朝上,快速勾勾手指。 在选取动作的最后,我们五指攥紧,手掌朝向目标物。因此,我们决定召唤动作的第一步是要保证手掌(在一定距离内)朝上。一旦这个动作到位后,我们会让物体按手指弯曲度比例向手部移动。一旦你的手指全部攥紧,你会发现目标物已经到了你的手中,并处在被抓取的状态。 (责任编辑:admin) |