【UE5】- VR小技巧 :用PC处理代替频繁使用VR头显开发

目录

效果演示:

前言

解决办法:

1.创建子类Pawn

2.设置pawn的摄像机以及手柄参数

3.设置增强输入

[3.1 移动操作](#3.1 移动操作)

[3.2 旋转操作](#3.2 旋转操作)

[3.3 按键交互操作](#3.3 按键交互操作)

4.操作实现


效果演示:

前言

在VR开发过程中,频繁的功能测试和效果优化往往需要我们反复穿戴头显设备。每当在PC端完成调整后,都必须重新佩戴设备 进行验证,这种重复操作不仅严重拖慢开发进度,还常常因设备待机而面临重新设置安全边界的繁琐流程。

可以将这一验证流程移至PC端执行,采用"选中窗口"模式进行测试,无需依赖"VR预览"使用VR头显设备验证。

请确保在操作前已完成以下准备工作:

  1. 成功实现VR设备串流
  2. 在工程中正确配置增强输入系统
  3. 确保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变量调整旋转速度,防止旋转过快。


相关推荐
Chicheng_MA13 小时前
Valve Steam Machine (Fremont) 架构深度技术分析报告
vr·steam·valve
爱思德学术15 小时前
中国计算机学会(CCF)推荐学术会议-B(计算机网络):NOSSDAV 2026
计算机网络·音视频·虚拟现实·多媒体
xhyyvr15 小时前
VR 超凡赛车:沉浸式动感驾驶,解锁交通安全普法新体验
人工智能·vr
Vince丶1 天前
UE DirectExcel使用笔记
笔记·ue5
AA陈超1 天前
Lyra学习004:GameFeatureData分析
c++·笔记·学习·ue5·虚幻引擎
平行云PVT1 天前
实时云渲染解决UE5 像素流插件迁移及传输数据受限问题
unity·ue5·xr·实时云渲染·云桌面·像素流·云推流
AA陈超1 天前
LyraRPG:001.创建RPGCore插件
c++·笔记·学习·ue5·虚幻引擎·lyra
AA陈超1 天前
Lyra学习6:GameFeatureAction_AddComponents分析
c++·笔记·学习·ue5
Gauss松鼠会1 天前
【openGauss】如何通过pg_trigger.tgtype获取触发器的各种触发条件
数据库·vr·database·opengauss
曼巴UE52 天前
UE5 C++ 多播绑定执行演示
c++·ue5