Htc Vive想要开发应用瞬移技术是必不可少的,那么瞬移技术自然有它实现的难点,这里跟大家讲一讲。
技术难点
想要移动玩家的位置,就需要改变游戏中camera物体的位置。而这个位置是受定位系统控制的。
每帧SteamVR_TrackedObject(一个贴在camera和controller上的组件)都会获取新的玩家所戴的HMD在房间中的位置和朝向,然后将camera与之同步。
所以仅仅设置camera.transform.position是不可以的——下一帧它就会被设置回去。
那如何做到移动玩家位置,并且不打断定位系统对camera的同步?答案是CameraRig。
图中的camera (head)就是位置会和HMD同步的camera,它的代表了玩家在游戏中的位置。
注意,他的父物体是CameraRig,通常情况下它的位置和朝向都是归零的,这种情况下camera (head)的位置=HMD的位置;
而如果改变它的位置,玩家的位置就会在camera (head)的本地位置(local position)没有变,可绝对位置会受影响。
比如把cameraRig的y设置为2,玩家就会感觉在空中两米的位置飘浮着。
所以想要瞬移,只要改变CameraRig的位置和朝向即可。
网友评论