因为我们组去年进行了XboxOne体感游戏的研发, 积累了一些Kinect2体感操作的经验, 就把Kinect2连接到了PC上, 看看能不能把体感操作与Oculus的VR显示结合到一起....需求分析
前面也提到了, 尽量达到接近自然的交互方式, 那就需要实现这几个关键点:
可以在虚拟世界中显示出双手, 最好能有肢体躯干
虚拟空间中的双手位置与现实空间中跟头部的相对位置(包括旋转)保持一致...XboxOne体感游戏中的UI交互经验, 把抓住拖动之类的手势利用起来
实现细节
双手肢体的绘制
因为Kinect API已经提供了人体骨骼的变换信息, 那自然而然的我们就想在游戏中绑定到一个蒙皮模型上...UE4已经默认集成了Oculus的支持, 所以这两个坐标系的处理不用我们操心了, 默认Oculus头戴显示器的坐标就是UE4摄像机的位置加上PostionTracking的Offset
而Oculus头戴显示器的位置来源于...游戏中可以通过CameraComponent位置和Oculus的CameraOrigin计算出Sensor的世界坐标, 然后把点云对齐到这个位置即可, 通过一个可以保存配置的Offset进行偏移校正