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

Sources