Is there a way to tell Unreal which VR-System to use?

I try to support the HP Reverb G2 in my current project.

But in 4.26 unreal can use the WMR, SteamVR, or OpenXR Plugin to run it, all with different features. (SteamVR has SpectatorScreenTexture, WMR cant even use the FaceButtons of the Reverb)

And if i enable all of the plugins unreal always starts through WMR. Which is totally fine if there is no other system available but if the user also has SteamVR installed it would be really nice if unreal would use that instead.

I wish i could define a prio like SteamVR > OpenXR > WMR. Or at least give the .exe some start parameters which system to use or to disable. Or a other way to say unreal “use this!”.

So is there a way to tell unreal which system/plugin to use if there are multiple available?

The engine seems to only allow picking which runtime to use on launch. First it checks the -hmd=name command line parameter and uses that if found. Otherwise it will pick the one with the highest priority based on the HMDPluginPriority list in Baseengine.ini.

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

The runtime names are defined in the different classes implementing the IHeadMountedDisplayModule interface. Most of them have aliases set up so slightly different names may work as well.

To use them on the command line, add a parameter like: -hmd=OpenXRHMD

Here is a list of all runtimes I could find:

  • SimpleHMD
  • MagicLeap
  • AppleARKit
  • GoogleARCoreHMD
  • GoogleVRHMD
  • OculusHMD
  • OpenXRHMD
  • SteamVR
  • WindowsMixedRealityHMD
  • Default
1 Like

Exactly what i was looking for! Thanks!