首页 > 其他分享 >【UE引擎】(八) VR 开发

【UE引擎】(八) VR 开发

时间:2023-12-28 21:48:25浏览次数:31  
标签:引擎 Menu Touch IA VR PICO UE

本次 VR 开发,使用同事曾哥的 PICO4,感激~

由于 PICO4 是安卓环境,需要将 UE 项目打包成 Android APK 包(感觉 UE 目前对 Android 的兼容性不是很好,打包会有各种各样的 bug)


 

 

一. 项目导入

1.1 导入为 2D 屏幕显示

  1. UE 项目打包安卓 Android(ASTC) 生成如下文件(打包过程详见文章) 

 

  1. 打开 Pico4 中的设置 - 通用 - 关于本机:软件版本号,狂点击软件版本号,打开开发者模式                                                                         

 

  1. 进入开发者选项界面,打开 USB 调试

 

  1. 使用 USB-Type C 连接线连接 PICO 设备与 Windows 电脑

 

  1. cmd 验证设备是否接入 Android 设备:adb devices

 

  1. 此时,电脑已经连上了 Pico4,双击第一个 .bat 文件安装 UE 项目

 

  1. 游戏以 2D 屏幕显示的形式呈现

 

 

1.2 导入为 3D 沉浸式

  1. 如需沉浸式呈现,要下载 Pico SDK

 

  1. 解压 PICO SDK下载包(PICO SDK 支持 UE4.27、5.1、5.2 版本的 SDK),选择对应适配的 UE 版本,并复制插件到项目工程

 

  1. 重启项目工程,在项目设置中,关闭 Mobile HDR,启用 Enable FullScreen Immersive On KitKat and above devices,不设置帧

 

  1. 默认会添加全部 Pico 插件,但我们只要 PICO XR 这个

 

  1. 如添加了其他 VR 插件,需全部关闭(需关闭 OpenXR 插件),不然打包会出现奇奇怪怪的错误

    OpenXR:是一个免费开放的 API 标准接口,可提供对增强现实(AR)和虚拟现实(VR),介于设备生产商与内容制作之间

     

 

  1. 重启项目工程,重新打包,同理安装到 Pico,就可以在未知来源中看到了

 

  1. 双击打开,发现版权校验不通过,非法签名,沃日!!

 

 

二. Pico Developer Center 项目调试

2.1 PDC 连接设备

  1. 下载并安装 PICO Developer Center 到本地电脑

 

  1. 用 USB 数据线连接头显与电脑

 

 

2.2 实时预览

  1. 下载并解压 PICOLivePreview 插件

 

  1. 解压 PICOLivePreview 下载包(PICOLivePreview 支持 UE4.25、4.26、4.27、5.1 版本),选择对应适配的 UE 版本,并复制插件到项目工程

 

  1. 重启项目工程,在项目设置中,设置默认 RHI 为 DirectX 11,取消勾选实例化立体(Instanced Stereo)

 

  1. 启用 PICOLivePreview 插件

 

  1. 重启项目工程,点击VR 预览

 

  1. 头显上弹出窗口,允许串流授权

 

  1. 电脑上运行 UE,成功同步预览

 

 

三. Pico4 交互开发

3.1 VR 操作映射

  1. 以 UE5.1 中的 VR 模板为例,发现运行时无操作反应。在项目设置中,检查按键映射,发现映射现已废弃

 

  1. UE4 中对应的操作映射

 

  1. 在项目设置中,勾选 Show PCIOXRInput Toolbar Button,可以点击 PICOXR 图标 > Clear/Add Sample Inputs,一键清除或添加 PICO SDK 预置的输入映射

 

  1. 对应下表,调整输入

IMC_Default

IA_Move

PICO Touch (R) Thumbstick Y

IA_Turn

PICO Touch (L) Thumbstick X

IA_Grab_Left

PICO Touch (L) Grip Axis

IA_Grab_Right

PICO Touch (R) Grip Axis

IA_Menu_Toggle_Left

PICO Touch (L) Thumbstick

IA_Menu_Toggle_Right

PICO Touch (R) Thumbstick

IMC_Menu

IA_Menu_Interact_Left

PICO Touch (L) Trigger Axis

IA_Menu_Interact_Right

PICO Touch (R) Trigger Axis

IA_Menu_Cursor_Left

PICO Touch (L) Thumbstick X,

PICO Touch (L) Thumbstick Y

IA_Menu_Cursor_Right

PICO Touch (R) Thumbstick X,

PICO Touch (R) Thumbstick Y

IMC_Weapon_Left

IA_Shoot_Left

PICO Touch (L) Trigger Axis

IMC_Weapon_Right

IA_Shoot_Right

PICO Touch (R) Trigger Axis

 

  1. 就是有亿点费眼睛,到这一步基本可以用 VR 按键交互了

 

  1. 增强输入一般为 2D,但 PicoXR 插件暂不支持,需要创建4个操作输入,均设置为 1D

 

  1. 链接到 IMC_Menu 操作映射菜单

 

  1. 打开 VRTemplate - Blueprints 路径下 Menu 蓝图,添加 Pico 逻辑

 

 

3.2 VR拾取

  1. 创建拾取物的蓝图(继承自 Actor),添加静态网格体组件和 GrabComponent 拾取组件,启用物理模拟

 

 

3.3 VR UI

  1. 制作 UI 控件,并附在左上角

 

  1. 创建 UI 界面的蓝图(继承自 Actor),添加 Widget 组件,将 2D UI 绘制到 3D 空间,并设置碰撞

 

  1. 将此 Actor 蓝图 UI 拖入场景中合适的位置

 

 

 

 


参考文档:

PICO Unreal Integration SDK | PICO 开发者平台

16分钟学会使用UE4在Pico上开发VR游戏!_哔哩哔哩_bilibili

 

 

 

 

标签:引擎,Menu,Touch,IA,VR,PICO,UE
From: https://www.cnblogs.com/ZWJ-zwj/p/17933632.html

相关文章

  • vue3+ts打开echarts的正确方式
    实例项目使用vite5+vue3+ts,项目地址vite-vue3-charts,预览地址https://weizwz.com/vite-vue3-charts准备工作1.注册为百度地图开发者官网地址,然后在应用管理->我的应用里,创建应用,创建好后复制AK2.在根目录的index.html里引入百度地图<head><metacharse......
  • vue中get和post请求
    vue中和后台交互,首先要引用vue-resource.jsvue-resource.js是专门和后台进行交互<!--==============引入vue-resource插件=================--><scriptsrc="../js/vueJs/vue-resource.js"></script>vue中get请求functiongetRequest(url,params){returnnewPromis......
  • JQuery 修改用户信息
    JQuery修改用户信息,多项选择,赋值,框架:https://www.h-ui.net/v3.shtml$(data.data.roleList).each(function(i,val){$('input[type="checkbox"][name="doctorRole"]').each(function(){if(this.value==val.roleCode){......
  • vue3+lottie实现动画
    1、安装lottie-webnpmilottie-web2、使用在线json文件<template><divclass="box"><divid="lottie_box"style="width:800px;height:800px;margin-left:1000px;background-color:pink"></div><butt......
  • JQuery 获取URL参数
    在jQuery中,可以使用window.location.search属性获取URL中的查询参数。该属性返回一个字符串,其中包含URL中的查询参数和对应的值。下面是一个简单的示例,展示如何使用jQuery获取URL中的参数:varqueryString=window.location.search;varparams={};if(queryStr......
  • Vue中$router.push()路由切换、如何传参和获取参数 和获取不到$router.push 参数问题
    路由的两种传参方式:  一:声明式<router-link:to="{path:'/login'}">Home</router-link> 二:编程式$router.push(...) //该方法的参数可以是一个字符串路径,或者一个描述地址的对象。不带参数写法://字符串(对应填写上面的path) this.$router.push('/login') //对......
  • Databend 部署与运维概要:本地部署 Meta 服务并利用 Kubernetes 管理 Query 服务
    本指南旨在介绍如何部署和运维Databend,并且采用结合本地部署Meta服务和使用K8s管理Query服务的形式,以平衡元数据管理持久化和计算资源弹性调度的需求。由于Databend的部署逻辑在单机模式和集群模式下的一致性,部署模式可以从单机轻松拓展到多节点集群,所以本指南中只基于......
  • 海康华为大华宇视等摄像头以及各种直播流地址(RTSP/RTMP/FLV/HLS等)通过LiveNVR转成标准
    @目录1、背景说明2、通道配置2.1、直播流地址配置2.2、配置RTSP接入2.3、配置Onvif接入2.4、配置SDK接入2.4.1、海康SDK接入2.4.2、大华SDK接入2.4.3、天地伟业SDK接入2.5、配置拉转视频文件2.6、海康ISUP接入2.6.1、海康ISUP接入配置2.6.2、海康设备接入2.6.2.1、海康EHOME接......
  • 封装一个表情包组件(支持自定义表情图片)(基于vue3语法)
    效果图文件图直接贴代码emotion.vue<template><divclass="emotion-containerbeauty-scroll-livechat"><divclass="emotion-btn"@click="toggleEmotionShow"><spanclass="iconfonticon-biaoqing1&quo......
  • LiteCVR视频技术在自然灾害智能监管与预警场景中的应用
    一、方案背景我国是一个自然灾害频发的国家,夏季更是灾害的频发期。在这个时期,山洪、泥石流、洪涝、冰雹、飓风、地震等自然灾害如同野兽般肆虐,每年都给国家经济带来巨大的创伤。面对这一严峻的挑战,建设自然灾害风险预警视频监控系统已迫在眉睫。二、方案介绍......