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

引用:UE5中的背包系统有6个文件,分别是ContainerBaseWidget、ContainerInputWidget、ContainerNormalWidget、ContainerOutputWidget、ContainerShortcutWidget和PackageWidget。其中,Input、Normal、Output、Shortcut类都继承自ContainerBaseWidget。 引用:在重写ContainerShortcutWidget的ResetContainerPara函数时,会调用父类的事件,并在中间判断是否有改变。如果有改变,会执行快捷栏修改更新委托,传出快捷栏序号以及新的物品ID。 根据以上引用内容,我理解您的问题是关于UE5中的widget switch的。根据提供的引用内容,我无法找到与widget switch直接相关的信息。如果您需要更具体的信息,请提供更多的上下文或引用内容,以便我能够为您提供更准确的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[UE4入门笔记(15)] 47.Widget获取位置和大小 48.背包系统 --梁迪老师UE4纯C++&Slate开发沙盒游戏](https://blog.csdn.net/peaes/article/details/129578859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [UE5使用Advanced-VR-Framework开发VR介绍](https://blog.csdn.net/qq_17523181/article/details/130381329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朗迹 - 张伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值