入手了Pico 4 E做VR开发,谁知入了天坑...根据官方文档,尝试了串流助手、企业串流、PICO Developer Center,陷入了各种版本问题、环境问题的陷阱。而且Pico4E的OS自24年12开始就不再更新,头盔中预装的企业串流版本也较低,网上与Pico4E相符的解决方案少之又少……总之折腾了好几天,终于完成了万里长征的第一步——解决了有线串流连接的问题,即使用有线串流实时预览Unity生产的VR场景。(为什么使用有线串流呢?条件限制,路由器太老,无法使用无线。)
下面开始详细记录串流连接的过程:
目录
1. 基本情况
2. 电脑端安装软件
3. 使用“企业串流”和“SteamVR”串流连接头盔和电脑
4. Unity安装插件
5. Unity中的环境设置
6. 建立测试场景
7. 运行测试场景
8. 其他问题
1. 基本情况
(1)大致的思路是:Unity->SteamVR->企业串流->USB3.0连接头盔
(2)电脑端的情况:
操作系统:Windows10或Windows11
显卡:NVidia 3060
Unity:2023.2.20f1c1
(3)头盔端的情况:
硬件:Pico 4 Enterprise(企业版)
操作系统版本:V5.9.9 (无法更新)
企业串流版本:V1.2.9 (无法更新)
(4)连接线情况:使用TypeC转USB3.0线,插在电脑USB3.0口(蓝色)
2. 电脑端安装软件
(1)安装“企业串流”:
有些教程介绍的“Pico互联”、“Pico游戏串流助手”,以及最新的“PICO Developer Center”等软件,都与头盔中的串流软件版本有冲突,试过下载各种历史版本都不行,最后还是老实安装“企业串流”。下载地址为:企业串流下载
找到适合的版本下载并默认安装。
(2)安装Steam VR:
先要安装Steam,下载地址为:Steam软件下载,点击“安装STEAM”默认安装。安装完成后注册账号并登录。
之后选择“库”->搜索“steamvr"->安装 软件会自动安装
3. 使用“企业串流”和“SteamVR”串流连接头盔和电脑
(1)打开“企业串流”软件,选择USB连接方式
(2)根据“企业串流”软件提示,将头盔使用Type-C转USB3.0连接到电脑,并点击“下一步”
(3)VR头盔端也需要打开“企业串流”
(4)“企业串流”软件会自动启动SteamVR,连接成功后,会显示如下画面
SteamVR会显示连接成功的绿色图标
头盔中会显示SteamVR的界面
4. Unity安装插件
(1)在Hub中安装Unity编辑器之时,需要添加Android模块
(2)新建工程:普通工程即可
(3) 下载安装插件:Window->Package Manager->搜索“XR”,搜索出来的XR Interaction Toolkit和OpenXR Plugin都要安装;
在安装XR Interaction Toolkit时会出现一个警告窗口,直接选择“Yes”;
XR Interaction Toolkit安装完成后,再下载一个示例场景,以便于头盔和手柄的设置;
5. Unity中的环境设置
(1)打开Unity菜单栏中的Edit->Project Settings,设置XR Plug-in Management,勾选“OpenXR”;
安卓部分也需要勾选一下。注* (亲测)这里的OpenXR如果不勾选,手柄激光线无法使用。
(2)设置下面的OpenXR项,点击“+”号,这里没有Pico相关的项目,以“Oculus Touch Controller Profile”代替;最上方的渲染模式设置为“Multi-pass”;
(3) 暂时先设置这些,因为我目前只需要实现串流调试。如果需要将场景文件传输到头盔中,脱离电脑运行VR场景,那还需要对Android平台的设置。
6. 建立测试场景
(1)建立一个平面Plane,用于承载第一人称控制器(有重力);
(2)在Hierarchy中空白处点右键->XR->XR Origin(VR),建立了“XR Interaction Manager”和“XR Origin (XR Rig)”两项;
(3)在XR Origin (XR Rig)上点右键->XR->Locomotion System,在XR Origin (XR Rig)下面建立一个Locomotion System
(4)配置手柄:在Hierarchy中选择“Left Controller”,按下面的这个设置按键,在弹出窗口中选择“XRI Default Left Controller”设置文件,右手柄“Right Controller”也使用类似的设置方式,不同的是右手柄的设置文件选择“XRI Default Right Controller”;
需要注意的是设置完成后,“Left Controller”中所有的设置项目都有“Left”,“Right Controller”中所有的设置项目都有“Right”
(5)配置Locomotion System:对于用于实现旋转功能的"Snap Turn Provider(Action-based)"脚本,点击设置按钮,选择“XRI Default Snap Turn”
再将其中的“System”一项设置为“Locomotion System”,并取消勾选其中的Left Hand Snap Turn Action,因为我们习惯使用右手柄的摇杆实现转向;
点击下面的“AddComponent”按钮,添加ConstrainedMoveProvider(Action-based)脚本,这个脚本控制的是持续移动;
选择同样的默认设置文件:
与设置转向脚本一样,“System”一项设置为“Locomotion System”,并且取消“Right Hand Move Action”,让右手柄只执行旋转的功能;
最后,Locomotion System中的“Locomotion System”脚本,“XR Origin”一项设置为6.(2)中建立的这个“XR Origin (XR Rig)”,也就是第一人称控制器本身;
7. 运行测试场景
保持3.中的“企业串流”和“SteamVR”的连接,并且将平台切换至Android,连接上设备。
这样基本就可以了,不需要使用这里的Build或者Build And Run ,直接在Unity编辑器中运行Unity场景,就能从头盔中看见场景,并且可以使用手柄摇杆控制视角旋转和平移;如果在“SteamVR”的菜单中选择“显示VR视图”,就能实时在电脑端看到VR头盔中的画面。
以上基本完成了有线串流调试Pico4E的方法,但有时运行过程还会产生一些问题。
8. 其他问题
虽然之前测试成功了,但是有时不经意改变环境后,会有连接不上、运行错误、手柄失去作用等等问题,以下有几个我自己遇到的常见问题:
(1)一些基本错误,可以自动修复:在Project Settings->XR Plug-in Management->Project Vlidation中,可以看到系统的一些报错,直接点击“Fix All”按钮。有些问题可以自动修复,有些问题会有修复的提示;
(2)密码问题:在Project Settings->Player->安卓平台->Publishing Settings中,需要设置发布的密码,这个我也不太清楚,跟着官方文档设置即可:签名关联的 APK 数量超出限制如何处理?
(3)Pico平台的设置:菜单栏中的PICO菜单,这个只要是安装了PICO Integration SDK都会出现在这里,需要设置一下设备号,这个设备号可以照抄File->Build Setting->Android->Run Device中的设备号(括号内的号码)
以上所有的设置基本覆盖了,我在运行过程中的问题,不过难保之后会有新的问题产生。