Get HMDDevice Name: Needs clarification.

In the documentation for Get HMDDevice Name, it is missing what types of HMD devices we can call.

This should follow the same structure that Get Platform Name has (I put in bold the part that is needed):

The documentation should follow the same structure as Get Platform Name: Get Platform Name | Unreal Engine 5.2 Documentation

I second this, currently it’s very confusing because the existing E_HMDDeviceType still exists, and it doesn’t line up with the new Name options (e.g. “Morpheus” vs. “PSVR”).

Could someone please post a list of what names this function returns for what devices? I cannot find the information anywhere.

Based on the new VR template, (some) possible values seem to be:

OculusHMD
SteamVR
PSVR

I’m wondering though what the value for the GearVR is… does anyone know?!

Isn’t GearVR appears as OculusHMD?
At least its configuration for packaging is located in Oculus folder.

These are all the names I found by simply looking at references to this function.
SimpleHMD
OculusHMD
SteamVR
PSVR
OSVR
AppleARKit
FGoogleVRHMD
FGoogleARCoreHMD

You are replying to an old thread, the GearVR module was merged into the OculusHMD two engine versions ago.

Updated list as of UE 4.21:

MagicLeap
AppleARKit
FGoogleARCoreXRTrackingSystem
FGoogleVRHMD
PSVR
OSVR
SimpleHMD
SteamVR
OculusHMD
WindowsMixedRealityHMD

1 Like

what a mess… Any reason they didn’t make a enum?

Edit: Well, as long as the name is a pass through from the VR platform (SteamVR/Oculus), its better to go with the name. So you dont need to update the project to a new engine version to support new HMDs (which would be the case for an enum)

This is sloppier than my ex after an all nighter. This in no way returns the device name. It returns the platform name that the device is running on. Were you guys high when you named this?

4 Likes

This is now officially my favorite post on unreal forums.
Sums up my feelings about working with UE the last couple years into a single sentence.

2 Likes

After watching the UE5 showcase, I suppose I can forgive you for this. Probably had all of your real smart people working on 5. 5 looks really super awesome! I hope all the VR features will be there day 1.

I’m using Unreal 4.26
I may be doing something very nooby but how do you even call this function? I have



#include "IXRTrackingSystem.h"
#include "IHeadMountedDisplay.h"
#include "HeadMountedDisplayFunctionLibrary.h"

// Sets default values
APlayerCharacter::APlayerCharacter()
{
    FName deviceA = GEngine->XRSystem->GetSystemName(); // <== this works and compiles
    FName deviceB = GetHMDDeviceName(); // <== GetHMDDeviceName is undefined

    IHeadMountedDisplay* hmd = GEngine->XRSystem->GetHMDDevice();
    FName deviceC = hmd->GetHMDDeviceName() // <== also doesn't work
}


I’ve tried so many imports and different variations and can’t find the proper way to call this

Edit:

I misunderstood where the function GetHMDDeviceName was defined, I looked into HeadMountedDisplayFunctionLibrary and realsied that it was a libarary helper function and not a function on the hmd device so incase anyone else struggled with this the solution is here:



#include "HeadMountedDisplayFunctionLibrary.h"

APlayerCharacter::APlayerCharacter()
{
    FName deviceName = UHeadMountedDisplayFunctionLibrary::GetHMDDeviceName();
}


1 Like