我想实现一个效果,就是固定住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 根位置来将相机保持在一个位置。
改成相对位置后依然没有效果
尝试找到可以改变根位置的可更改场景组件。例如,Pawn 的根位置。这样就能清楚地知道需要通过偏移量来更改哪个场景组件。
pawn的根位置是始终不动的