OpenXR
The SenseGlove Unreal Engine Plugin has provided OpenXR-compatible hand tracking by implementing XR_EXT_hand_tracking since v2.1.0.
Typically a user does not need to know anything about OpenXR to use the plugin, so this section of the handbook is for advanced users who are looking for a way to directly consume the OpenXR data coming directly from either a SenseGlove device or if enabled in the plugin settings from hand-tracking.
Since the SenseGlove Unreal Engine Plugin registers itself as an OpenXRHandTracking motion controller device it becomes a hand-tracking provider for Unreal Engine, thus the OpenXR data from SenseGlove could always be retrieved from the Unreal Engine's IXTrackingSystem with one caveat. The caveat is if another OpenXR-compatible hand-tracking plugin, e.g. Epic's own OpenXRHandTracking, is enabled simultaneously it's not guaranteed that the FXRHandTrackingState structs retrieved from the IXTrackingSystem::GetMotionControllerData() and IXTrackingSystem::GetHandTrackingState() methods are coming from SenseGlove, as these methods return the first hand-tracking plugin they could find. Thus, SenseGlove provides its own implementation of GetMotionControllerData() and GetHandTrackingState() which guarantee the retrieved FXRHandTrackingState are coming from the SenseGlove Unreal Engine Plugin; and this is the preferred way to that.
Note
In order to retrieve the latest
FXRHandTrackingStateavailable, The SenseGlove Unreal Engine Plugin provides an alternative implementation forIXTrackingSystem::GetMotionControllerState()as well . However, since this method does not rely on theOpenXRHandTrackingprovider, it may become redundant. As a result, we might consider removing this functionality in future updates in favor of the one that Unreal Engine provides.
In the next sections we'll see:
-
How we can directly consume the
FXRHandTrackingStateon UE5.5to draw and animate debug virtual hands in both Blueprint and C++. -
The Consuming OpenXR Hand-Tracking Data tutorial series provides a comprehensive introduction to virtual reality, OpenXR hand-tracking, and gesture detection in Unreal Engine. Additionally, this tutorial series covers procedural virtual hand mesh animation using the OpenXR hand-tracking data.