My game supports both rift and vive but am I correct to say that Get HMDDevice will return SteamVR with a CV1 when the game is launched through Steam? If so, is there an additional check I can make to ensure I get the correct ‘rift’ options being used in my game?
Good News
OpenVR / SteamVR has functions for “Device Properties” some of which include “Tracking system name”, “Model ID” and “Manufacturer” that you can use to seperate hardware.
Bad News
These aren’t exposed to blueprint natively
Kinda good news
There is a console command that calls these functions that you can reference or I have sample code for it if you want to make a blueprint library to use them.
In your plugin {i’m still on 4.16 version} I just noticed a node Get VRDevicePropertyString and within it there is Property to retrieve->Prop Manufacturer string, would this work? I see it outputs HTC from Manufacturer from On Succeed pin if a vive is connected, so could I use this as the check as I presume when a rift is connected if will go to On Failed?
If a rift is connected and the engine is using the oculus runtime then yes that node would fail. However SteamVR uses the native Rift API when ran through it now so unless you specifically need the capacitive gestures which are not fully mapped in steamVR then you can just disable the oculus plugin and that node “should” work with a rift and return the correct manufacturer.