UE5搭建Pico开发环境

前言

UE本身不支持Pico开发, 需要手动搭建开发环境,本文简单记录

安装插件

Pico的SDK是已UE插件的形式安装的, 直接到官网下砸

image-20230926111231394

文档提示有4个插件, 实际下到3个插件, 没看到PicoSpatialAudio

另外, 开发时肯定需要在编辑器预览, 这个默认也不支持, 需要下载两个东西

输入适配

Pico加入了自己的输入映射, 跟oculus几乎一致

原原本本的抄一遍就可以了

image-20230926112853575

但是截止UE5.1, PicoSdk 2.3.0 , Pico的手柄坐标系并未像Oculus或者steam那样, 对OpenXR进行了适配, 如果你什么都不处理, 那么手柄朝向在Pitch角度是比较歪的, 需要程序化的判定并矫正一下,(笔者在pitch上减去了45度)

编辑器预览

编辑器预览Pico也有单独一篇文档 :实时预览应用场景

简单来讲需要以下几点

  • Pico开启开发者模式并开启USB调试
  • 下载了上面提到的PICO Unreal Live Preview Plugin (Experiment)插件并放到项目中
  • 开启插件
  • RHI设置成DX11
  • 去掉InstancedStereo

每次预览都需要在眼镜里点击确认才能进入游戏场景, 比较麻烦

还有就是RHI和InstancedStereo 的要求不太适配项目本身, 因为多数项目还是会使用DX12和开启InstancedStereo来优化性能的, 意味着这两个选项只能是临时的为编辑器预览而修改一下的

手柄反馈

UE原生的PlayHapticEffect即手柄震动对Pico无效, Pico需要使用他自己的Set Controller Vibration Event

但是这玩意儿只在安卓生效, 那么pc串流是不是就暂时放弃了?

image-20230926113817789

bug

PICOLivePreview插件是用于编辑器实时预览的, 但是如果你不做额外处理, 那么打包也会打进去, 这个会导致打包失败, 解决打包时候的代码以后也会导致运行初就crash

把插件下的所有模块都改成uncookonly或者editor即可

串流

对于打出来的包, pico并不能直接像quest一样, 开个meta link就直接跑

需要下载一个pc串流工具

然后运行这个工具以后在头显也运行串流工具, 连上pc

这里一开始找不到PC设备, 解决办法就是…..反复插拔usb

连上pc以后, 笔者又遇到了一个坑

一直显示等待steamVR启动, 手动启动steamVR以后也没用, steamVR也显示异常

image-20230927115043111

包括PDC上显示也是异常, 反复尝试都无果, 最后的解决方法是

重启电脑

重启以后在steamVR上就可以正确显示设备了, 如下图

image-20230927115147095

尝试启动Alyx试一下, 第一遍steamVR报错, 第2,3…N边, 最好的情况是PC有画面, 头显内有声音没画面

然后反复开关steamVR, 启动游戏, 然后………..成功了……..

然后直接启动打出来的包, 也可以了……

Pico威武!!!