解决UE4使用HTC vive瞬移和瞬移后的位置偏移问题

       最近重拾UE4的开发,照样是蓝图,唉···愧对程序这个伟大的职业······················

       在网上各种查使用HTC手柄瞬移的教程到处都是,我选择的是其中的一种(各种抄换个说法就是原创···2333),先挂上参考教程:参考教程。在参考(抄)过程中发现了其中的一些不恰当或者说是不太合适的地方,并修改了一下,欢迎讨论。

       首先在大佬的文章中利用封装的类输出HIT碰撞信息,我这里进行了修改只是记录了碰撞的点,不再保存碰撞信息,索然性能影响不大,但是改一下就算自己原创了不是嘛  大笑   大笑,下边贴图,满足碰撞记录碰撞点,不满足条件记录0,其实没什么用,



这个就是修改后的蓝图,有点乱,各位大佬海涵················2333333333333

       修改后是游戏中可以正常瞬移了,但是当玩家没有站在vive定位空间中心的时候瞬移,会发现玩家站到了墙里或者是其他地方,并没有在瞬移的选中目标点,这是为什么呢?经过几轮测试,发现一个悲哀的结果,瞬移的时候主玩家蓝图的根节点CapsuleComponent虽然确实在碰撞点,但是不要忘记玩家瞬移的时候相机相对于根节点CapsuleComponent是有相对位移的,玩家移动位置其实动的只是相机的位置,并没有动根节点,这就造成了位置偏差,思前想后本想在瞬移的时候将相机和手柄“归零”,但是当玩家姿态不是直立时依然存在穿墙的危险,最后只能选择折中的办法即:将相机位于碰撞点的上方,根节点根据相对偏差移到其他地方,当然,这样处理当玩家存在重力时就可能造成玩家坠落,但是VR好像不太适合用重力。

      处理结果:

        写在最后:看到文章的你有更好的办法请回复教教本小白······························偷笑

猜你喜欢

转载自blog.csdn.net/ep661215/article/details/79865999