• v2.8.0 e6156463a3

    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…

    mamadou.babaei 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 USGHapticsComponent to 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 USGHandTrackerComponent to allow retrieval or visualization of FXRHandTrackingState without relying on low-level SenseGlove API or UE's generic GetHandTrackingState() 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 to USGHapticGlove::GetWristLocation(), in comparison to when the FXRHandTrackingState is retrieved via UE's GetHandTrackingState().
    • A new FSGDebugVirtualHand::Draw() overload has been added to allow visualizing FSGDebugGizmoSettings directly. This is used internally by the new USGHandTrackerComponent to visualize its FXRHandTrackingState if bVisualize is enabled.
    • Added a new FSGHandLayer::GetWristLocation() overload to allow passing FRotators instead of FQuats 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() to SGDeviceList::SenseComRunning() — previously listed as part of the v2.7.0 release — was not actually included in the master branch due to a missed commit during cherry-picking from dev to master. Since Microsoft Azure DevOps Repositories tags are always created from master, the v2.7.0, v2.7.1, v2.7.2, and v2.7.3 tags also do not contain this change. The rename is, however, included in the Unreal Engine 5.7, 5.6, 5.5, and 5.4 packages 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 the master branch and the v2.8.0 tag as part of the v2.8.0 release. If you are using the source code directly from master, or from one of the mentioned v2.7.x tags 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 version v2.7.x does not already include this rename.
    • List existing SenseGlove components under SenseGlove ClassGroup inside Unreal's Blueprint Editor. This chagnes ClassGroup for USGGrabComponent, USGTouchComponent, USGVirtualHandComponent, and USGWristTrackerComponent.
    • Force USGVirtualHandComponent and USGWristTrackerComponent to 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 the v2.7.x release series.
    • Dropped support for Epic Native/Cross Toolchains v22 (previously used for building UE 5.3 and 5.4 Linux dependencies), as they were already deprecated via previous releases.
    • Removed support for the deprecated FXRMotionControllerData. The plugin now exclusively uses FXRHandTrackingState (introduced in Unreal Engine 5.5+ and supported by The SenseGlove Unreal Engine Plugin since v2.2.0 for OpenXR hand tracking. This affects only projects that directly consume FXRMotionControllerData from 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 to IXTrackingSystem::GetMotionControllerData(). You can now use SenseGlove's GetHandTrackingState() instead of Unreal's IXTrackingSystem::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

    Downloads