解決UE4使用HTC vive瞬移和瞬移後的位置偏移問題
最近重拾UE4的開發,照樣是藍圖,唉···愧對程式這個偉大的職業······················
在網上各種查使用HTC手柄瞬移的教程到處都是,我選擇的是其中的一種(各種抄換個說法就是原創···2333),先掛上參考教程:參考教程。在參考(抄)過程中發現了其中的一些不恰當或者說是不太合適的地方,並修改了一下,歡迎討論。
首先在大佬的文章中利用封裝的類輸出HIT碰撞資訊,我這裡進行了修改只是記錄了碰撞的點,不再儲存碰撞資訊,索然效能影響不大,但是改一下就算自己原創了不是嘛 ,下邊貼圖,滿足碰撞記錄碰撞點,不滿足條件記錄0,其實沒什麼用,
這個就是修改後的藍圖,有點亂,各位大佬海涵················2333333333333
修改後是遊戲中可以正常瞬移了,但是當玩家沒有站在vive定位空間中心的時候瞬移,會發現玩家站到了牆裡或者是其他地方,並沒有在瞬移的選中目標點,這是為什麼呢?經過幾輪測試,發現一個悲哀的結果,瞬移的時候主玩家藍圖的根節點CapsuleComponent雖然確實在碰撞點,但是不要忘記玩家瞬移的時候相機相對於根節點CapsuleComponent是有相對位移的,玩家移動位置其實動的只是相機的位置,並沒有動根節點,這就造成了位置偏差,思前想後本想在瞬移的時候將相機和手柄“歸零”,但是當玩家姿態不是直立時依然存在穿牆的危險,最後只能選擇折中的辦法即:將相機位於碰撞點的上方,根節點根據相對偏差移到其他地方,當然,這樣處理當玩家存在重力時就可能造成玩家墜落,但是VR好像不太適合用重力。
處理結果:
寫在最後:看到文章的你有更好的辦法請回復教教本小白······························