UE5使用Advanced-VR-Framework开发VR介绍

插件地址:https://www.unrealengine.com/marketplace/zh-CN/product/advanced-vr-framework

一、UE5开发VR的优势:

UE5在三维的表现力上非常优秀;有基于Twinmotion等三维工具支持,制作流程上比较顺畅;UE5场景素材也非常多且优质,VR技术框架也齐全。所以,UE5非常适合开发VR。


二、UE5开发VR有哪些插件:

  1. Advanced-VR-Framework
  2. VR Expansion Plugin : https://vreue4.com/
  3. VR-Interactive-Assembling
  4. VR Interaction Kit
  5. 官方创建 Games -> Virtual Reality 项目
  • 官方提供的VR项目,5.2之前对HTC Vive兼容性不好,5.2后,进行了优化,是拿来学习VR开发的好案例;
  • Advanced-VR-Framework,含有很多VR操作示例,功能比较完备,可用于商业开发;
  • VR Expansion Plugin是完全免费的,首选免费VR插件;
  • VR-Interactive-Assembling(一篇使用介绍),常用VR设备都兼容,可做简单VR项目。可以进行源码学习,有助于提高VR开发技术;
  • VR Interaciton Kit是2023年刚出的插件,初步了解,功能齐全,可以作为替代Advanced-VR-Framework的商业插件。
  • 另外还有兼容Oculus Quest的插件,一些单一功能的VR插件,不一一列举,作为UE5 VR开发者,可以多了解,取长补短。

三、Advanced-VR-Framework介绍

插件目前支持5.0,据插件论坛说法,接下会支持5.2
油管上有详细的教程:https://www.youtube.com/@humancodeable4753

Advanced-VR-Framework(简称AF)拥有很多案例演示,方便商用,案例在AFCore/Examples/Maps下:

1、Map_Example_Components:展示各种Compnent的用法

Open Component示例说明

  • AF往蓝图Actor里添加VR组件(Comp),实现VR操作

  • Comp组件常设置Tag的对象,来启动对应组件
    在这里插入图片描述

  • 示例点击右边控制按钮,启动门的动画

  • 控制按钮主要设置Actors to Control来绑定门的启动
    在这里插入图片描述

  • BP_Trigger_Button_Toggle里是如何启动Comp_Open的?
    Comp是靠Compnent Bool Set和Component Trigger设置,来启动
    在这里插入图片描述

  • 注意:这里BP_Door不要点进蓝图BP_Door里,就在Outliner->Details(属性)里,看到Comp_Open组件
    在这里插入图片描述
    在这里插入图片描述

  • 组件的Component Tags看到Door_OpenComp,两者对应绑定,进行触发
    在这里插入图片描述

  • Comp_Open组件是设置OpenMap属性,设定Transforms各种属性的OpenValue与CloseValue,来实现Open与Close两种状态的动画。
    在这里插入图片描述

  • Mesh_Door是BP_Door里的SM_Door的Tag,两者进行绑定;

Comp组件常用到Tag进行绑定,另外可以打开AFCore/Blueprints/Components蓝图,查看或修改Comp蓝图

  • Switch Component:开关组件,开和关2种状态
    在这里插入图片描述
  • Open Component:从A运动到B,组件里设置2个状态的Transform的数据
    在这里插入图片描述
  • Comp Drag:拖动组件,通过绑定对象的0-max,设置2端位置,实现拖动
    在这里插入图片描述
  • Comp Name:拖动组件 + Name组件,拖动组件可以绑定SectionsSet,每个SnapValue绑定一个Identifier(名字);对应到Comp Name,通过更改名字触发,生成不同模型。
    在这里插入图片描述
  • Highlight Comp:高亮组件
    在这里插入图片描述
  • Trigger Comp:点击组件
    在这里插入图片描述
  • Snap Comp:BP_CogSystem通过Comp_Switch来触发转动,Comp_Anchor绑定BP_Cog,实现移动到此位置的动画
    在这里插入图片描述
  • Video Comp:触发视频播放
    在这里插入图片描述

2、Map_Example_Controls:手柄为控制器的各种用法

  • 支持切换多种手柄样式
    在这里插入图片描述

VF有一个Bug。当使用Vive设备时,VR为默认手柄,导出后,材质会消失;原因可能是SteamVR的版本问题。考虑版本问题不可控制。需要修改VF框架,修复此问题。即开始时就是一下Vive材质手柄。
在这里插入图片描述

  • 修改Bug需要改动2个蓝图:
> BP_MotionController_Controller

在Setup Controller Visuals depending on System and Hand Side模块中(ChangeControllerMesh事件),修改:
在这里插入图片描述

> SM_VivePreControllerMesh

修改MotionControllerRight和Left 2个地方,把Visualizaion修改
在这里插入图片描述在这里插入图片描述

修改完毕后,再导出或运行的时候,会有默认的vive手柄了;若不是vive,可以不修改

> 如何切换手柄样式?

代码在Widget_Info_VR里,
先获得BP_Pawn_VR
在这里插入图片描述
使用Switch Controllers来更改类别脚本,分为手与手柄2种
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
手柄还要通过获取BP Motion Controller Controller,运行Change Controller Mesh来设置好手柄的模型
在这里插入图片描述
在这里插入图片描述

  • Specator Mode:游客视角
    在这里插入图片描述
  • Mount Component : 镜头切换
  • 在这里插入图片描述
    通过激活Comp_Mount组件来切换视角位置;
    可通过Spline组件,来实现按线路漫游视角;

Comp_Mount是非常好用的组件,但是有一个bug,就是2个Mount相互切换时会调出错误提示

在这里插入图片描述
修复思路:
问题出现在,要移动到新的Mount时,旧的Mount仍然要退出,造成问题。
当点击的时候,设置一个IfMountToMount的变量,来判断是否属于从一个Mount直接跳转到另一个Mount

  • Orbit Component :只支持桌面模式,360度绕圈
    在这里插入图片描述

除此之外,还有手势操作(抓,按,拉杆,旋转控制等),把物品安装到指定位置,场景加载,物品高亮等,不一一列举。
此插件功能齐全,目前就是等待升级到5.1-5.2版本了,原作者请加油呀~

上面对AF修改的补丁包下载:https://download.csdn.net/download/qq_17523181/87867944?spm=1001.2014.3001.5503

猜你喜欢

转载自blog.csdn.net/qq_17523181/article/details/130381329