Htc Vive想要開發(fā)應用瞬移技術是必不可少的,那么瞬移技術自然有它實現(xiàn)的難點,這里跟大家講一講。
技術難點
想要移動玩家的位置,就需要改變游戲中camera物體的位置。而這個位置是受定位系統(tǒng)控制的。
每幀SteamVR_TrackedObject(一個貼在camera和controller上的組件)都會獲取新的玩家所戴的HMD在房間中的位置和朝向,然后將camera與之同步。
所以僅僅設置camera.transform.position是不可以的——下一幀它就會被設置回去。
那如何做到移動玩家位置,并且不打斷定位系統(tǒng)對camera的同步?答案是CameraRig。
圖中的camera (head)就是位置會和HMD同步的camera,它的代表了玩家在游戲中的位置。
注意,他的父物體是CameraRig,通常情況下它的位置和朝向都是歸零的,這種情況下camera (head)的位置=HMD的位置;
而如果改變它的位置,玩家的位置就會在camera (head)的本地位置(local position)沒有變,可絕對位置會受影響。
比如把cameraRig的y設置為2,玩家就會感覺在空中兩米的位置飄浮著。
所以想要瞬移,只要改變CameraRig的位置和朝向即可。