VRPawn stuck at floor in Built project PC/VR - Quest 2.

Hey guys!

I have a PC/VR project going on, in which in unreal preview mode works ok… but when I build to have a .exe for windows, when it starts, my camera is on the floor and never leaves the floor no mather what i do…

In the previous versions - that used controllers - preview and build work great.
In this version, I’m using handtracking - preview works great, but in the built project, hand tracking also works perfectly, but the camera/my pawn doesnt leave the floor.

Any Idea on what It’s going on?

The difference in editor/build is strange to me.

Search your Blueprints (Tools → Find in Blueprints) for the ‘Set Tracking Origin’ node.

If it doesn’t exist: add it and experiment with the 3 options.

If it does exist: try adding a short delay before executing it.

Also, try to verify that you’re possessing the correct pawn. (‘Get Player Pawn’ node → ‘Get Display Name’)

1 Like

Hey! Thanks for your time!

I do set the tracking origin to stage. Tried with the other 2 options, same result.

Also tried with and without delay, same result.

I am using the correct pawn, since it’s the only one I have setup for handtracking, with a few cubes as children of my camera just to check if it was really the pawn.

Tried with the other pawn, which uses only controllers and issue still happens, which is odd, since it never happened in previous versions.

You’re welcome,

The next step might be to see if it’s something specific to your project, or something related to the engine version/plugin.

So I’d try creating a new project. (Take note of which VR plugins you’re enabling/disabling) and testing with a basic pawn/handtracking setup.

1 Like

Hey!
I’ve created a new default VRProject and was able to build for windows and the issue persists. - tried both with ontrolers and handtracking setup.

I created a third person project, added the VR template to it through the content browser and same thing, same issue. - I haven’t tried handtracking in this one, I kept the project default, only activating what was needed t run it as VR.

I’ve seen a lot of people saying they can’t use handtracking in PC/VR builds, But what’s interesting is that my hands are being tracked perfectly fine, aswell as my controllers and everything else inside my pawn blueprint.

The only issue is that im stuck on the floor - as if it doesnt detect my height - and teleports dont work - I can point at the floor and see the laser - but it doesnt teleport to the area. -this happens in both default vrproject andon my own project

Thank you for your time!

Hi again,

I was surprised to hear that you were able to have Oculus hand tracking working in a PCVR project. (Did you need to enable either ‘Oculus VR (deprecated)’ or ‘OpenXRHandTracking’ plugin?)

Backing up a bit:

My friend pointed out that the collision on things attached to the camera can affect the camera location. So try deleting all of the cameras children. (Also check scene collision with ‘Player Collision’ viewmode)

Hey!

Yh, I’m running only with MetaXR abd OpenXR plugins active, nothing else.

It runs normally, I even have setup some overlaps and stuff in my hands that make it possible for me to intercept and use the grabbing system present in the orignal VR Template with controllers.

And despite the camera not leaving the ground, I was able to test the handtracking in an .exe build for windows, and works great.


In the meantime, I tested this issue in a completely default VR project, using controllers (without setting up handtracking, the only thing I did was activate the MetaXR) - this to mention that I do not have anything attached neither to my hands or camera.

I also tested the same setup but starting from a default Third Person project with full raytracing working - added the vr template content - turned on MetaXR and same issue happens.

Thanks for your time!

1 Like

Hi, @Moura and @Astrotronic:
I have encountered the same problem with Meta Quest 2:
I use UE5.1.1 (the one from EpicGamesLauncher, not the one from Meta) since I want to use its animations. I create an XRTemplate project with nothing else, I put the MetaXR plugin, deactivating the old OculusVR (Deprecated) that didn’t give me problems on Android or Windows. I set it up for Android; no problem except correcting the orientation of the hands in the MetaXR plugin to “Grip” the native Android application works perfectly.
I try to make the windows version. The ground becomes eye level; Control buttons don’t work. Even if it raises the character above the ground.
Is it mandatory to work with the Meta github fork with MetaXR? Has all this been tested on Epic?

1 Like

Hey @Cdaked!
I’ve just tested a few other ideas here, and even If I move my pawn by a certain height(z) value, for example, be it by moving the pawn or teleporting it on begin play, the camera always does the same issue - as if ignoring height by all means.

Stage, floor or eye level settings all come out the same - Both for controllers and handtracking.

I did test starting the build with the Quest 2 on the ground, in the middle of my play area and then picking it up… the issue still happens. For controllers and if you don’t mind being with your height slightly off… it “works” .

In other hand, for handtracking - pun intended - this doesn’t work. Since there’s also another issue with the MetaXR plugin: If the Quest 2 enters on stand-by mode or if you remove your headset without quitting the app - your hands won’t get detected again and the sound from the app stops working and then you have to restart the app or unreal engine editor.

It is quite annoying.


I haven’t tested trough the github fork and I can’t tell if epic devs are on top of this issue, since I haven’t seen anyone or anything from Meta regarding this issues in particular.

1 Like

A “The Lust of Us” reference? :rofl:

1 Like

I see I’m getting these errors even when running an OpenXR VR Template from Epic.
I just created the template and added (and configured) the Meta XR plugin.

LogClass: Error: ObjectProperty FOculusXRCapsuleCollider::Capsule is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogClass: Error: EnumProperty FOculusXRCapsuleCollider::BoneId is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h

LogAutomationTest: Error: UObject.Class AttemptToFindUninitializedScriptStructMembers will be marked as failing due to errors being logged
LogAutomationTest: Error: LogClass: ObjectProperty FOculusXRCapsuleCollider::Capsule is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogAutomationTest: Error: LogClass: EnumProperty FOculusXRCapsuleCollider::BoneId is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h

Can you do the same without these errors or does it also happen to you? Create an OpenXR VR Template project for UE5.1.1 and use the Meta XR plugin instead of the old plugin.

1 Like

Hey!!
I can confirm that this also happens for me.

Yes, I get the same errors!

I will get back to work tomorrow and test some more ideas regarding this issues.

1 Like

Hey Du.Moura,

Sorry for that!
Did you try latest MetaXR plugin (5.1.1-v50) https://developer.oculus.com/downloads/package/unreal-engine-5-integration/?

The standalone exe + link issue should be fixed with this version.

thanks!

And these errors? They still occur in the new version 50 of the Meta software and its Meta XR plugin in UE 5.1.1

This is an interesting one… Did you try our own fork version (https://github.com/Oculus-VR/UnrealEngine)? Does it happen there?
thanks!

I’m interested in using the latest version of Epic and untied from Meta; hence using the Meta XR plugin. I don’t just develop for Meta.

Doesn’t even work properly with Epic’s basic VR template?
On both Android and Windows the bottom three fingers of the hands do not animate when pressing the Grip button until you use the hand menus; also, only in Windows, the projectile doesn’t come out every time you shoot.

Have you tried to reproduce the bug?

Hey [Cdaked],

Sorry for the inconvenience!
About the animation problem you mentioned, that sounds a known issue that we missed in our release notes. We fixed that on our github repo and still waiting for the upstream to Epic:
https://github.com/EpicGames/UnrealEngine/pull/10026
https://github.com/EpicGames/UnrealEngine/pull/10037
Not sure if you want to give them a try?
In short, the reason is: VRTemplate wise, UE5.1 starts to use a new enhanced input system while Meta’s plugin wise, we still use the legacy one. On the other hand, this shouldn’t affect any existing project or new projects w/ legacy input system.

About those build errors below, yes, I can reproduce them on my end. But as far as I can tell, it doesn’t affect anything and we will fix it in next release.
"
LogClass: Error: ObjectProperty FOculusXRCapsuleCollider::Capsule is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogClass: Error: EnumProperty FOculusXRCapsuleCollider::BoneId is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
"
Thanks again to report these issues.

2 Likes

The problem is that people were already using the Enhanced Input System which also worked in the old Oculus VR plugin.
For example, I have also purchased the “GDXR VR Template” from the Marketplace:

which works at least with the UE5.1 version and only uses the “Enhanced Input System”; there the input errors are worse and, when contrasting with the original VR Template, it was when I detected that this one also gave problems.
By the way, here is the complete set of errors and last warnings I get, in case you don’t get any of them:

LogOVRPlugin: Error: [XRCMD][failure] [XR_ERROR_FORM_FACTOR_UNAVAILABLE]: xrGetSystem(instance, &systemGetInfo, &systemId), arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.cpp:1414 (arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.h:288)
LogLinker: Warning: [AssetLog] E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\MetaXR\Content\Materials\PokeAHoleMaterial.uasset: Asset has been saved with empty engine version. The asset will be loaded but may be incompatible.
LogLinker: Warning: [AssetLog] E:\Program Files\Epic Games\UE_5.1\Engine\Plugins\Marketplace\MetaXR\Content\Materials\PokeAHoleInverseMaterial.uasset: Asset has been saved with empty engine version. The asset will be loaded but may be incompatible.
LogClass: Error: ObjectProperty FOculusXRCapsuleCollider::Capsule is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogClass: Error: EnumProperty FOculusXRCapsuleCollider::BoneId is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogClass: Warning: Property StructProperty FOculusXRSplashDesc::TexturePath defines MetaData key “AllowedClasses” which contains short type name “Texture”. Suggested pathname: “/Script/Engine.Texture”. Module:OculusXRHMD File:Public/OculusXRHMDTypes.h
LogAutomationTest: Error: UObject.Class AttemptToFindUninitializedScriptStructMembers will be marked as failing due to errors being logged
LogAutomationTest: Error: LogClass: ObjectProperty FOculusXRCapsuleCollider::Capsule is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogAutomationTest: Error: LogClass: EnumProperty FOculusXRCapsuleCollider::BoneId is not initialized properly. Module:OculusXRInput File:Public/OculusXRInputFunctionLibrary.h
LogAutomationTest: Warning: LogClass: Property StructProperty FOculusXRSplashDesc::TexturePath defines MetaData key “AllowedClasses” which contains short type name “Texture”. Suggested pathname: “/Script/Engine.Texture”. Module:OculusXRHMD File:Public/OculusXRHMDTypes.h
LogOculusPluginWrapper: Warning: wrapper already initialized
LogOVRPlugin: Error: [XRCMD][failure] [XR_ERROR_FORM_FACTOR_UNAVAILABLE]: xrGetSystem(instance, &systemGetInfo, &systemId), arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.cpp:1414 (arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.h:288)
LogOculusPluginWrapper: Warning: wrapper already initialized
LogOVRPlugin: Error: [XRCMD][failure] [XR_ERROR_FORM_FACTOR_UNAVAILABLE]: xrGetSystem(instance, &systemGetInfo, &systemId), arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.cpp:1414 (arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.h:288)
LogOVRPlugin: Error: [XRCMD][failure] [XR_ERROR_FORM_FACTOR_UNAVAILABLE]: xrGetSystem(instance, &systemGetInfo, &systemId), arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.cpp:1414 (arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.h:288)
LogRenderer: Warning: Deprecated CVar r.BasePassOutputsVelocity is set to 0. Remove and use r.VelocityOutputPass instead.
LogRenderer: Warning: Deprecated CVar r.VertexDeformationOutputsVelocity is set to 0. Remove and use r.Velocity.EnableVertexDeformation instead.
LogOculusPluginWrapper: Warning: wrapper already initialized
LogOVRPlugin: Error: [XRCMD][failure] [XR_ERROR_FORM_FACTOR_UNAVAILABLE]: xrGetSystem(instance, &systemGetInfo, &systemId), arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.cpp:1414 (arvr\projects\integrations\ovrplugin\src\util\compositoropenxr.h:288)

Do you work for Epic or Meta?

Hi Cdaked, Firstly, thank you for purchasing the GDXR VR Template. Im sorry to hear your having issues with it and im still happy to try and help, as I have been doing over on the GDXR Discord server.

Regarding the GDXR VR Template, It currently has 40+ sales at the time of writing this reply and unfortunatly, you are the only indivudual to have reported these issues to me regarding it.

As you mentioned though, this is due to the MetaXR Plugin on your end and not the template it self.

The GDXR VR Template has used the Enhanced input system from day one as it’s used to allow the controller re mappings for all 6 included movement methods.

As we discussed in the Discord previously, I can build an exe and and android apk with the same project setup, no project settings need changing.

I also recorded this video at the time, showing me create a successfull build of the project for Desktop VR. And successfully launching it on my Windows machine.

In short, it sounds like the issues are specific to your build of the engine as im unable to reproduce the issue with my verison of Unreal engine ( Im using 5.1.1 from the Epic launcher).

Here are a few things to try.

  1. Make sure your using Unreal engine 5.1.1 - This is the first version of unreal engine supporting the enhanced input system for OpenXR. It should be set up by default but you can check inside the project settings, OpenXR Input and that it is currently using the "
    PMI_VRTemplate" Mappable input Config.

  1. In project settings, that you have Start in VR is enabled

  1. if your using the Default template, you must add the function included with Unreal called “Enable HMD” and make sure it’s set to true. This can be added to the Player Character/Pawn but MUST happen on begin play.

  1. Make sure the MetaXR PLugin is installed correctly. NOT in the projects files but the Engine files in the marketplace folder.

MAKE SURE THE OLD OCULUS(DEPRECATED) AND STEAMVR(DEPRECATED) PLUGINS ARE DISABLED FIRST. OPEN XR SHOULD BE THE ONLY ENABLED PLUGIN.

Download Link here:
https://developer.oculus.com/downloads/package/unreal-engine-5-integration/

Here is a tutorial is created showing how to install the plugin correctly for 5.1

5.You must have either oculus desktop or installed or SteamVR installed and open with your headset connected before launching the exe build. If not the EXE wont detect your headset.

Because your using the Oculus Quest 2, you will need the oculus desktop app installed first to play vr exe’s using the MetaXR Plugin.

For those reading this not using a Meta Device, i’ll include Oculus and SteamVR.

Which ever platform your using eaither Steam VR or Oculus Desktop, you need to make sure it is setup to use that platforms OPENXR Runtime.

(YOU CAN ONLY HAVE ONE SELECTED AT A TIME !!)

For Oculus Desktop this can be found in the General Tab of the application and you want to set Oculus as Active.

For any other devices, HTC, Pico, HP Reverb ect. You will want to make sure steamVR is set as your OpenXR Runtime. This can be done in the Steam VR Settings. (You will need the headset connected to the pc before you can see these settings.

You should now be able to launch any application using the Enhanced Input System and Open XR on your PC/windows build.

Just to point out, Oculus isnt supported on IOS so it wont work on an apple platform.

Lets keep going and i’ll cover as much as i can think off.

  1. Once you have set the desired platform to Open XR you will need to restart your unreal project if you left it open while doing the above steps.

  2. When using the MetaXR Plugin you can also try using these settings when building the application.

Also when using the MetaXR plugin, you do not need to add any extra code, the plugin just needs to exist in your project before building.

I think the included infomation should be enough to get you up and running. If not let me know how you get on and i’ll see what else I can think off.

Hope this helps.

  • Jonathan (GDXR)
2 Likes