Enabling XR_EXT_hand_tracking OpenXR Extension on VR Headsets in Standalone Mode
Starting from version v2.1.0
, the SenseGlove Unreal Engine Plugin requires the XR_EXT_hand_tracking
OpenXR extension to function. If you are deploying your immersive 3D VR application to your VR headset in standalone mode, enabling XR_EXT_hand_tracking
support, requires additional plugins and settings depending on the HMD's vendor or model.
Enabling OpenXR Plugin and Disabling OpenXRHandTracking Plugin
Regardless of the type or vendor of the HMD you have in mind for development or deployment purposes, the OpenXR
plugin is required as a prerequisite. Also, ensure the OpenXRHandTracking
is disabled as it conflicts with the SenseGlove Unreal Engine Plugin since both implement the same XR_EXT_hand_tracking
OpenXR extension.
Though enabling the SenseGlove Unreal Engine Plugin should enable the OpenXR
plugin automatically, it is recommended to ensure this plugin is enabled, and most importantly OpenXRHandTracking
is disabled, by navigating to Edit > Plugins
in the Unreal Editor menus.
The OpenXRHandTracking
plugin implements the XR_EXT_hand_tracking
OpenXR extension.
Meta Quest
To set up XR_EXT_hand_tracking
support on Meta Quest HMDs in Standalone mode, depending on your project requirements (e.g. whether you rely on the Meta XR
plugin or not), additional setup steps are required.
important
Although, the SenseGlove plugin does not require the Meta XR
plugin to
function, and relying solely on the OpenXR
and OpenXRHandTracking
plugins
would suffice for functional glove data retrieval using OpenXR,
hand-tracking as a fallback mechanism
won't work on Android without the Meta XR
plugin availability.
Meta XR Plugin
caution
Please note that enabling the Meta XR
plugin alongside the SenseGlove plugin
will result in crashes or unexpected behavior. Meta XR
plugin compatibility
is being worked on and might be supported in the future.
HTC VIVE
To set up XR_EXT_hand_tracking
support on HTC VIVE HMDs in Standalone mode, additional plugins or configuration steps are required.
OpenXRViveTracker Plugin
Unlike the PCVR-mode on Windows, the OpenXRViveTracker
plugin is not required on Android since it only provides an implementation of the XR_HTCX_vive_tracker_interaction
OpenXR extension which is necessary when we use VIVE Trackers on Windows or we emulate the VIVE Wrist Trackers as VIVE Trackers on Windows. Instead, we require the XR_HTCX_vive_wrist_tracker_interaction
OpenXR extension to be able to use VIVE Wrist Trackers on Android, which is provided by the ViveOpenXR
plugin. So, you can safely ignore enabling this plugin for Android standalone deployments.
ViveOpenXR Plugin
To enable VIVE Wrist Trackers support ensure the ViveOpenXR
plugin is enabled by navigating to Edit > Plugins
in the Unreal Editor menus. This plugin should be enabled, or wrist tracking won't function on VIVE devices at all.
The ViveOpenXR
plugin implements the XR_HTCX_vive_wrist_tracker_interaction
OpenXR extension.
important
Without the ViveOpenXR
plugin deploying an immersive 3D VR application to
your HTC VIVE in Standalone mode won't be possible, whether you enable
bStartInVR
, or not. Without it your app will be deployed and recognized as
a 2D app.
By default, the ViveOpenXR
plugin settings located in Edit > Project Settings > Plugins > Vive OpenXR
look something like these:
The following settings control the availability of hand-tracking when the ViveOpenXR
plugin is enabled:
- Enable Hand Interaction: This enables the hand interactions with the OpenXR hand interaction extension
XR_HTC_hand_interaction
. Changing this setting will prompt you to restart the engine to apply the new settings. This setting should be enabled.
- Use HTC Hand Interaction: This selects which OpenXR hand interaction extension to use. If enabled,
XR_HTC_hand_interaction
will be used, effectively breaking SenseGlove glove and hand-tracking data output. If disabled,XR_EXT_hand_interaction
will be used, which is compatible with the SenseGlove Unreal Engine Plugin. Changing this setting will prompt you to restart the engine to apply the new settings. This setting should be disabled.
The following settings control the availability of wrist-tracking when the ViveOpenXR
plugin is enabled:
- Enable Wrist Tracker: This option controls the
XR_HTC_vive_wrist_tracker_interaction
OpenXR extension. If enabled, in turn, it enables the use of HTC Wrist Tracker interaction profiles in OpenXR. Changing this setting will prompt you to restart the engine to apply the new settings.
-
Enable Ultimate Tracker (Beta): This option controls the
XR_HTC_path_enumeration
andXR_HTC_vive_xr_tracker_interaction
OpenXR extensions. If enabled, in turn, they enable the use of HTC Xr Tracker interaction profiles in OpenXR. Changing this setting will prompt you to restart the engine to apply the new settings. -
Enable Ultimate Tracker Pogo Pin Inputs (Beta): Enables or disables the input options for Unreal's Enhanced Input System. Changing this setting will prompt you to restart the engine to apply the new settings.
The following setup demonstrates a functional immersive 3D VR application with the minimum ViveOpenXR
required features enabled to make it compatible with the SenseGlove Unreal Engine Plugin:
SenseGlove Wrist Tracking Settings
Once you have set up everything, it's time to adjust the SenseGlove Wrist Tracking Settings inside the project-wide plugin's settings. For detailed information, please visit the Wrist Tracking Hardware and HMD auto-detection configuration section as well.