# Tutorial — OpenXR Headset Builds *Augmented Traveler local tutorial.* Back to [[Unreal — Tutorials]] · then: [[Tutorial — Packaging Builds for Each Surface]] · surfaces: [[Quest — Process]] · [[Vive — Process]] · [[Android XR — Process]] · [[Apple Vision Pro — Process]] How to set up the studio project so one figure runs on **Quest 3**, **Vive** and **Android XR** headsets through **OpenXR**, with notes on **Vision Pro**. > **Draft.** Several vendor plug-ins had not confirmed UE 5.8 support as of September 2026 (see the table). Validate on Quest 3 first and update this page. ## 1. Plug-ins and status (September 2026) | Headset | Route | 5.8 status | |---|---|---| | **Any OpenXR headset** | Epic's built-in **OpenXR** plug-in | ✅ Ships with 5.8. Our baseline | | **Meta Quest 3 / 3S** | Epic OpenXR + (optional) **Meta XR** plug-in, or Meta's engine fork | ⚠️ An open Meta bug reports the "5.8" Meta XR plug-ins were really built for 5.7. **Start with Epic's OpenXR plug-in**; add Meta XR only for features we need (passthrough, hand tracking) once fixed | | **Android XR** (Samsung Galaxy XR and others) | Google's Android XR OpenXR plug-in + extensions (Developer Preview) | ⚠️ Google's May 2026 guidance targets **UE 5.6.1**; 5.8 is unconfirmed | | **Vive Focus Vision (standalone)** | Epic OpenXR; the VIVE OpenXR plug-in lists UE 5.2–5.4 only | ⚠️ Use core OpenXR; test | | **PC-VR (tethered)** | Epic OpenXR through the headset's PC runtime | ✅ | | **Apple Vision Pro** | UE visionOS target: **fully immersive only**, no passthrough; built on a Mac with Xcode | ⚠️ Experimental; confirm 5.8 support on the Mac seat | ## 2. Project settings for standalone headsets Put these in `Platforms/` config overrides so the kiosk build isn't affected: | Setting | Value | |---|---| | Rendering → **Forward Shading** | On (mobile headsets) | | Anti-aliasing | **MSAA** (4×) | | **Instanced Stereo** | On | | **Mobile Multi-View** | On | | **Mobile HDR** | Off (for mobile VR) | | Start in VR | On | | `vr.PixelDensity` | 1.0 (tune per device) | | Lighting | Baked or simplified; no Lumen on standalone | | Character | MetaHuman **Optimized** assembly, strands off beyond LOD0 or cards; skinned-only clothing to start ([[Tutorial — Period Layers, Hoops and Skirts]]) | | Frame rate target | 72–90 fps; profile often | ## 3. The XR pawn 1. Make `BP_AT_XRPawn`: a camera at the head, **Motion Controller** components for the hands, and hand tracking later. 2. Put the figure at a comfortable distance (1.5–2 m). Use **real scale** (the figure's actual height) and a floor at the real floor height. 3. **Comfort rules:** - no forced camera motion; - teleport or no locomotion; - seated mode for accessibility; - captions attached near the figure, not to the face. 4. **Input:** a **push-to-talk** button (controller trigger or a pinch gesture) for questions ([[Tutorial — Authoring a Q&A Experience with Ambient Idle]]). 5. **Stereo layers** for captions and UI: 5.8 lets OpenXR stereo layers draw behind the scene, which helps caption readability. ## 4. Run and test 1. Enable developer mode on the headset. Connect by USB. 2. In the editor: **Platforms → Android → (device) → Launch** for a quick test, or package properly ([[Tutorial — Packaging Builds for Each Surface]]). 3. On-device checks: - `stat fps` and `stat unit`; - the figure's LOD in use; - cloth off or on; - audio latency in Q&A. ## 5. Check before a headset build ships - [ ] Holds 72 fps (Quest) through the monologue and in Q&A - [ ] Figure at real height; floor correct; no clipping at 1 m - [ ] Captions readable and comfortable - [ ] Push-to-talk works; the microphone permission prompt is handled - [ ] Fleet set-up for venues (ArborXR/ManageXR) tested with the XR engineer ## Sources - Epic, XR best practices: https://dev.epicgames.com/documentation/en-us/unreal-engine/xr-best-practices-in-unreal-engine - Epic, Developing for head-mounted experiences with OpenXR: https://dev.epicgames.com/documentation/en-us/unreal-engine/developing-for-head-mounted-experiences-with-openxr-in-unreal-engine - Epic, OpenXR prerequisites: https://dev.epicgames.com/documentation/en-us/unreal-engine/openxr-prerequisites-in-unreal-engine - Epic, Supported XR devices: https://dev.epicgames.com/documentation/unreal-engine/supported-xr-devices-in-unreal-engine - Meta, Unreal compatibility matrix: https://developers.meta.com/horizon/documentation/unreal/unreal-compatibility-matrix/ - Meta, bug report on 5.8 Meta XR plug-ins: https://developers.meta.com/horizon/feedback/vr/investigations/1053459897316880/ - Google, Android XR for Unreal: https://developer.android.com/develop/xr/unreal - Google, Android XR updates for Unity, Unreal, Godot (May 2026): https://android-developers.googleblog.com/2026/05/android-xr-updates-unity-unreal-godot.html - VIVE OpenXR for Unreal download page: https://developer.vive.com/resources/openxr/unreal/unreal-download/latest/ - VIVE OpenXR MetaHuman sample: https://github.com/ViveSoftware/ViveOpenXR_MetaHuman_Unreal - Brown University VR wiki, UE5 for visionOS: https://www.vrwiki.cs.brown.edu/hardware/vr-hardware/apple-vision-pro/development-approaches-for-visionos/ue5-for-visionos - Full list: [[Sources — 2026-09-19]]