1. 程式人生 > >HTC Vive VRTK入門之瞬移一(初入桃花源)

HTC Vive VRTK入門之瞬移一(初入桃花源)

閒居少鄰並, 草徑入荒園。

苔痕上階綠, 草色入簾青。                  

絲竹亂耳案牘勞形  

暫去還來此, 幽期不負言。  

--《陋室銘》《題李凝幽居》                               

1、新建一個專案,匯入SteamVR和VRTK,匯入場景包VRTK_Teleport_Environment(可以在網上搜索,隨便一些場景包都可以,或者在資源商店中找),配置SteamVR 和VRTK,新增手柄,並給手柄新增直線指標

①匯入的場景

②渲染出手柄


③按下手柄的touch pad鍵發射直線型指標


2、新增瞬移區域。在VRTK_SDKManager中建立一個空物體,並重命名為PlayArea,新增元件VRTK_Basic Teleport並設定相關屬性。此時便可以進行瞬移了,可以在場景中到處轉轉
Blink To Color:瞬移時閃屏的顏色
Blink Transition Speed:瞬移時閃屏的速度
Distance Blink Delay:按下Touch Pad鍵後延遲多久開始瞬移

Target List Policy:瞬移的策略設定

Nav Mesh Limit Distance:控制瞬移區域的數值


①賞賞樹



②看看石橋與房屋



③跳到箱子上面,但此時發現並沒有站在箱子上面,而是站在了地面上身體穿過了箱子



3、新增自適應高度的瞬移。移除PlayerArear上的元件VRTK_Basic Teleport並新增元件VRTK_Height Adjust Teleport,該元件與Basic Teleport相比多了一個Layer To Ignore(所要忽略的層級)



①瞬移都是基於碰撞的,給所需要設定的物體新增collider

選中場景中的房屋,新增collider


選中石梯,新增collider


選中箱子,新增collider


③登高望遠,這裡風景獨好

站在屋頂

站在石梯

站在箱子

4、新增貝塞爾曲線的指標,並看其在不規則表面上的顯示

①進行設定

移除左右手柄的VRTK_Straight Pointer Rendere,並新增VRTK_Bezier Pointer Renderer,並分別將左右手柄的VRTK_Bezier Pointer Renderer股給Pointer Activation Settings的Pointer Renderer。給場景中所需要的瞬移區域新增collider。


5、執行後,指標的末端穿過了物體的表面


6、修改指標末端的游標,使其與物體表面的法線方向保持一致,從而附著在物體表面

勾選左手柄的Cursor Match Target Rotation

勾選有手柄的Cursor Match Target Rotation


執行後即使在有坡度的表面,游標也浮在了斜坡的表面


7、新增瞬移元件VRTK_Dash Teleport。上面的瞬移是從一個點換到另一個點,只是添加了一個閃屏;VRTK_Dash Teleport瞬移非常快,瞬移中間的過程可見,並且自帶了自適應高度的效果。

選中PlayeArea,並移除原來的VRTK_Basic Teleport,新增元件VRTK_DASH Teleport,執行後可以體會其效果,只可意會不可言傳


注:1、參考資料:http://edu.manew.com/course/344/learn#lesson/5691

http://blog.csdn.net/nicolelili1/article/details/74857374

2、無論是VRTK還是SteamVR,瞬移都是基於碰撞的,所以瞬移區域都必須附著一些boxcollider或者messcollider等碰撞體