Htc Vive的瞬移技術還可以用拋物線來實現,這里跟大家講一講實現的一些方法吧。
這個是針對HTC Vive和引擎簡單易用的瞬移系統。
這個系統是模仿Valve的Vive游戲“The Lab”而作,即玩家可以穿過比游戲區域大的VR環境。
下圖可以看到對于系統的演示:

提供的這個系統解決了以下問題:
1 計算可導航空間:
我們顯然不希望玩家可以傳送出邊界,或者在不透明物體內部。
為了解決這個問題,這個系統使用了Unity生成的導航網格作為玩家可以傳送的邊界。
因為這個過程包括了Unity的工作,所以它很穩定并且可以放心的應用到大多數工程中。
為了預加載這個數據,只需要在場景的任何位置添加一個"Vive Nav Mesh"組件,并且在檢視面板點擊"UpdateNavmesh Data"按鈕。
這樣無論什么時候更新場景都可以用新的NavMesh烘焙來更新Vive Nav Mesh。
上邊的過程說明如下圖:

2 選擇瞬移目的地:
這個系統通過簡單的運動學方程使用了直觀的拋物線選擇機制。
再次說明,這是受到了Valve的“The Lab”啟發。
用戶將控制器舉到更高的角度時,選擇點會生成的更遠一些。
如果用戶將控制器舉過45度(拋物線的最大距離),角度將會鎖定在那個距離。
3 表現游戲區域:很有必要知道傳送后防護邊界在哪里。
因此系統圍繞防護邊界劃定了一個盒子。
4 減少不適感:瞬移(顯示為“眨眼”)時屏幕的淡入淡出可降低用戶的疲勞和眩暈感。
這個Unity工程(版本5.3.4p6)提供了兩個簡單場景:一個直接集成了SteamVR,另一個適用于沒有HTC Vive的小伙伴來演示系統功能。
資源代碼已經做了文檔和注釋,或者可以跟隨MIT Licence(參照LICENSE.txt)使用.