
Meta Quest Guide
This guide walks you through setting up an Unreal Engine 5 project with the Head Mounted VR plugin for Meta Quest.
General Information
This guide provides a detailed walkthrough for setting up Unreal Engine 5 (UE5) projects, versions 5.4 to 5.5, to work with the Head Mounted VR (HMVR) plugin for Meta Quest VR headsets. It focuses on installing and configuring HMVR, setting up UE5 for Android with an emphasis on Android Studio, and ensuring compatibility through UE's OpenXR integration. HMVR relies solely on UE's OpenXR integration for VR functionality, eliminating the need for additional plugins(But it is still possible to use it with MetaXR plugin).


Getting Started
-
Install and enable the HMVR Plugin by following Start Guide.
-
Install Android Studio: Get it from here.
-
Follow the Unreal Engine Android Studio Tutorial.
-
Configure UE5 Project: In Edit > Project Settings > Platforms > Android, set SDK/NDK/JDK paths.

5. Inside the Android settings:
-
Package Game Data Inside .apk = true
-
Disable verify OBB on first start/update = true
-
Support arm64 [aka arm64-v8a] = true
-
Package for Meta Quest devices = true
-
Remove Oculus Signature Files from Distribution APK = true

Demo Preparation
The demo provided with HMVR was originally designed for PC VR, and some features may not work as expected on Android for Meta Quest.
Here's what you need to know and how to fix it:
Materials and Distance Fields
The demo uses fake distance fields in some materials, which are not supported on Android. This can cause errors and prevent materials from displaying correctly. To fix this:
-
Open the material blueprint that's causing issues.
-
Locate the section using distance field nodes(Attached screenshot).
-
Unpin or remove that section to disable the distance field functionality.
Settings to Watch Out For
When preparing your project for Android deployment, be mindful of the following settings, as they may behave differently or cause performance issues on mobile:
-
UE VR Foveation Rendering: Console commands must be turned of in the project settings or config file(Otherwise project might not start up): xr.VRS.FoveationLevel, xr.VRS.DynamicFoveation.
-
Post-Processing Settings: Some effects may be too resource-intensive or incompatible with Android. Consider simplifying or disabling them. Demo has postprocess volume. It is better to remove it.
-
Distance Fields: As noted, distance fields don't work well on Android and should be avoided or replaced with alternatives.
WARNING: SINCE THE DEMO LEVEL WAS MADE FOR PC VR, IT MIGHT HAVE LOW FPS.
