省流
串流方式的选择直接影响开发效率与性能表现。本文基于 Pico4UE 企业版一体机,对比了【PDC 串流】、【SteamVR 串流】与【OpenXR 串流】在有线连接下的表现,并重点分析了 PicoXR 与 PicoOpenXR 插件在手势追踪上的差异。
调试阶段建议优先使用 OpenXR 串流以获得更低的 GPU 占用;打包 APK 时 PicoXR 功能更全,但打包 EXE 进行 PC 串流必须使用 PicoOpenXR + OpenXR 组合。
插件选型:PicoXR vs PicoOpenXR
这两个插件互斥,同时启用会导致打包错误或闪退。选择逻辑主要取决于目标平台与串流需求。
PicoXR v3.2.0+
- 适用场景:仅适用于一体机 Android 打包(APK),面向 Pico 应用市场或移动端大空间。
- 限制:不支持打包 EXE 进行 PC 端 VR 串流。若需打包 EXE,即使勾选成功也无法运行 VR 串流。
- 特性:目前更新支持至 UE5.6,包含 PICOXR、PICOSpatialAudio、PICOEnterprise 等模块。注意 OnlineSubsystemPICO 用于账号社交,PICOEnterprise 面向企业设备接口。
PicoOpenXR v1.5.0+
- 适用场景:支持 APK 和 EXE 打包,适用于大空间商业部署。
- 特性:曾用名 PicoForOpenXR (UE5.3)。配合 OpenXR 插件可实现 SteamVR 或 OpenXR 串流。
- 注意:若想打包 EXE 进行 PC 串流,必须选择此方案。未来 UE5.6+ 版本中,PicoOpenXR 将逐步补全 PicoXR 的独有功能。
串流工具与配置
串流调试的核心在于 PC 端软件与头显端应用的版本匹配及端口冲突处理。
核心工具对比
| 工具 | 版本要求 | 串流模式 | 手势追踪支持 |
|---|---|---|---|
| PDC | 需搭配 PicoLivePreview | PDC 预览 | 支持 (仅限 APK 调试) |
| 企业串流 v1.2 | 1.2.x | SteamVR | 官方 Demo 失败,社区反馈不稳定 |
| 企业串流 v2.0 | 2.0.x | SteamVR / OpenXR | 支持 (推荐) |
| Pico 互联 | 10.5.10+ | SteamVR / OpenXR | 普通版支持,企业版受限 |
关键设置与避坑
- 版本同步:PC 端 exe 与头显端 apk 必须版本号一致且名称相同才能配对。例如安装了企业串流 v2.apk,PC 端只能运行企业串流 v2.exe,不可混用 Pico 互联。
- 服务冲突:安装串流软件时请关闭防火墙(如 360)。若串流失败,检查任务管理器中是否有
ps_service进程残留,必要时重启头显或电脑。 - 企业版特殊处理:企业版一体机无法从应用市场下载 Pico 互联。可通过 ADB 安装旧版本,或使用搞机工具箱非 root 模式强制卸载干扰项(如 Pico 互联)后再安装企业串流。
- PDC 性能瓶颈:PDC 串流默认开启 DirectX 11,显卡满载可达 100%,导致画面拖影黑块。优化判断建议切换至 OpenXR/SteamVR 串流,GPU 占用可降至 20% 左右。
串流方式深度对比
PDC 串流调试(不推荐长期开发)
主要用于 APK 开发阶段的快速预览。项目需加载 PicoXR + PicoLivePreview 插件。
- 优点:可直接调用手势开发,一键 BuildRun On Device。
- 缺点:RHI 为 DX11,性能损耗大;打包 EXE 不支持 VR 串流;预览按钮灰色失效时需检查 RHI 设置是否为 DX11 且取消实例化立体。
- 操作提示:若需切换回 OpenXR 串流,建议删除工程缓存文件修复预览窗口大小异常。
企业串流 v2.0(推荐)
支持 OpenXR 与 SteamVR 双模式,是目前的最佳实践。
OpenXR 串流
- 配置:项目加载 PicoOpenXR + OpenXR 插件。
- 优势:启动项目即可看到 VR 运行状态,无需额外启动 SteamVR;性能占用低,未启动项目时不消耗 PC 显卡资源。
- 调试技巧:无头显时可按
M+O唤起 VR 模拟 UI 进行调试。 - 切换方法:若默认串流方式异常,可运行
add_runtime.bat强制切换为 OpenXR,路径位于Business Streaming 2.0\openvr_driver\resources\ps_xrt。
SteamVR 串流
- 配置:同上,但在 PC 端软件中选择 SteamVR 模式。
- 劣势:启动后会自动进入 SteamVR 默认黑色网格星空场景,增加风扇噪音与耗电;连接稳定性略低于 OpenXR;退出 SteamVR 会连带退出 UE 项目。
手势追踪实战与优化
数据源差异
不同串流模式下,MotionController 的动作源(MotionSource)返回值不同,直接影响手掌模型坐标。
| 模式 | 无手柄/无手势 | 仅手柄 | 仅手势 | 混合 |
|---|---|---|---|---|
| OpenXR 串流 | False Hand | True Controller | True Hand | True Hand |
| SteamVR 串流 | False Hand | True Controller | True Hand | True Hand |
| APK 真机 (PicoXR) | True Controller | True Controller | True Controller | True Controller |
注:APK 模式下 PicoXR 返回均为 Controller,需注意 MotionSource 映射调整。
坐标与朝向修正
Pico 新版本手掌模型默认 X 轴正向,而 VR 模板默认 Y 轴正向,需进行旋转补偿。
- 组件挂载:添加
HandTrackingComponentPICO分别对应左右手,配置骨骼映射(Bone Name Mappings)。 - 动作源调整:
- OpenXR 串流:默认 LeftGrip 无法同步手势坐标,需改为
LeftWrist。此时机器手掌与 Pico 手掌模型均能跟随,但手柄追踪时 Pico 手掌可能丢失,需动态修改动作源。 - SteamVR 串流:LeftGrip 模式下坐标近似,可直接驱动 MotionController 模型,适合复用现有 VR 模板交互逻辑。
- OpenXR 串流:默认 LeftGrip 无法同步手势坐标,需改为
- 光照色差:打包 APK 后画面偏灰,建议将自动曝光改为手动,曝光补偿设为 10,以匹配 PC 预览效果。
常见错误排查
- 编译报错:确保 PC 端串流软件已运行且 SteamVR 拉起,否则可能报
OpenXR call failed with result XR_ERROR_RUNTIME_FAILURE。 - 手势识别失败:若只勾选 OpenXR + PicoOpenXR 而未勾选
OpenXRHandTracking,则无法获取手指骨骼节点坐标,仅能识别掌心位置。 - 手柄保活问题:部分串流模式下手柄处于保活状态,可能导致系统级手势触发无效。尝试在头显设置中将互动模式改为'仅手势'测试。
总结
对于大空间 VR 开发,建议采用 PicoOpenXR + OpenXR 插件 + 企业串流 v2.0 的组合。该方案在 EXE 打包、手势追踪稳定性及 PC 端性能占用上表现最优。PDC 仅适合作为 APK 开发的临时调试手段,不建议用于最终性能评估。

