Bring HeadMountedDisplay blueprint library to functional parity with Oculus blueprint library?

There is quite a bit of functionality in the Oculus blueprint nodes that is not available through the hardware-agnostic HeadMountedDisplay blueprint nodes. For example:

  • Ability to Set and Get Base Rotation and Base Position Offset
  • Ability to Enable Player Camera Manager to follow HMD orientation but NOT position (or vice-versa)
  • Ability to enable/disable the Player Controller following the HMD

This lack of functionality makes it hard for Blueprint-based developers to interact with non-Oculus HMDs, or to design for multiple HMDs (incl. the Oculus) in a non-hardware-specific way.

I just submitted an AnswerHub post asking if Epic would accept a pull request to add this functionality to the generic HeadMountedDisplay blueprint function library. Would these changes be useful to other VR devs out there? Or are most of you working solely with the Oculus Rift (or in C++)?

HMD in 4.8.3:

Oculus in 4.8.3:

My assumption is because the Oculus came out earlier compared to things such as Vive and Cardboard so they had more time to work with the SDK.
Either way, it would be of assistance if the HMD set had more control.

Right, it makes sense that the Oculus library is a bit more full-featured at this point. I think parallel development on the hardware-agnostic HMD library is really important to achieving multiplatform VR experiences!

Just for clarity, I’ve edited your screenshot to highlight the important Oculus blueprint functionality that is currently inaccessible through the generic HMD library (and the underlying IHeadMountedDisplay interface which it calls):


EDIT: Get User Profile is specific to the Oculus and doesn’t yet make sense in a generic HMD context (unless SteamVR and others also provide platform-wide user profiles). Get Raw Sensor Data would be nice to have also, but can be emulated right now by non-Oculus HMDs, through storing offsets when Orientation/Position are reset and adding them back in later.