OpenXR problems with SteamVR

Hello, I am at my wits end trying to figure out how to configure my project for OpenXR. Specifically which plugins to enable and which to disable. I released a VR game in early access last month and since then I’ve been stuck in an endless quagmire of trying to fix problems that people are having just running the game.

As I understand it, I’m meant to disable all the UE4 (4.27) VR plugins except OpenXR and the Morden VRE expansion plugins? Correct?

The problem with doing this is that in the shipping build, launching from the Steam Library the VR never kicks in. It just stays stuck with a static camera. SteamVR is set as default OpenXR runtime. The only way I can get it to work is if I enable the SteamVR plugin in Unreal. But then that causes problems for Oculus users where SteamVR insists on booting itself up and putting players up in the air due to the tracking origin difference even when Oculus is running and set as the Default OpenXR Runtime. The only way around that seems to be renaming the SteamVR folder - which of course isn’t ideal and not something I should be need to be advising players to have to do in order to play the game.

Any help would be hugely appreciated because this is really holding up the entire game development and becoming a huge source of stress.

1 Like

If everything works otherwise, then yes. In my experience all plugins have major issues in 4.27 though.

The Steam Library issue sounds like it would be some kind of issue with the app configuration in Steam, rather than an issue with SteamVR or Unreal. It might be worth asking on the Steamworks forum how to configure OpenXR applications.

If nothing else works, there are two ways of setting which plugin is used. The first one is adding custom HMDPluginPriority settings to DefaultEngine.ini

These are the defaults from BaseEngine.ini, which give priority to the proprietary plugins over OpenXR.

[HMDPluginPriority]
OculusHMD=40
SteamVR=30
OpenXRHMD=20
WindowsMixedRealityHMD=10

The other option is to use the -hmd command line parameter to force a plugin, like -hmd=OpenXRHMD

2 Likes

Thanks, this is really useful. I will let you know if that works!

In fact this could explain a lot!

[HMDPluginPriority]
; Since SteamVR also works with the Oculus Rift, give priority to the native Oculus plugin before trying SteamVR.
; OpenXR is production ready and, if enabled, should be the priority plugin. For 4.27, we still need to prioritize
; the native plugins due to runtime features that are not yet supported in OpenXR.
OculusHMD=40
SteamVR=30
OpenXRHMD=20
WindowsMixedRealityHMD=10

1 Like

太有用了,帮了大忙了