|
在测试阶段,我们还发现许多使用者在选取物体后,手臂伸直,手掌朝向目标物,手指攥成抓取动作,但是他们随后会把攥紧的拳头往回收来实现抓取,好像在把目标物往自己身上拉。而我们设置的激活召唤动作是手掌朝上,并根据手指弯曲度召唤物体,这一动作才把物体立即召唤至使用者手中。
将选取和召唤指令合二为一会比两套分开的动作效率高很多,但分开的动作可以提升控制力。不过,我们的激活方式非常灵活,这两种选取召唤的动作可以并存,使用者可以自己决定他们想要的交互方式。
3. 抓握和交互 一旦物体到了你手中,所有额外的召唤逻辑就失效了。现在,你已经得到了一个交互物体(InteractionObject)!你可以把它从左手传到右手,放在虚拟世界中某个位置,并进行交互(如果物体有 UI 组件)。只要物体处在使用者触手可及的范围内,它就不能被再次召唤。
4. 归位 好了,现在你用完了这个东西,接下来该如何做呢?如果你抓住这个物体并伸直手臂 (超过以你头部位置为圆心的预设半径范围外),线渲染圈会出现并给出物体返回原来位置的路线。一旦你在路线可见的情况下放开物体,物体会自动回到锚位。
总的来说,这一执行能够准确完成任务,且并不费力。它可以轻松地驱动整套基本召唤流程,完成对单一静物的选取、召唤和归位。但是,它缺乏物理感,过度依赖手势,且物体只能在规定的两个位置间按照既定路线移动。 基于这个因素,该方法较适合在召唤 UI 类非实体物,或当使用者物理移动空间有限,需要精准的点对点召唤的情况下使用。 实验二:赋予“意念力” 我们在第一个实验中成功通过既定路线召唤并送回静态物,不过,我们还想进一步探索如何才能召唤动态的物体。我们能否将物体发射到使用者所在的位置,让物体落在使用者手中或落在使用者直接操控范围内呢?这一实验的灵感来自于《星球大战》中的原力,《X 战警》中万磁王把枪从敌人手中抽回来的一幕,以及巫师互相解除诅咒等。
在这个实验中,可以被召唤的物体是处于物理启动状态下的(physics-enabled)。也就是说,大多数情况下这些物体都在地上,而不像在架子上那样处于和我们视线平行的位置。为了让召唤过程更加轻松,我们决定改变下选取模式中的手势,也就是从手掌面向目标物张开这一姿势变成一种手掌张开,自然朝上,手指指向目标物的姿势。 为了迅速完成召唤,我们决定把悬浮和选取动作合二为一。我们保留了原先的射线选取方式,只不过取消了选取手势。我们保留了弯曲手指的召唤手势,使用者只需手掌向上张开并指向目标物,弯曲手指就能快速选取并召唤物体。 起初,我们想把使用者的手作为目标,让召唤物自动向手部发射。虽然听起来很有意思,不过,让物体自己精准地落入手中,这离物理原则有点远。为了解决这一问题,我们把目标从你的手部偏移到了你的前方,并在物体中加入随机的微小扭矩来模拟爆炸式发射。我们还在发射点加入冲击波和光点,并按照每个物体的当下速度进行发射,完成爆炸效果。
这样交互过程就被极大简化了,也就是说,你可以快速连续召唤不同物体,甚至在前一个物体尚未到达时就召唤下一个!
一旦你熟练掌握这个本领,你可以对着正向你飞来的召唤物进行再召唤。
相比实验一的动画召唤,实验二在动态连贯性方面更为出色,更加符合物理定律。这一交互过程也更为轻松,物理的附加变量也让这一召唤过程更有乐趣。不过这一变化也存在一个小问题,物体可能会突然降落在你的触及范围之外,不过只需再召唤一次,便可轻松解决这一问题。尽管这类召唤仍然基于手势,却比之前的方法运用了更多的物理特性。 实验三:延伸臂! (责任编辑:admin) |













