XR Meta Quest setup guide covering everything Unreal Engine 5.6.x
https://dev.epicgames.com/community/learning/tutorials/2KR1/unreal-engine-5-6-x-for-meta-quest-vr
Thanks for tut. 2 moments:
According “Simulator“ - it’s VERY USEFUL feature. As a VR developer, i can say, that putting HMD on/off for testing is pain in the xxx, and very slow. So, “Simulator“ is necessary. Meta release 83 version as “Windows installer“, but as far as i tested it’s not as good as previous versions. Especialy for MP Development (second window don’t open). But the good news is - you can use simulator v81.
And Simulator v81 you should unpack to
C:\Users\Username\AppData\Local\MetaXR\MetaXRSimulator\81
UE 5.7.1 version has large XR improvements, so this version is preferable. We can wait for Meta releasing version for 5.7.1, or you can use my recompiled version for 5.7.1.
Just create VR-Template project and unzip it to folder Project/Plugins. (I’m not tested a lot, but it seems all working.).
So, i think community will be appreciated, if you add Simulator to guide and rewrite guide for 5.7.1.
Added the Simulator to the guide with a note on how to change versions; keeping the community happy ![]()
As for UE5.7.1, I’m aware of the great plugin from TrueFranco, but it’s unofficial. I’d love to see Meta keep up, though they seem to prefer staying a version behind when it coming to Unreal.
Hey, thanks for sharing step by step how to setup sdks for 5.6!
not sure if this is right place or not but did you try the Unreal Interaction_sdk_sample
I tried both version (zip file from github and cloning it from repo) but they didn’t work!
it asks me to build the source manually?!
’’MetaIsdkSample could not be compiled. Try rebuilding from source manually’’
I also updated the msvc component version through the visual studio installer to 14.38 which was higher than my current verserion “14.36” but I fell into a loop which asks me to install the other one ![]()
Sorry, Milaad; I haven’t tried the “Interaction_sdk_sample,” since I’ve never needed it. And honestly, I’m not really up for testing things for Meta. They’re a multi-million-dollar company with a paid team for that
.
no problem man. got it. ahaha true. unfortunately the support is not much good and also there is not specific documentation to check for this project.
I don’t know if you’ve seen the latest update of them which shows hand’s fast movement smoothness or not but somewhat, I need that ( Oculus Interaction plugin ) for one of my projects!
I’d be appreciated it if you have any other suggestion
Thanks, Milaad
Thank you for the guide!
One note:
It was unclear to me that I have to choose LATEST commanl line tools version. For now the latest is 19. But I just see the number “17” and decided to use it contrary to the guide ![]()
Adjusted to Latest (version 19) and retested.
Thanks for spotting that.
Thanks for the guide. I still have some problems building my project. I have this error message: LogClass: Error: EnumProperty FMRUKEnvironmentRaycastHit::status is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogClass: Error: StructProperty FMRUKEnvironmentRaycastHit::point is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogClass: Error: StructProperty FMRUKEnvironmentRaycastHit::orientation is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogClass: Error: StructProperty FMRUKEnvironmentRaycastHit::normal is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogClass: Error: StructProperty FOculusXRBodyJoint::OrientationQuat is not initialized properly even though its struct probably has a custom default constructor. Module:OculusXRMovement File:Public/OculusXRMovementTypes.h
LogClass: Error: ArrayProperty FOculusXRBodyState::Joints is not initialized properly even though its struct probably has a custom default constructor. Module:OculusXRMovement File:Public/OculusXRMovementTypes.h
LogAutomationTest: Error: LogClass: EnumProperty FMRUKEnvironmentRaycastHit::status is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogAutomationTest: Error: LogClass: StructProperty FMRUKEnvironmentRaycastHit::point is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogAutomationTest: Error: LogClass: StructProperty FMRUKEnvironmentRaycastHit::orientation is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogAutomationTest: Error: LogClass: StructProperty FMRUKEnvironmentRaycastHit::normal is not initialized properly. Module:MRUtilityKit File:Public/MRUtilityKit.h
LogAutomationTest: Error: LogClass: StructProperty FOculusXRBodyJoint::OrientationQuat is not initialized properly even though its struct probably has a custom default constructor. Module:OculusXRMovement File:Public/OculusXRMovementTypes.h
LogAutomationTest: Error: LogClass: ArrayProperty FOculusXRBodyState::Joints is not initialized properly even though its struct probably has a custom default constructor. Module:OculusXRMovement File:Public/OculusXRMovementTypes.h
LogOculusXRColocation: Warning: Unable to retrieve OculusXRHMD, cannot add event polling delegate.
LogOculusXRPassthrough: Warning: Unable to retrieve OculusXRHMD, cannot add event polling delegate. (current xrsystem : OpenXR)
LogOculusXRScene: Warning: Unable to retrieve OculusXRHMD, cannot add event polling delegates.
LogOculusXRAnchors: Warning: Unable to retrieve OculusXRHMD, cannot add event polling delegates.
PackagingResults: Error: Unknown Error
PackagingResults: Error: Unknown Error
PackagingResults: Error: Unknown Error
and im not really sure how to fix it if any of you have a solution that would be great
Have you find any solution for this I have the exact same error
thx
Hi 9Evgeny9,
Thanks for providing the recompiled MetaXR plugin for 5.7.1! I’m trying to use it with UE 5.7.3 and ran into a specific issue.
My project requires DirectX 12, so I can’t use the standard Oculus OVRPlugin path due to the rendering bugs (flickering and the white-eye issue). Because of that, I need to rely on the Epic Native OpenXR backend.
However, when using the Epic Native path, MRUK fails with:
MRUK Shared: OpenXR not initialized. Can not start anchor discovery.
Failed to start anchor discovery: 3
It looks like the Meta extensions (e.g., XR_FB_scene, XR_FB_spatial_entity) aren’t being registered in the Epic Native OpenXR instance, even with the correct Android permissions.
Since you recompiled the plugin, do you know if there’s a way to make the Epic Native backend recognize these Meta extensions? Or if something like the WITH_OCULUS_BRANCH macro needs to be enabled in your build for scene support?
Any insight would be greatly appreciated.
Have you find any solution for this I have the exact same error
thx
These tutorials are wonderfully useful. Whenever I upgrade my engine, this is where I come to get my APK packages back up an running.
Can I ask, where do you get these specific numbers? I looked over the Unreal Documentation for UE 5.6.x (Set Up Android SDK, NDK, and Android Studio using Turnkey for Unreal Engine | Unreal Engine 5.6 Documentation | Epic Developer Community) and can see:
Java SE Development Kit = 21.0.3
Android Studio version = Koala 2024.1.2 Patch 1
The recommended version of Android SDK = 35
The minimum version of Android SDK = 34
The SDK Build-tools = 35.0.1
But I don’t see the following anywhere in the documentation:
NDK = 26.1.10909126 (the documentation just says “r27c”)
There is no mention of the SDK Command-line Tools
There is no mention of CMAKE = 3.22.1
There is no mention of Android Emulator, Android Emulator Hypervisor Driver, and Android SDK Platform-Tools.
Where are you getting this specific information? Am I just missing it somewhere in the documentation? Or are you guys grinding through the different numbers to find the secret recipe? I ask because I’m quite dependent upon your (and other) tutorials to get my APK packages working any time I update UE, and I would like to be able to do it myself.
Appreciate you posting these step-by-step guides. They are a life saver.
I’ve spent many years working with Java, Android, VR, and AR. A lot of the version numbers are relate to Android, not necessarily VR Android -then we have Meta Android; yep, lots of fun testing.
I’m currently considering creating a vanilla setup guide for the latest version of Unreal Engine while I look into Steam Frame. Since most of Meta XR’s core functionality is now built into vanilla Unreal, the Meta Quest Platform Plugin may be the only additional plugin still worth using.
@antinnit thank you very much for this comprehensive guide! I’ve been trying to go through this at my workplace as our Games Development course would like to do Unreal VR development with our Quest 3S headsets. However when adding the MetaXR plugin to the project and restarting the editor, I receive an error as follows:
The procedure entry point ?GetModularFeatureName@!EyeTrackerModule@@SA?AVFName@@XZ could not be located in the dynamic link library Engine\Plugins\MetaXR\Binaries\Win64\UnrealEditor-OculusXREyeTracker.dll
Can you suggest why this might happen? The guide says it is for UE 5.6.x so I had assumed it would work with the 5.6.0 that we are currently using here, but do I need to update to 5.6.1?
I don’t see this error on UE 5.6.1, and Meta’s downloadable MetaXR plugin appears to target 5.6.1, so engine/plugin compatibility is one possibility. It could also be caused by conflicting plugins or stale plugin references in the .uproject. I’d check the enabled plugins and then close UE followed by deleting the Build, DerivedDataCache, Intermediate, and Saved folders.
Note: default plugins in your .uproject should be: OpenXR, OpenXREyeTracker, OpenXRHandTracking, OculusXR, OculusPlatform
@antinnit You’re right! Updating to 5.6.1 has solved this error, however now I am faced with a new issue to do with Gradle. It seems Unreal Engine is trying to download from services.gradle.org, but that website has updated its certificate to one that is not automatically trusted by Java. I tried adding the CA root and intermediate certs to the Java cacerts file (tried both keytool and KeyStore Explorer methods) but this has not got rid of the error.
Do you know if there is a way to tell the Gradle component of Unreal Engine to either use the Windows system certificate trust store, or trust the new certificate anyway?
In a normal Gradle installation the former can be accomplished by putting:
systemProp.javax.net.ssl.trustStore=NUL
systemProp.javax.net.ssl.trustStoreType=Windows-ROOT
in gradle.properties, however when I tried to do that it is overwritten by the Unreal Engine build process.
Answering my own question, the solution was to set JAVA_OPTS environment variable to -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT .
Another issue I encountered was needing to move GRADLE_USER_HOME away from the user profile folder and exclude it from antivirus.
After doing both of these things, the VR template app was able to successfully launch via USB Debugging.
Glad to hear you have it building successfully. I have not come across a Java certificate issue myself, so I would be interested to know whether anyone else has experienced the same problem. I recently ran a distribution build and it completed successfully, so I cannot say for certain what caused the issue here. It may be that something in the Java installation or configuration was changed inadvertently, which is easy enough to do.
Long Road IT mentioned they were trying to set this up for work. I’m wondering if Long Road IT is trying to set this up on an Enterprise computer, and is experiencing technical issues that are unique to their company’s PC configuration? In my experience, Enterprise software tends to introduce a lot additional of technical issues. Tutorials that work perfectly on my personal computer will sometimes not work on my Enterprise computer. Just a guess. You tutorial worked perfectly on my newly reimaged personal computer.
