Upgrade Guide
Upgrading from v2.7.x to v2.8.x
Summary of Breaking Changes
Starting with SenseGlove Unreal Engine Plugin v2.8.x, support for FXRMotionControllerData has been removed.
Although:
- Unreal Engine 5.5 and 5.6 still support the deprecated
FXRMotionControllerData, and - These engine versions are still supported by plugin v2.8.x,
the plugin now fully transitions to FXRHandTrackingState, which is the modern and recommended API introduced in Unreal Engine 5.5+ for OpenXR hand tracking.
Additionally:
- Plugin v2.8.x no longer supports Unreal Engine 5.4.
- Because
FXRHandTrackingStateis the forward-compatible OpenXR API, continued support forFXRMotionControllerDatais no longer maintained in the plugin.
We have supported FXRHandTrackingState since v2.2.0 (released 2024-10-22), and it has been stable in production for several releases.
Who Is Affected?
This change only affects you if:
- You maintain a custom hand manipulation or tracking system, and
- Your implementation directly consumes
FXRMotionControllerDataprovided by the SenseGlove plugin.
If you rely solely on the plugin’s provided components and standard integration workflow, no action is required.
Required Migration
If you are directly consuming FXRMotionControllerData, for your project to build or function as expected, you must migrate to:
FXRHandTrackingState
The migration is straightforward because both structures represent similar hand tracking data concepts within Unreal’s OpenXR framework.
A step-by-step explanation of how to work with FXRHandTrackingState is available in this third-party tutorial:
👉 Introduction to Virtual Reality, OpenXR Hand Tracking, and Gesture Detection in Unreal Engine
Why This Change?
FXRMotionControllerDatais deprecated.FXRHandTrackingStateis the future-proof OpenXR hand tracking API.- The existing Unreal Engine’s OpenXR implementation is centered around
FXRHandTrackingStateandFXRMotionControllerDatahas been completely removed form UE5.7+. - Removing legacy support simplifies the plugin architecture and aligns it with Unreal’s forward direction.
If you are already using FXRHandTrackingState or not directly consuming the OpenXR data, no changes are required when upgrading to v2.8.x.
Upgrading from v2.0.x to v2.1.x
The transition from v2.0.x to v2.1.x introduces numerous changes, including several breaking changes. The effort required to upgrade your project will vary depending on its complexity and which features of the SenseGlove Unreal Engine Project you are using. However, if you are working with a simple Blueprint project like SGBasicDemo, the upgrade process is quite straightforward. We successfully upgraded SGBasicDemo to SGBasicDemo-OpenXR by following the procedure outlined below.
These are the notable changes that might affect your project:
- The SenseGlove Virtual Hand and Wrist Tracker components no longer rely on the SenseGlove Hand Pose data from the underlying SenseGlove API. Instead, they use
FXRMotionControllerData. - The virtual hand animation system has been revamped to use
FXRMotionControllerDataand no longer relies on SenseGlove Hand Angles. This means the virtual hand meshes are animated using world space transforms instead of parent bone space transforms. - The Allbreaker virtual hand meshes have been removed and are no longer supported as they are incompatible with the new OpenXR tracking and animation system.
Caution
Please consult the changelog before upgrading your project to see if any change affects or breaks your current project.
Note
For upgrading older versions of the plugin to
v2.0.0, a YouTube tutorial is available.
-
Remove the existing
Plugins/SenseGlovefolder from your project. -
Obtain the latest
v2.1.xversion of the plugin either from the Epic Games Launcher or Microsoft Azure DevOps Repositories and place it in thePlugins/SenseGlovefolder that you've just removed. -
It might be best to clean up and remove the following folders from your project before generating the project files or attempting to open your project with the Unreal Editor. This might prevent a certain class of build issues:
- Binaries
- Intermediate
- Saved
-
Build your project using your favorite IDE if it's a C++ project, or open your project's
.uprojectfile with the Unreal Editor and wait for the Editor to build the necessary binaries and open the project. -
Remove the Allbreaker virtual hand meshes if you are using them, as they are no longer compatible with the new animation system.
-
Import and set up a set of compatible virtual hand meshes such as the VRTemplate virtual hand meshes, and configure the materials, rigid bodies, and the SenseGlove Grab and Touch Sockets using the SenseGlove Sockets Editor.
-
Set up the SGPawn to use the new virtual hand meshes for the
HandLeft,HandRight,RealHandLeft, andRealHandRightcomponents. -
Adjust the Virtual Hand Mesh Settings and ensure the
Left Hand Reference MeshandRight Hand Reference Meshare set correctly. -
Check and adjust the Virtual Hand Animation Settings as needed.
-
You might also want to set up the Wrist Tracking Hardware to use the new experimental HMD auto-detection feature. This allows the plugin to automatically configure the wrist tracking hardware at runtime, rather than limiting your builds to a specific HMD.
-
Set up the
SGGameInstanceandSGGameUserSettingsif you want to use the new SenseGlove console commands or take advantage of the Engine Scalability Settings to achieve higher framerates in your project. -
Additionally, the latest release introduces the ability to use hand-tracking as an alternative to SenseGlove hardware—albeit without haptic feedback—for rapid development and testing. It's also recommended to enable the Fallback to HandTracking if No Glove Detected feature to seamlessly switch to hand-tracking when a glove isn't connected.
-
If all steps have been followed correctly, your project should now be fully compatible with the new plugin release.