-
This minor release introduces high-level haptics and hand-tracking components, simplifies OpenXR integration around `FXRHandTrackingState`, and removes legacy `FXRMotionControllerData` APIs. It also includes ABI-breaking changes, Unreal Engine deprecat…
released this
2026-02-24 10:29:15 +00:00 | 45 commits to master since this release…ions, documentation expansions, and various internal improvements.
Added
- Added a
USGHapticsComponentto allow sending a variety of haptic feedbacks (force-feedback, vibrotactile, custom waveforms, and wrist-squeeze) to the gloves without touching SenseGlove's low-level API. - Added a
USGHandTrackerComponentto allow retrieval or visualization ofFXRHandTrackingStatewithout relying on low-level SenseGlove API or UE's genericGetHandTrackingState()functionality. This is useful when developing a custom hand-interaction system using SenseGlove/UE OpenXR API or interfacing with third-party OpenXR-compatible plugins such as VR Expansion Plugin (VRE). Using this component removes the need to calculate the wrist offsets manually, or an extra call toUSGHapticGlove::GetWristLocation(), in comparison to when theFXRHandTrackingStateis retrieved via UE'sGetHandTrackingState(). - A new
FSGDebugVirtualHand::Draw()overload has been added to allow visualizingFSGDebugGizmoSettingsdirectly. This is used internally by the newUSGHandTrackerComponentto visualize itsFXRHandTrackingStateifbVisualizeis enabled. - Added a new
FSGHandLayer::GetWristLocation()overload to allow passingFRotators instead ofFQuats as input or output parameters.
Fixed
- Fix some copyright notices with wrong copyright owner. These propably has happend during bulk replaces with class or struct names.
- Additional minor fixes and improvements that may not be listed here.
Changed
- The rename of
SGDeviceList::SenseCommRunning()toSGDeviceList::SenseComRunning()— previously listed as part of the v2.7.0 release — was not actually included in themasterbranch due to a missed commit during cherry-picking fromdevtomaster. Since Microsoft Azure DevOps Repositories tags are always created frommaster, thev2.7.0,v2.7.1,v2.7.2, andv2.7.3tags also do not contain this change. The rename is, however, included in the Unreal Engine5.7,5.6,5.5, and5.4packages submitted to Epic's Fab Store, as those archives were built from their respective engine-specific branches, which already contained the change. The rename is now correctly applied to themasterbranch and thev2.8.0tag as part of thev2.8.0release. If you are using the source code directly frommaster, or from one of the mentionedv2.7.xtags obtained via Microsoft Azure DevOps Repositories (instead of the version distributed via Fab or other engine-specific branches), this introduces an ABI and API breaking change affecting both C++ and Blueprint code if your exsiting plugin versionv2.7.xdoes not already include this rename. - List existing SenseGlove components under
SenseGloveClassGroupinside Unreal's Blueprint Editor. This chagnesClassGroupforUSGGrabComponent,USGTouchComponent,USGVirtualHandComponent, andUSGWristTrackerComponent. - Force
USGVirtualHandComponentandUSGWristTrackerComponentto update their XR hand-tracking data when their handedness is updated. - Bumped the SenseGlove Unreal Engine Marketplace Packager to
v0.6.2-b675bab. - Bumped the copyright years.
Removed
- Dropped support for Unreal Engine
5.4, which was already deprecated via thev2.7.xrelease series. - Dropped support for Epic Native/Cross Toolchains
v22(previously used for building UE5.3and5.4Linux dependencies), as they were already deprecated via previous releases. - Removed support for the deprecated
FXRMotionControllerData. The plugin now exclusively usesFXRHandTrackingState(introduced in Unreal Engine 5.5+ and supported by The SenseGlove Unreal Engine Plugin sincev2.2.0for OpenXR hand tracking. This affects only projects that directly consumeFXRMotionControllerDatafrom the SenseGlove plugin in their own custom hand-tracking or interaction systems. Please see the v2.7.x to v2.8.x migration guide for more details. - Removed SenseGlove's
GetMotionControllerData(); the alternative implementation toIXTrackingSystem::GetMotionControllerData(). You can now use SenseGlove'sGetHandTrackingState()instead of Unreal'sIXTrackingSystem::GetHandTrackingState()which guarantees the OpenXR hand-tracking data is coming from a SenseGlove device and also takes into account the SenseGlove's wrist-tracker offsets automatically.
Documentation
- Added a v2.7.x to v2.8.x migration guide for transitioning from
FXRMotionControllerDatatoFXRHandTrackingStatefor projects that directly consume SenseGlove OpenXR data. - Added documentation section Roll Your Own Hand Manipulation System.
- Added documentation section SGPawn Events.
- Added documentation section SGHandTrackerComponent.
- Added documentation section SGHapticsComponent.
- Updated Enabling XR_EXT_hand_tracking on VR Headsets documentation, replacing
FXRMotionControllerDatausage withFXRHandTrackingState. - Updated Setup the Virtual Hand Meshes documentation, replacing
FXRMotionControllerDatausage withFXRHandTrackingState. - Updated Plugin Configuration > Plugin Settings > Virtual Hand > Mesh documentation, replacing
FXRMotionControllerDatausage withFXRHandTrackingState. - Updated Advanced Topics > OpenXR documentation section with more relevant and plenty of useful information reflecting the recent changes.
- Updated Advanced Topics > OpenXR > Consuming FXRHandTrackingState documentation section with information reflecting the recent changes.
- Updated Advanced Topics > OpenXR > Consuming FXRHandTrackingState > Blueprint documentation section with information reflecting the recent changes.
- Updated Advanced Topics > OpenXR > Consuming FXRHandTrackingState > C++ documentation section with information reflecting the recent changes.
- Removed the Consuming FXRMotionControllerData documentation section as it's no longer relevant.
- Removed the Consuming FXRMotionControllerData > Blueprint documentation section as it's no longer relevant.
- Removed the Consuming FXRMotionControllerData > C++ documentation section as it's no longer relevant.
- Ensure deterministic dependency builds by pinning Rust toolchain.
- Changelog errata fixes.
- Minor changelog formatting fixes.
- Additional minor fixes and improvements that may not be listed here.
Downloads
- Added a