在UE5.2中如何关闭vr的位置追踪但保留姿态

我想实现一个效果,就是固定住VR头盔的位置,但保留头盔的旋转,请问在UE5中如何实现?我并没有找到类似仅关闭位置追踪的选项或者蓝图节点API,请问这个需求能够实现吗

您好 !@axibaner
您是指像 Meta Quest 角色那样,保持网格位置固定吗?
还是在 VR 世界中,保持头显虚拟位置固定?

是的,在VR世界中,保持头显虚拟位置固定,不追踪或者忽略现实中头显的位置,只保留头显的姿态旋转

请问有可行的方案吗

是的,有很多方法可以实现:

我在 VRGK - 虚拟现实游戏套件 v3.0 上看到了这种效果。
当玩家头部与墙壁碰撞时,头部位置会重置回非碰撞区域,头戴式设备仍保持正常旋转。

在 UE5 中,只需使用一个函数即可实现此效果,该函数将头戴式设备虚拟世界位置重置到需要修复的相同世界位置。
要使用该函数,需要创建一个新的重置函数:
pawn 根位置 = pawn 根位置 - VR 头戴式设备相对位置(此值可以通过头戴式设备相对位置或虚幻 API 获取);

需要在每个厚帧中调用此函数来重置头戴式设备位置。

感谢你的回答,我正在使用官方VR示例项目试图按照你的方法实现,我有一个问题,获取VR头戴式设备相对位置是一个单独的API吗?我并没有找到这个蓝图节点,还是它其实就是VRPawn中的Camera的相对位置?

是的,它也是相机在VR Pawn中的相对位置。可以通过获取VRhead SceneComponent的相对位置来访问。

我试图在tick中强制设置Camera的相对位置为(0,0,0),但它似乎不起作用,在VR世界中相机依然会跟随现实中的头显进行偏移,而非只保留旋转

改变相机的相对位置不会直接影响相机的位置。需要使用偏移量来改变 pawn 根或 VR 根。这样,当相对位置不断变化时,赋予根位置的偏移量 delta 会将世界位置固定在一个位置。这种方法就像幻觉一样,通过不断改变 pawn 的世界位置或 VR 根位置来将相机保持在一个位置。

这是我按照您的回复在VR示例项目中的VRPawn蓝图中写的蓝图,它并没有达到预期的效果,可以说它没有起效,请问是我有遗漏的地方吗?如果可能的话,您可以在示例项目中展示一下您前面提出的方法的样例吗?


此相机位置需要是相对位置

改成相对位置后依然没有效果

尝试找到可以改变根位置的可更改场景组件。例如,Pawn 的根位置。这样就能清楚地知道需要通过偏移量来更改哪个场景组件。

pawn的根位置是始终不动的