【UE5】- VR小技巧 :用PC处理代替频繁使用VR头显开发
目录
效果演示:
前言
解决办法:
1.创建子类Pawn
2.设置pawn的摄像机以及手柄参数
3.设置增强输入
3.1 移动操作
3.2 旋转操作
3.3 按键交互操作
4.操作实现
效果演示:

前言
在VR开发过程中,频繁的功能测试和效果优化往往需要我们反复穿戴头显设备。每当在PC端完成调整后,都必须重新佩戴设备进行验证,这种重复操作不仅严重拖慢开发进度,还常常因设备待机而面临重新设置安全边界的繁琐流程。
可以将这一验证流程移至PC端执行,采用"选中窗口"模式进行测试,无需依赖"VR预览"使用VR头显设备验证。
请确保在操作前已完成以下准备工作:
- 成功实现VR设备串流
- 在工程中正确配置增强输入系统
- 确保VR设备及手柄能正常执行旋转、移动、抓握等功能。
解决办法:
1.创建子类Pawn
在面向对象编程中,继承是一种极为重要且核心的特性,它允许一个类(通常称为子类或派生类)基于另一个类(通常称作父类或基类)来创建,从而实现代码的重用与扩展。通过继承,子类不仅可以自动拥有父类中定义的属性和方法,还能够在不修改原有代码的基础上添加新的功能或对已有功能进行修改。这里采用继承的方法,不过多赘述。
需要说明的是,本项目使用VRE插件进行开发,实现方式与官方示例略有不同。但解决思路是一样的。
在实现方式上,我采用了character类作为基础,并在此基础上创建了相应的子类。(为了统一说明,之后都用pawn来代替)在PC端调试时可直接使用该子类,基于继承机制的特性,对子类的修改不会影响父类原有功能的正常运行。

2.设置pawn的摄像机以及手柄参数
关闭摄像机的头显控制以及打开pawn控制旋转:

调整摄像机以及左右手柄的位置,需要手柄时刻出现在摄像机的视野中:


3.设置增强输入
3.1 移动操作
左手手柄摇杆已配置移动轴映射,PC端方向移动将通过"WASD"键控制,具体设置参照下图示例。

3.2 旋转操作
在VR预览模式下,游戏转向通过头显的转向控制实现,因此VR按键中没有对应的输入按键。而在PC端,转向由鼠标控制。为此,需要新增一个输入控制来专门管理转向操作。
3.3 按键交互操作

4.操作实现
当前摄像机、左右手柄属于同级组件。正常情况下,摄像机移动时手柄应该保持在画面范围内,因此需要将手柄置于摄像机组件之下。但由于Character是继承类,无法直接调整组件层级排序,所以需要通过蓝图中的"将组件附加到组件"功能来实现重新排序。

VR场景中某些手柄需每帧追踪头显位置,需消除其对tick的依赖关系:


添加鼠标控制Pitch和Yaw旋转的功能,并使用一个float变量调整旋转速度,防止旋转过快。

