VIVE Tracker是VIVE VR系列产品的配件,可以通过绑定现实世界中的物体,来追踪物体的位置。从使用的角度来看,它更像是一个阉割版的手柄,因为它具备手柄一样的位置追踪而没有实体按键,由于体积小巧和便携,它可以被绑定在任意物体上,将现实的物体带入VR环境。
基站可以追踪多个Tracker,所以场景中可以存在多个Tracker。
外观结构
如下图,从右往左:
位置1:LED指示灯,用来指示Tracker的状态,与手柄相同,如蓝色灯闪烁,则表示该设备尚未配对;如绿色灯亮,则开始工作并正常;如红灯,则表示电量低。
位置2:设备开关。
位置3:与手柄类似,用来接收基站信号的传感器。
位置4.1:1/4英寸螺丝孔,可以将其固定在标准三脚架云台上,与单反相机同。
位置4.2:用来加强稳定的针槽。
位置4.3:弹簧针,6位。
位置5:USB接口,一方面用来充电,一方面用来与PC通信,比如更新固件等。
关于4.3位置的6位弹簧针,玩家可以通过自己制作一些电器开关之类的外设与其通信,发送电信号,达到像手柄一样向PC发送按键触发事件的效果。下图为6个针位分别对应的按键信号名称。由此可见,的确是个阉割版的手柄,或者说,像是一个没有按键只有键位开关的键盘。
使用场景
Tracker有很多应用场景,首先比较常用的就是追踪物体,你可以将它绑定到一些物体上,比如球棒、球拍、球杆、座椅等等,在传统行业里,可以绑定一些维修用的工具,扳手、锤子等,从而达到更加真实的体验。
另外,我们知道Tracker有弹簧针和USB 端口,还可以制作一些符合特定使用场合的外设,以更加符合外设的使用习惯,比如现在比较典型的PPGun,通过USB端口通信,将原来手柄的按键映射到了枪体相关的功能部件上,如Trigger键对应着枪的扳机,Touchpad映射到了枪体的摇杆等等。
另外,Tracker可以作为动作捕捉设备。我们知道,以现有的VR设备,只有手柄和头盔,很难实现全身的动作捕捉,那么使用Tracker,配合一些反向动力学插件,比如FINAL-IK,我们就能实现在VR中的全身动作捕捉。基站可以跟踪多个Tracker设备,所以就可以将多个设备绑定在人的关键部位,比如双脚、膝盖、腰部等等,设备越多,捕获的动作就越精确。
初次使用Tracker
Tracker包装中包含一个无线接收器,当你需要在使用手柄的同时使用Tracker,那么需要将此无线接收器连接到PC,用来接收Trakcer的信号,在使用时,需要将两个手柄同时打开;如果不使用无线接收器,则系统将Trakcer认为是一个像手柄一样的控制器。
初次使用Tracker,需要进行设备的配对,当按下开关以后,蓝色灯会闪烁,表示设备正在等在配对,在SteamVR Runtime中右键(注意,这是是SteamVR运行时,我们在之前的课时里也区分过SteamVR SDK和SteamVR运行时),选择“设备”-“配对控制器”完成设备的配对。配对成功后,即可看到代表了Tracker的图标,如下图。
在Unity中使用Tracker
作为开发者,最关心的当然是如何在引擎里面使用Tracker。我们以Unity为例,Tracker的开发并不需要额外的SDK支持,只需要导入VR开发必备的在SteamVR SDK即可。在SteamVR中,所有基站能够追踪的物体,都认为是Tracked Object。
1. 场景中需要一个可视的物体来标记Tracker,在引擎中,可以新建一个GameObject用来标记Tracker,命名为Tracker,在其上添加SteamVR_TrackedObject脚本。
添加完毕以后,脚本中的Index属性,可以在下拉列表指定可追踪的物体对应的VR设备,默认为HMD,即头盔,Device1、Device2分别对应两个手柄,以此类推。(注:此处可以不进行分配)
2. 为Tracker容器添加一个可视化的3D物体,这里添加一个Cube。
3. 选择CameraRig,在Steam VR_Controller Manager的Objects属性中,将Tracker添加到数组元素中。如下图
4.点击Play,可以看到Cube标识了Tracker的位置以及朝向。
与现实物体进行绑定
既然已经标识了Tracker的位置,那么我们就可以在场景中添加一个与现实世界相同的模型来进行映射,我们之前介绍过将手柄自定义为一个虚拟道具,那么使用Tracker将现实物体带入到VR中以后,会得到更加真实的感觉,首先是don't make me think,用户不需要了解道具如何使用,手柄的按键如何使用,只需要按照自然的使用方法即可。其次是能够获得与现实一样的真实操作感。
由于缺少现实道具,笔者将三脚架映射为长矛。
1. 删除添加的Cube,讲准备好的长矛模型拖入场景,作为"Traker"容器的子物体。
2. 为"Trakcer"容器添加可视化的节点。
3.调整道具与"Tracker"容器的相对位置,笔者将Tracker放置于三脚架云台的顶端,故在场景中,需要保持这样的位置关系,如下图。
4.调整道具朝向,旋转90度,位置及朝向,需根据模型坐标点以及具体应用场景调整。
5.点击Play进行测试,当移动三脚架时,场景中的道具进行了相应的变化。
总结
以上为Tracker的基本使用方法,后续的开发与Tracker并没有太多关联,可以归并到VR的基本开发路线上来。Tracker单就功能来说,并没有太多高深的黑科技在里面,对其进行的开发,也没有太多新的知识,所以限制其发挥功能的只是想象力,各位可以根据自己的VR应用场景,充分发挥想象,以开发出更多有创意的内容。
本文为《HTC VIVE交互开发实例教程》第50课文字版摘要。