写这篇文章时,Oculus的官方输入控制器Oculus Touch已经有了原型。看相关资料、视频可以猜测其握感很好、精度很高,希望以后Oculus Touch可以一统江湖,成为Oculus平台下最自然、最成熟、最优秀的输入设备。

1.jpg

  不过今年我们开始预研VR的时候,还没有任何关于Oculus Touch的消息,因此在VR输入设备的选择上面我们可以说是费尽了心思,做了各种尝试,下面具体罗列一下:

LeapMotion

2.jpg

   LeapMotion是一开始考虑的,因为它可以识别单根手指骨骼,看视频精确度也很高。很有吸引力的样子。不过拿到手之后才发现,没想象中那么美好:

首先,他的可识别范围很小,手要保持在其正上方的一个受限区域,如下图:

3.jpg

  这点太致命了。本身带着一个头盔,手还受限,体验乐趣大打折扣。
  其次,手掌要和LeapMotion保持平行才能精确识别,不然误识别率很高。
  不过相比后面出现的设备,我太喜欢它小巧的体积了:随带随走,即插即用,摆在桌上不占地。

Kinect

4.jpg

  我们现在的主力输入设备。之所以重点选用Kinect是因为有《无尽之剑》Console版体感控制的使用经验,而且Kinect确实是一种最自然的交互方式,识别范围也大。

不过其精度还不够高,容易误识别,所以在做全息UI交互demo的时候,我们费了很多精力去寻找各种过滤条件用以排除误识别和多操作冲突的干扰,最终优化到了一个比较好的体验。详情点击这里。想体验也可以联系我们。
更多有关Kinect的信息参考。

Razer Hydra

5.jpg

  同样是双持设备,可以得到两手的位置和朝向,虽然不能获取手掌骨骼,但是胜在按钮超级多。不过,对于其外观,我只能想到三个字:傻大粗。特别是那一坨线,摆在本来就很拥挤的办公桌上格外抢镜!
  说说使用:因为是基于磁场的,所以它的摆放位置比较讲究:

6.jpg

  第一次不明所以摆错了,导致得到的两个控制器的位置都是右手的。使用过程中基站位置不能移动。基站位置确定了,其输出的数据在引擎里面对应的坐标轴向也就确定了。
  特别需要注意的一个问题是,一定要保证razer hydra的数据和玩家的朝向轴对齐!如下图。

7.jpg

  因为你不希望双手水平左右运动的时候,游戏里面对应出的效果是斜向运动。
  鉴于VR视角玩家的朝向肯定和Oculus的Sensor Camera正相关,所以这个条件换一种说法就是:基站的图标(如上上图)朝向和Oculus Sensor Camera的朝向要保持一致。
  对于这种只知道两手位置和朝向信息的输入设备,如果想要有一个好的表现效果,必须在角色的Skeleton上做手臂IK。
  一开始没注意到轴对齐的问题,闷头去做IK,结果效果总是不好,还以为IK做错了。直到意识到轴对齐这回事,才一切明朗!

下面说说razer hydra的缺点:控制器背离基站的直线运动最后会被映射为抛物线。

8.jpg

  对于VR游戏这种游戏中运行效果和实际运动需高度精准贴合的应用场合来讲,这个缺点同样太致命了!

Perception Neron

9.jpg

  国内开发的低成本的全身动作捕捉设备。官网:https://neuronmocap.com/

  效果很惊艳。把Neuron捕捉的数据map 到自己角色的skeleton上,也无需做骨骼的IK了,出来的效果很自然。
  也能识别单根手指。
  不过这类设备我觉得最大的弱点是穿戴麻烦,每次戴上、脱下都要费一番周折。感觉不适合大众游戏玩家。
  在往Unreal里集成的时候,我都是用他软件提供的录像回放功能提取之前录好的动作片段的数据。

其他:

  RealSense,可以说是缩水版的Kinect,虽然价格便宜,但是识别范围、精准度都远逊于Kinect;
  Wiimote,只能检测运动和方向, 无法准确定位双手的位置。

总结:

  毫无疑问,VR的输入设备肯定是双持控制器。三大VR设备商(Oculus,Stream VR,PS VR)的动作也证明了这一点。

  目前看来,对于输入设备我个人最大的期待就是能够把一坨坨线换成无线传输的方式。