跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

虚幻引擎 Pico 大空间 VR 开发:原点坐标与项目优化技巧

综述由AI生成介绍基于虚幻引擎(UE5)和 Pico 一体机的大空间 VR 开发流程。涵盖追踪原点设置(SetTrackingOrigin)、不同模式下的坐标朝向处理、移动端与串流环境的性能优化策略(如关闭 Lumen、调整分辨率、抗锯齿设置)、网络同步方案(UDP 广播 NPC 模拟)以及打包常见问题(内存、CPU 调度、路径限制)。提供了针对 PicoXR 插件的配置注意事项及光照色差修正方法。

SqlMaster发布于 2026/4/5更新于 2026/6/440 浏览
虚幻引擎 Pico 大空间 VR 开发:原点坐标与项目优化技巧

大空间头显坐标朝向

一体机设备开启大空间定位识别,并框选障碍物范围。非企业版设备若无内置大空间功能,需使用第三方定位方案。

大空间一体机范围设置文档参考官方技术文档。

通过 UE5 默认的 VR 项目模板,修改 SetTrackingOrigin 记录(括号内为旧版本枚举选项):

  • OpenXR 有线串联模式下,Stage、View(eye、EyeLevel)、Local floor(StandFloor、FloorLevel)、Local(SitFloor)、customOpenXR 模式下,大空间标记障碍物和 VR 场景障碍物匹配。
  • Reset Orientation and Position 则以当前玩家的位置和头显正朝向作为场景默认初始点。
  • 打包 Pico Android Apk,在 Stage、View(eye)、customOpenXR 模式下,以应用启动的第一次玩家位置和正朝向作为场景默认初始点。
  • Local floor(StandFloor、FloorLevel) 站姿模式,正常实现大空间标记障碍物和 VR 场景障碍物匹配。
  • Local(SitFloor) 坐姿模式,角色模拟坐姿,现实站着对应着 VR 角色高度只有一半。

PlayerStart 坐标如图左下角,真人位置如图右侧。在大空间项目场景,Pawn 在原地不同,用户带着头显走路,即为 Camera 移动坐标。

大空间移动方案

推荐使用 VREP 项目模板进行开发,移动时有 SetActorLocationVR 方法调用,可以快速移动 Camera 到目标位置。使用 SetActorLocation 也可以,需要自己封装个方法计算目标位置的 Pawn 相对于 Camera 坐标的偏移量。

VRAF 框架适配

使用虚幻商城的 VR Advanced Framework 项目模板开发大空间 VR,该模板默认功能为项目运行启动后,以现实里的头显朝向为虚幻场景的正北 正 X 方向。

修改方法:把过渡蓝图的 BP_Transition 和 BP_PlayerPosition 的瞬移方法参数 UseRotation 改为 false。

VRAF 框架源码在瞬移时设置了根据头显坐标重置了胶囊体位置,不适用于大空间,BP_Pawn_Base 的子类 BP_Pawn_VR 中屏蔽 AutoAdjustCapsulePosition 方法。

优化方法记录

常见问题总结

针对一体机开发打包 apk,使用 PicoXR 打包 apk,使用 picoOpenXR 打包 apk 或者 exePicoXR 和 PicoOpenXR 不能同时使用。使用 PicoXR 插件时,也不能勾选 OpenXR 插件。UE 项目设置,以 VR 启动勾选。使用 PicoXR 插件或者 PicoOpenXR 插件打包 apk 时,查阅 Pico 官网开发注意事项。

PicoXR 文档 apk 开发注意事项

目前,在 UE5 中使用 PICO Unreal Integration SDK 开发应用你需要注意以下事项:

  • 需关闭 OpenXR 插件;
  • UE5 不支持 OpenGLES,仅支持 Vulkan;
  • 若仅左眼视图被渲染,可通过勾选 Mobile Multi-View 解决。
  • SDK 不支持 Lumen。Lumen 不支持移动平台。
  • SDK 不支持 Nanite。目前 Nanite 只用在延迟渲染管线中,暂不支持移动端的前向渲染管线。

若你需在 UE5 中使用平台服务,除上述问题外,还需关注以下问题:

  • Visual Studio 无法编译 Android Development Target 代码。
  • WidgetInteraction 组件可能存在缺陷,会导致 3D UI 交互出现问题。解决方法为,设置用户索引,或者使用 VR 框架模板。
  • 对于播放 Animation Sequence,需要将 SkeletalMeshActor 下的 Visibility Based Anim Tick Option 参数的值修改为 Always Tick Pose and Refresh Bones。

如果使用 OpenXR 插件 +PicoOpenXR 插件打包 exe 串流,可以 Lumen 光追,但是代价特别卡,因为头显设备 2 个眼睛屏幕+PC 屏幕,性能开销特别大。追踪原点 SetTrackingOrigin 为 Local floor(StandFloor、FloorLevel) 站姿模式。

VR 串流显存占用高

如果开发 PC 串流 VR 项目,可以 SteamVR 串流或者 OpenXR 串流。项目推荐关闭 Lumen,否则性能开销特别大。

HTC VR 设备分辨率

VivePro2 头显(5K 分辨率),VivePro 头显(3K 分辨率),Pico4UE 头显(4k+ 分辨率)。分辨率参考相关技术文档。

HTC VR SteamVR 串流对比

在 SteamVR 串流时,可以在 SteamVR 的设置修改串流时的单眼渲染分辨率。3K 分辨率 100%,单眼分辨率 2016x2240。5k 分辨率 150%,单眼 5920x5920。默认即使不启动 VR 项目,头显观看 SteamVR 默认木屋大厅时,高端显卡显存占用较高。

解决方法

VivePro2 官网单眼分辨率显示是 2448x2448,SteamVR 相当于在高分辨率采样渲染输出 3 块屏幕,导致 VR 项目的性能占用特别高。所以关闭 lumen,降低渲染 SteamVR 分辨率,开启 DLSS 可以有效提高帧数。

现场环境坑

在展会现场时,因为周围相邻的展厅音响震耳欲聋,隔壁的射灯,瓷砖地板反射,导致信号接收器数据不稳定,头显运行时间长导致过热,都会导致 5k 头显运行 VR 项目时变卡。最大原因可能是音响的震动,导致信号器一直抖动。解决方法是把 5k 头显换成 3k 头显,抗干扰性好,因为设备分辨率渲染输出压力没有 5k 头显那么大。

移动端优化工作流

移动端的法线贴图和热贴图显示不明显,可以删除节约性能,WorldPositionOffset 和 AmbientOcclusion 和 PixetDepthOffset 断开。

修改材质球中的金属值 0、镜面反射高光值 0、粗糙度 0.6~1,从向量计算改为固定值适用于移动端。

模型 lod 处理,实例化静态模型,Landscape 的 mobile 材质 使用全精度。

移动端打包设置

PicoXR 打包文档参考官方技术文档。

缩小游戏压缩包:勾选 创建压缩烘焙包(Created compressed cooked package)。

若安装 APK 文件至 PICO 设备时失败,并出现类似 Requires newer sdk version #30 (current version is #29) 的报错信息,你需参考配置 Android SDK 将 SDK API Level 设为 matchndk,将 NDK API Level 设为 android-29。

使用虚幻引擎 5 打包的 Shipping 模式的 .apk 文件装到 PICO 设备中打开后,如果该应用亮灭屏后闪退,有可能是你在 编辑 > 项目设置 > 插件 > AndroidFileServer 的 打包 选卡下,取消勾选了 使用 AndroidFileServer。你需勾选该选项后重试。

VREP 开源模板的 Render 默认设置,可做打包 apk 时的参考。

移动端光照偏灰和 PC 预览不一致

PC 和移动端的光照环境的色差问题,打包 apk 的画面默认偏灰。

  1. 修改预览设置改为 Android Vulkan Mobile,此模式下无法使用地编功能,画面偏灰。
  2. 添加后处理,把自动曝光改为手动,并修改曝光补偿为 10,此时预览 Android Vulkan Mobile 和 预览 D3D SM6 的对比 PC 画面、头显画面和 apk 打包头显画面,仍有一点色差,apk 依旧偏灰一点。
  3. 打包 apk 后,关闭自动曝光的环境光照色差和 PC D3D SM6 预览 和 PC Android Vulkan Mobile 预览近似。

移动端烘焙影子优化

UE5.4 里左眼阴影闪烁,除了定向光源属性不能是可移动,还可以通过控制台命令 r.Shadow.Virtual.OnePassProjection 0 解决灯光闪烁,但是它禁用了优化,所以预期会有轻微的帧数下降。

打包 apk 时,所有贴图纹理降低成最小的 mipmap 质量,包括烘焙的阴影贴图。论坛解决方法是渲染设置里关闭 TextureStream。

贴图设置参考 UE 文档。UE5.6 纹理流送文档参考官方文档。

慎用贴图选项勾选 'Never Stream' 属性则为永远不流送,同时把 'Compression Settings' 设置为 'UserInterface2D' 后,性能开销非常大。

移动端贴图模糊

只有 PicoXR 文档参考官方技术文档。PicoOpenXR 打包 apk 时也能参考优化技巧。

  • 降低边缘锯齿感:开启四倍抗锯齿(4x MSAA)
  • 提升纹理清晰度:对所有纹理开启 Mipmap 与 Trilinear Filtering,并对墙面、地面等可能存在倾斜视角的纹理开启 Anisotropic Filtering。

细节面板的 层次细节 选项卡中通过 Mip 生成设置 自定义 mip-map 链内容的外观。

使用三线性过滤(Trilinear Filtering)
使用各向异性过滤(Anisotropic Filtering)

与 Trilinear Filtering 相比,Anisotropic Filtering 的性能开销更高。建议仅为墙面、地面等有需要的纹理开启 Anisotropic Filtering 即可。

大空间网络同步优化

企业版一体机用户可以使用 Pico 运营系统,pico 的运营播控系统提供了多个队伍之间的通讯以及显示队友形象的功能。

尝试过无 PC 服务器,直接一体机做内容服务器,FindSession 的 RPC 角色同步方案和 PC 做房主的内容服务器,改成了 PC WebSocket 服务器,只发送接受头显坐标数据,然后一体机内接受队友头显坐标,创建一个 NPC 模拟队友进行同步移动,最后改成了无 PC 服务器,每个一体机设备 udp 群发自身头显坐标,其他设备接受坐标后创建对应的 NPC。

因为 VR 项目,各个游客之间没有内容上的游玩互动,只需要显示队友位置,避免游客相互撞到即可。

Pico 官方运营播控系统

根据播控系统开发文档可以得知 pico 的播控系统使用 TCP+ 心跳验证,5m 内同步靠近玩家的形象数据用于避免碰撞。大空间播控系统运营方案,可以通过飞书向 pico 申请阅读文档权限。

  • 导出内容动线:内容制作完成以后按照指定格式导出内容动线数据。
  • 内容客户端:入口函数接收启动命令行参数,基于参数实现内容玩法。
  • 官方播控系统的内容服务器:按照 33ms 间隔,收集内容当前所有玩家的进度信息,发送:标准内容同步指令,到指定服务器。接收桥接服务器发送过来的:标准播控指令,并在客户端实现对应的播控逻辑。收桥接服务器发送过来的:标准玩家可见性数据指令,在客户端显示其他内容的近距离玩家。

内容运营解决方案的播控系统的服务收费标准暂未知晓。Pico 官网收费:设企业设备管理平台收费标准:试用一年,29 元/台/月,299 元/台/年;其功能为设备管理同步地图数据。

串流 Wifi 信道问题记录

Pico 一体机如果搭配台式电脑主机使用,可以使用无线 Wifi 串流,局域网 Wifi5G 支持 4 个客户端,局域网 Wifi2.4G 支持 2 个客户端流程运行。

如果客户端过多,同个物理空间内 Wifi 信道重叠对网速有影响。

猜想未验证:如果 2 台 wifi 设备放在房间两侧,通过 mesh 组网,当 4 台一体机同时呆在房间一侧,是不是出现 4 台一体机都自动连上这一侧的 wifi 设备,就容易导致一边的这台 wifi 设备出现高负载。如果 2 台 wifi 设备用不同名字不同信道,且各自能翻盖全房间,是不是 1 台 wifi 设备只连接 2 台主机 2 台 pico,就能极大地改善串流延迟。

VR 视频清晰度优化

提高视频分辨率,专属视频编码,例如 Pico 自带的全景视频复制到 PC 中则无法用 PopPlayer 播放器直接播放。

打包常见问题

渲染闪退 硬件原因

打包 exe 时,提示 shader 材质球渲染相关报错,可能是 cpu 问题,重启电脑可以正常打包。可能是 cpu 缩缸,在 bios 中关闭 xmp 自动睿频,或者关闭 EXPO,或者关闭 gameboost,再进行打包。降频降压使用,验证是否还能正常使用就是通过黑猴的着色器渲染的测试。

内存不足

因为项目资源太大,打包失败提示内存不足,有一台电脑 32g 内存添加 70g 虚拟内存后,就可以正常打包。

Win10 电脑虚拟内存设置方法参考相关技术文档。

专属文件夹名称限制

Error: The following files are set to be staged, but contain restricted folder names ("Desktop")

UE5 项目内不能使用 Desktop 作为文件夹名字,属于限制关键词,否则打包 android 失败。

Win10 系统打包 CPU 大小核调度不满

因为需要修改 render 配置和反复打包 apk,win10 系统的 cpu 在大小核调度上有问题,导致编译 shader 时 cpu 不能占用 100%。

解决方法是在引擎的 BaseEngine.ini 文件,将 NumUnusedShaderCompilingThreads=3 改为 NumUnusedShaderCompilingThreads="你的数量(CPU 线程数量)"。

如果上述方法没有提升,使用另一种方法,对大小核 CPU 调度有明显提升。在 BaseEngine.ini 文件,搜索 PercentageUnusedShaderCompilingThreads,把默认 50 改成 5。或者升级 win11 系统,提高大小核调度。

Build Run 运行安装报错

如果直接 BuildRun 后想在真机上查看运行效果,真机最好需要按手柄按键或者戴上头显设备,目的是触发 adb 激活连接,激活 Pico 设备才可以正常自动打包、传输、启动 apk 后显示画面,否则有概率黑屏。

避免黑屏概率问题,推荐流程是先打包成 apk,然后手动鼠标双击 install.bat 文件安装 apk,再在一体机中用手柄射线启动 apk。

VR 模板映射 Pico 按键无抓握动画

使用 PicoOpenXR 或者 PicoXR 插件,在增强输入配置 Pico 设备的按键映射,VR 运行时抓握缺失部分动画,可能是优先级问题,VRPawn 的 Begin 中的 AddMappingContext 优先级改为 1 即可。

目录

  1. 大空间头显坐标朝向
  2. 大空间移动方案
  3. VRAF 框架适配
  4. 优化方法记录
  5. 常见问题总结
  6. PicoXR 文档 apk 开发注意事项
  7. VR 串流显存占用高
  8. HTC VR 设备分辨率
  9. HTC VR SteamVR 串流对比
  10. 解决方法
  11. 现场环境坑
  12. 移动端优化工作流
  13. 移动端打包设置
  14. 移动端光照偏灰和 PC 预览不一致
  15. 移动端烘焙影子优化
  16. 移动端贴图模糊
  17. 使用三线性过滤(Trilinear Filtering)
  18. 使用各向异性过滤(Anisotropic Filtering)
  19. 大空间网络同步优化
  20. Pico 官方运营播控系统
  21. 串流 Wifi 信道问题记录
  22. VR 视频清晰度优化
  23. 打包常见问题
  24. 渲染闪退 硬件原因
  25. 内存不足
  26. 专属文件夹名称限制
  27. Win10 系统打包 CPU 大小核调度不满
  28. Build Run 运行安装报错
  29. VR 模板映射 Pico 按键无抓握动画
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 二分查找进阶:如何精准定位目标值的边界
  • AI 产品经理职业发展前景与核心能力解析
  • Java 核心面试题与解析:基础、并发、容器等高频考点
  • 基于 Web Unlocker 与 n8n 的自动化资讯采集与推送实践
  • Python 推导式底层实现:从语法糖到 CPython 字节码分析
  • Llama-3.2-3B 本地部署实战:Ollama+Grafana 监控看板
  • COT 思维链:引导 AI 拆解复杂问题,模拟人类思考
  • 前端微前端架构:大型项目的优势与风险
  • Discord 机器人创建与配置完整流程
  • 基于 LangChain 的 RAG 与对话记忆实现
  • Ollama 本地部署与运行大型语言模型指南
  • N8N 结合 Claude Code 实现 AI 智能体自动化编排
  • 飞书机器人对接 Claude Code 实现移动端 AI 编程辅助
  • ThreadLocal 原理、使用场景及内存泄漏问题解析
  • 程序员转行大模型领域:热门岗位与学习路径解析
  • 文科生利用 Python+AI 进行应用开发与变现实战
  • Stable Diffusion 视觉提示词注入攻击原理与实现
  • AI 大模型定义及其在物流行业的变革应用
  • llama.cpp本地部署性能调优指南:从启动瓶颈到推理效率优化
  • 本地离线部署 AI 大模型:OpenClaw + Ollama + Qwen3.5 实战教程

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online