complete the plugin configuration, settings, and overrides, sections
This commit is contained in:
+20
-20
@@ -21,30 +21,30 @@ Welcom to the SenseGlove Unreal Engine Handbook!
|
||||
- [SenseCom on Microsoft Windows](getting-started/sensecom/microsoft-windows.md)
|
||||
- [Enabling XR_EXT_hand_tracking on VR Headsets](getting-started/enabling-xr-ext-hand-tracking-vr-headsets/README.md)
|
||||
- [Setup the SGPawn]()
|
||||
- [Setup a Virutal Hand Model]()
|
||||
- [Setup a Virtual Hand Model]()
|
||||
- [Setup the Grab System]()
|
||||
- [Setup the Touch System]()
|
||||
|
||||
# ⚙️ The Settings System
|
||||
# ⚙️ Plugin Configuration
|
||||
|
||||
- [Plugin Settings](plugin-settings/README.md)
|
||||
- [Initialization]()
|
||||
- [Game User Settings]()
|
||||
- [Hardware Benchamrk]()
|
||||
- [Tracking]()
|
||||
- [Glove Tracking]()
|
||||
- [Hand Tracking]()
|
||||
- [HMD Tracking]()
|
||||
- [Wrist Tracking]()
|
||||
- [Debugging]()
|
||||
- [Virtual Hand]()
|
||||
- [Animation]()
|
||||
- [Debugging]()
|
||||
- [Grab]()
|
||||
- [Haptics]()
|
||||
- [Mesh]()
|
||||
- [Touch]()
|
||||
- [Overriding Settings]()
|
||||
- [Plugin Settings](plugin-configuration/plugin-settings/README.md)
|
||||
- [Initialization](plugin-configuration/plugin-settings/initialization/README.md)
|
||||
- [Game User Settings](plugin-configuration/plugin-settings/game-user-settings/README.md)
|
||||
- [Hardware-benchmarking](plugin-configuration/plugin-settings/game-user-settings/hardware-benchmarking.md)
|
||||
- [Tracking](plugin-configuration/plugin-settings/tracking/README.md)
|
||||
- [Glove-tracking](plugin-configuration/plugin-settings/tracking/glove-tracking.md)
|
||||
- [Hand-tracking](plugin-configuration/plugin-settings/tracking/hand-tracking.md)
|
||||
- [HMD-tracking](plugin-configuration/plugin-settings/tracking/hmd-tracking.md)
|
||||
- [Wrist-tracking](plugin-configuration/plugin-settings/tracking/wrist-tracking/README.md)
|
||||
- [Debugging](plugin-configuration/plugin-settings/tracking/wrist-tracking/debugging.md)
|
||||
- [Virtual Hand](plugin-configuration/plugin-settings/virtual-hand/README.md)
|
||||
- [Animation](plugin-configuration/plugin-settings/virtual-hand/animation.md)
|
||||
- [Debugging](plugin-configuration/plugin-settings/virtual-hand/debugging.md)
|
||||
- [Grab](plugin-configuration/plugin-settings/virtual-hand/grab.md)
|
||||
- [Haptics](plugin-configuration/plugin-settings/virtual-hand/haptics.md)
|
||||
- [Mesh](plugin-configuration/plugin-settings/virtual-hand/mesh.md)
|
||||
- [Touch](plugin-configuration/plugin-settings/virtual-hand/touch.md)
|
||||
- [Overriding Settings](plugin-configuration/overriding-settings/README.md)
|
||||
|
||||
# 🛠️ Advanced Topics
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Overriding The Plugin Settings
|
||||
|
||||
The override system allows you to customize and override the global settings for the SenseGlove Unreal Engine Plugin through specific subcomponents where applicable. This feature enables more precise control over the behavior of individual components within your project.
|
||||
|
||||
## The SenseGlove Virtual Hand Component
|
||||
|
||||
The Virtual Hand Component provides the ability to override certain aspects of the global plugin settings, allowing for tailored interactions and behaviors specific to virtual hands. For more details, refer to [the Virtual Hand Settings section](../plugin-settings/virtual-hand/#overriding-the-virtual-hand-settings-from-the-virtual-hand-component).
|
||||
|
||||
## The SenseGlove Wrist Tracker Component
|
||||
|
||||
The Wrist Tracker Component enables overriding of specific global plugin settings, providing flexibility in wrist tracking configurations. For additional information, see [the Wrist-tracker Settings section](../plugin-settings/tracking/wrist-tracking/#overriding-the-wrist-tracking-settings-from-the-wrist-tracker-component).
|
||||
+10
-1
@@ -1,4 +1,4 @@
|
||||
# Plugin Settings
|
||||
# The Plugin Settings
|
||||
|
||||
Once [the SenseGlove Unreal Engine Plugin is enabled](../getting-started/plugin-verify-version-enable/) the plugin settings can be accessed through `Edit > Project Setting...` inside your project's Unreal Editor.
|
||||
|
||||
@@ -7,3 +7,12 @@ Once [the SenseGlove Unreal Engine Plugin is enabled](../getting-started/plugin-
|
||||
The SenseGlove Unreal Engine Plugin offers fine-grained control over various aspects of its functionality through its settings system. It also allows you to override specific settings from subcomponents when possible. In the following sections, we will explore the settings and the override system in detail.
|
||||
|
||||

|
||||
|
||||
## Settings Categories
|
||||
|
||||
The plugin settings are organized into four main categories, and each of those might contain its own sub-categories. These main categories are as follows:
|
||||
|
||||
- [The Initialization Settings](initialization/)
|
||||
- [The Game User Settings](game-user-settings/)
|
||||
- [The Tracking Settings](tracking/)
|
||||
- [The Virtual Hand Settings](virtual-hand/)
|
||||
@@ -0,0 +1,5 @@
|
||||
# The Game User Settings
|
||||
|
||||
The Game User Settings control the behavior of the SenseGlove instance of [`UGameUserSettings`](https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/UGameUserSettings). The `USGGameUserSettings` class extends the functionality of `UGameUserSettings` to provide enhanced customization options specifically for applications that utilize the SenseGlove Unreal Engine Plugin.
|
||||
|
||||

|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+23
@@ -0,0 +1,23 @@
|
||||
# The Hardware-benchmarking Settings
|
||||
|
||||
The settings in this section are utilized by the `USGGameUserSettings::SetEngineScalabilitySettings()` method when the `Scalability` parameter is set to `ESGEngineScalabilitySettings::Auto`. When the engine scalability settings set to auto the graphics settings are determined by running a hardware benchmark by calling the [`UGameUserSettings::RunHardwareBenchmark()`](https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/UGameUserSettings/RunHardwareBenchmark). The settings listed here are basically the parameters passed to `UGameUserSettings::RunHardwareBenchmark()`.
|
||||
|
||||

|
||||
|
||||
## WorkScale
|
||||
|
||||
The `WorkScale` parameter determines the intensity of the benchmark test. Higher values result in more intensive testing, which can help achieve more accurate scalability settings.
|
||||
|
||||
The default value is `10`.
|
||||
|
||||
## CPUMultiplier
|
||||
|
||||
The `CPUMultiplier` parameter allows you to adjust the impact of CPU performance on the benchmark results. Increasing this value will emphasize CPU performance more heavily in determining scalability settings.
|
||||
|
||||
The default value is `1.0f`.
|
||||
|
||||
## GPUMultiplier
|
||||
|
||||
The `GPUMultiplier` parameter lets you modify the influence of GPU performance on the benchmark outcomes. A higher value will increase the weight of GPU performance in setting scalability.
|
||||
|
||||
The default value is `1.0f`.
|
||||
@@ -0,0 +1,11 @@
|
||||
# The Plugin Initialization Settings
|
||||
|
||||
The Initialization Settings section is designed to control how the SenseGlove Unreal Engine Plugin is initialized, allowing you to customize its behavior to suit your project's needs.
|
||||
|
||||

|
||||
|
||||
## bValidateIfDefaultClassesAreSGCompliant
|
||||
|
||||
If enabled, the plugin tries to check and validate whether the default for classes such as GameMode, GameInstance, etc. are indeed SenseGlove classes or SenseGlove-derived classes. If not, it attempts to set them. If you don't like this behavior for whatever reason, consider disabling this option.
|
||||
|
||||
By default, this option is disabled.
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
# The Tracking Settings
|
||||
|
||||
The tracking settings are primarily used by the SenseGlove `Tracking` module and are divided into various subsections, each focusing on a specific aspect of tracking. These subsections, along with the other settings directly provided by this section, provide comprehensive control over the tracking functionalities. The subsections are as follows:
|
||||
|
||||
- [The Glove-tracking Settings](glove-tracking.md)
|
||||
- [The Hand-tracking Settings](hand-tracking.md)
|
||||
- [The HMD-tracking Settings](hmd-tracking.md)
|
||||
- [The Wrist-tracking Settings](wrist-tracking/)
|
||||
|
||||

|
||||
|
||||
## bFallbackToHandTrackingIfNoGloveDetected
|
||||
|
||||
Determines whether to fallback to hand-tracking, or not, when no SenseGlove device is detected:
|
||||
|
||||
- If disabled, only a real glove will be tracked.
|
||||
- If enabled, the plugin will fall back to hand-tracking when it's available and supported by the HMD device.
|
||||
|
||||
> [!NOTE]
|
||||
> Disabling this option hides the hand-tracking settings section, while enabling
|
||||
> it makes the hand-tracking settings visible.
|
||||
|
||||
## Glove Tracking Settings
|
||||
|
||||
Provides the tracking settings related to SenseGlove devices.
|
||||
|
||||
## Hand Tracking Settings
|
||||
|
||||
The settings in this section only affects the hand-tracking functionality when it's enabled and available. When enabled the bare hands can be used instead of SenseGlove devices to interact within the VR simulation, of course without the haptics feedback provided by the SenseGlove devices.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you don't see the hand-tracking settings, ensure that the option
|
||||
> `bFallbackToHandTrackingIfNoGloveDetected` is checked.
|
||||
|
||||
## HMD Tracking Settings
|
||||
|
||||
Provides the tracking settings related to head-mounted displays (HDMs) and their auto-detection functionality.
|
||||
|
||||
## Wrist Tracking Settings
|
||||
|
||||
Provides the tracking settings applicable to wrist-tracking hardware.
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
# The Glove-tracking Settings
|
||||
|
||||
Provides the tracking settings related to SenseGlove devices.
|
||||
|
||||

|
||||
|
||||
## GloveConnectivityCheckInterval
|
||||
|
||||
The interval in which the tracking module checks for glove connectivity.
|
||||
|
||||
The default is `16.666666f` which means `60` times per second.
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
# The Hand-tracking Settings
|
||||
|
||||
The settings in this section only affects the hand-tracking functionality when it's enabled and available. When enabled the bare hands can be used instead of SenseGlove devices to interact within the VR simulation, of course without the haptics feedback provided by the SenseGlove devices.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> If you don't see the hand-tracking settings, ensure that the option
|
||||
> `bFallbackToHandTrackingIfNoGloveDetected` is checked.
|
||||
|
||||

|
||||
|
||||
## bUseMoreSpecificMotionSourceNames
|
||||
|
||||
If disabled, (the default) the motion sources for hand tracking will be of the form `[Left|Right][Keypoint]`. If enabled, they will be of the form `HandTracking[Left|Right][Keypoint]`. It is recommended to be enabled to avoid collisions between motion sources from different device types.
|
||||
|
||||
## bSupportLegacyControllerMotionSources
|
||||
|
||||
If enabled, hand tracking supports the `Left` and `Right` legacy motion sources. If disabled, it does not. It is recommended to be disabled unless you need legacy compatibility in older unreal projects.
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
# The HMD-tracking Settings
|
||||
|
||||
Provides the tracking settings related to head-mounted displays (HDMs) and their auto-detection functionality.
|
||||
|
||||

|
||||
|
||||
## ViveHMDDetectionPriority
|
||||
|
||||
Determines which VIVE HMD to prioritize for detection, as the current detection mechanism cannot differentiate between the HTC VIVE Focus 3 and the HTC VIVE XR Elite.
|
||||
Binary file not shown.
@@ -0,0 +1,77 @@
|
||||
# The Wrist-tracking Settings
|
||||
|
||||
Provides the tracking settings applicable to wrist-tracking hardware.
|
||||
|
||||

|
||||
|
||||
## TrackingHardware
|
||||
|
||||
Specifies the type of tracking hardware to use. If set to `None`, the plugin attempts at HMD auto-detection to automatically specify a compatible tracking hardware. If set to `Custom`, aby desired location and rotation can be specified.
|
||||
|
||||
> [!CAUTION]
|
||||
> HMD auto-detection is currently an experimental feature and may fail because
|
||||
> HMD vendors occasionally change the properties utilized by the plugin for HMD
|
||||
> detection. If you encounter issues, such as incorrect tracker offsets, it is
|
||||
> recommended to explicitly specify the tracking hardware.
|
||||
|
||||
> [!CAUTION]
|
||||
> Due to highly experimental nature of the HMD auto-detection feature, the HTC
|
||||
> VIVE Focus 3 and HTC XR Elite cannot be distinguished from each other in the
|
||||
> current iteration. However, since the tracker devices and offsets for both
|
||||
> headsets are the same, this should not affect performance or functionality.
|
||||
> The order in which the HMD is detected can be specified through the
|
||||
> [HMD-tracker setting `ViveHMDDetectionPriority`](../hmd-tracking.html#vivehmddetectionpriority).
|
||||
|
||||
## TrackingHardwareLocationOffsetLeftHand
|
||||
|
||||
Sets a custom location offset for left hand's wrist-tracking hardware.
|
||||
|
||||
> [!NOTE]
|
||||
> This setting is visible and valid only if TrackingHardware is set to `Custom`.
|
||||
|
||||
## TrackingHardwareLocationOffsetRightHand
|
||||
|
||||
Sets a custom location offset for right hand's wrist-tracking hardware.
|
||||
|
||||
> [!NOTE]
|
||||
> This setting is visible and valid only if TrackingHardware is set to `Custom`.
|
||||
|
||||
## TrackingHardwareRotationOffsetLeftHand
|
||||
|
||||
Sets a custom rotation offset for left hand's wrist-tracking hardware.
|
||||
|
||||
> [!NOTE]
|
||||
> This setting is visible and valid only if TrackingHardware is set to `Custom`.
|
||||
|
||||
## TrackingHardwareRotationOffsetRightHand
|
||||
|
||||
Sets a custom rotation offset for right hand's wrist-tracking hardware.
|
||||
|
||||
> [!NOTE]
|
||||
> This setting is visible and valid only if TrackingHardware is set to `Custom`.
|
||||
|
||||
## LeftHandMotionSource
|
||||
|
||||
Determines the motion source for the left hand. For Oculus HMDs, this is usually `Left`, and for VIVE HMDs, it's typically `LeftFoot`.
|
||||
|
||||
> [!NOTE]
|
||||
> For VIVE devices using SteamVR, the motion source hardware for the left hand
|
||||
> can be specified by the user through the SteamVR app.
|
||||
|
||||
## RightHandMotionSource
|
||||
|
||||
Determines the motion source for the right hand. For Oculus HMDs, this is usually `Right`, and for VIVE HMDs, it's typically `RightFoot`.
|
||||
|
||||
> [!NOTE]
|
||||
> For VIVE devices using SteamVR, the motion source hardware for the right hand
|
||||
> can be specified by the user through the SteamVR app.
|
||||
|
||||
## DebuggingSettings
|
||||
|
||||
Provides [debugging options](debugging.md) for visually debugging the wrist tracker.
|
||||
|
||||
## Overriding the Wrist-tracking Settings from the Wrist Tracker Component
|
||||
|
||||
It's possible to override some of the wrist tracker settings through the details panel of any specific Wrist Tracker Component. When overriden by enabling the `SenseGlove > Wrist Tracking Settings Override > Override Plugin Settings` option inside the details panel, these settings take precedence over the plugin's global settings.
|
||||
|
||||

|
||||
+13
@@ -0,0 +1,13 @@
|
||||
# The Wrist-tracking Debugging Settings
|
||||
|
||||
Provides debugging options for visually debugging the wrist tracker.
|
||||
|
||||

|
||||
|
||||
## bDrawDebugWristTracker
|
||||
|
||||
If enabled, visualizes the debug wrist trackers where possible.
|
||||
|
||||
## DebugWristTrackerSettings
|
||||
|
||||
Visible and valid only if `bDrawDebugGizmo` is enabled.
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,50 @@
|
||||
# The Virtual Hand Settings
|
||||
|
||||
The Virtual Hand Settings are utilized by various SenseGlove modules such as `Debug`, `Editor`, `Tracking`, and the main module. These settings are divided into several subsections, each focusing on a specific aspect of the virtual hand functionality. Together with the settings provided directly in this section, they offer comprehensive control over any system or component that utilizes the virtual hand. The subsections are as follows:
|
||||
|
||||
- [The Animation Settings](animation.md)
|
||||
- [The Debugging Settings](debugging.md)
|
||||
- [The Grab Settings](grab.md)
|
||||
- [The Haptics Settings](haptics.md)
|
||||
- [The Mesh Settings](mesh.md)
|
||||
- [The Touch Settings](touch.md)
|
||||
|
||||

|
||||
|
||||
## bVisibleWhenHandDataUnavailable
|
||||
|
||||
Used by the Virtual Hand Component to determine its visibility when no hand data, either from a SenseGlove or hand-tracking, is available. If enabled, the virtual hand mesh remains visible even when no data is available. By default, this setting is disabled, providing users of the simulation with a clear indicator that no hand data is currently available.
|
||||
|
||||
## Animation Settings
|
||||
|
||||
Controls how the virtual hand model is animated by the animation system.
|
||||
|
||||
## Debugging Settings
|
||||
|
||||
Primarily used for visually debugging low-level hand data. When enabled, the Virtual Hand Component visualizes a debug virtual hand by drawing all individual hand joints.
|
||||
|
||||
## Grab Settings
|
||||
|
||||
Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Grab system to function.
|
||||
|
||||
The `SGPawn` also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
|
||||
## Haptics Settings
|
||||
|
||||
Utilized by the haptics system.
|
||||
|
||||
## Mesh Settings
|
||||
|
||||
Utilized by the SenseGlove `Tracking` module to account for the current virtual hand mesh when generating hand pose data, resulting in more accurate glove or hand data representation and also smoother animations.
|
||||
|
||||
## Touch Settings
|
||||
|
||||
Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Touch system to function.
|
||||
|
||||
The `SGPawn` also utilizes these settings to set up the touch colliders on the virtual hand components.
|
||||
|
||||
## Overriding the Virtual Hand Settings from the Wrist Tracker Component
|
||||
|
||||
It's possible to override some of the virtual hand settings through the details panel of any specific Virtual Hand Component. When overriden by enabling the `SenseGlove > Virtual Hand Settings Override > Override Plugin Settings` option inside the details panel, these settings take precedence over the plugin's global settings.
|
||||
|
||||

|
||||
@@ -0,0 +1,13 @@
|
||||
# The Virtual Hand Animation Settings
|
||||
|
||||
Controls how the virtual hand model is animated by the animation system.
|
||||
|
||||

|
||||
|
||||
## AnimationBoneRotationCorrectionOffset
|
||||
|
||||
Specifies the offset to apply to each bone's rotation when translating hand pose data to the virtual hand bones. This is useful if the virtual hand mesh was imported with an initial rotation. For example, the virtual hand model shipped with Unreal Engine's VRTemplate typically has an initial `90.0f` degrees rotation on the `Yaw` axis. By default, this option has been set up with the Unreal Engine's VRTemplate virtual hand model in mind.
|
||||
|
||||
## bShouldAnimationApplyBoneLocation
|
||||
|
||||
When enabled, the animation system applies the joint locations to the current virtual hand mesh bones in addition to the joint rotation. Otherwise, only the joint rotations are applied, and joint locations are ignored, leaving the bone locations untouched on the virtual hand mesh when animating it. Enabling this option typically improves the virtual hand animation. By default, this option is enabled.
|
||||
@@ -0,0 +1,25 @@
|
||||
# The Virtual Hand Debugging Settings
|
||||
|
||||
Primarily used for visually debugging low-level hand data. When enabled, the Virtual Hand Component visualizes a debug virtual hand by drawing all individual hand joints.
|
||||
|
||||

|
||||
|
||||
## bDrawDebugVirtualHand
|
||||
|
||||
If enabled, visualizes the debug virtual hand where possible.
|
||||
|
||||
## DrawingMode
|
||||
|
||||
Determines the virtual hand drawing mode. If set to `CubicJoints`, for every joint a debug cube will be drawn. If set to `GizmoJoints`, for every joint a debug gizmo will be drawn.
|
||||
|
||||
## DebugCubicHandSettings
|
||||
|
||||
Visible and valid only if `bDrawDebugVirtualHand` is enabled and `DrawingMode` has been set to `ESGDebugVirtualHandDrawingMode::CubicJoints`.
|
||||
|
||||

|
||||
|
||||
## DebugGizmoHandSettings
|
||||
|
||||
Visible and valid only if `bDrawDebugVirtualHand` is enabled and `DrawingMode` has been set to `ESGDebugVirtualHandDrawingMode::GizmoJoints`.
|
||||
|
||||

|
||||
@@ -0,0 +1,31 @@
|
||||
# The Virtual Hand Grab Settings
|
||||
|
||||
Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Grab system to function.
|
||||
|
||||
The `SGPawn` also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
|
||||

|
||||
|
||||
## GrabAttachPointSocketName
|
||||
|
||||
The default socket name for the grab attach point, usually located at the palm of the hand.
|
||||
|
||||
## GrabAttachPointSocketTransform
|
||||
|
||||
The default socket transform (location, rotation, scale) for the grab attach point, usually located at the palm of the hand.
|
||||
|
||||
## DefaultColliderSize
|
||||
|
||||
The default collider size for the fingers' grab colliders.
|
||||
|
||||
## ThumbColliderSocketName
|
||||
|
||||
The default socket name for the thumb finger's grab collider, usually located at the tip of the thumb finger.
|
||||
|
||||
## IndexColliderSocketName
|
||||
|
||||
The default socket name for the index finger's grab collider, usually located at the tip of the index finger.
|
||||
|
||||
## MiddleColliderSocketName
|
||||
|
||||
The default socket name for the middle finger's grab collider, usually located at the tip of the middle finger.
|
||||
@@ -0,0 +1,9 @@
|
||||
# The Virtual Hand Haptics Settings
|
||||
|
||||
Utilized by the haptics system.
|
||||
|
||||

|
||||
|
||||
## bAutoStopAllHapticsOnEndPlay
|
||||
|
||||
Forces all haptics to stop automatically on the `EndPlay` event. This is useful for situations where the simulation has ended, but ongoing haptic feedback might remain active on the glove indefinitely. By default, this setting is enabled.
|
||||
@@ -0,0 +1,71 @@
|
||||
# The Virtual Hand Mesh Settings
|
||||
|
||||
Utilized by the SenseGlove `Tracking` module to account for the current virtual hand mesh when generating hand pose data, resulting in more accurate glove or hand data representation and also smoother animations.
|
||||
|
||||

|
||||
|
||||
# LeftHandReferenceMesh
|
||||
|
||||
The virtual hand model for the left hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRMotionControllerData`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRMotionControllerData` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRMotionControllerData`.
|
||||
|
||||
By default, no virtual hand mesh is set.
|
||||
|
||||
> [!CAUTION]
|
||||
> If no virtual hand mesh is set, the `Tracking` module will fall back to
|
||||
> hard-coded values extracted from the standard virtual hand model shipped by
|
||||
> Unreal Engine VRTemplate. This may result in distorted hand mesh while
|
||||
> animating a hand in case a different hand mesh other than the default Epic
|
||||
> virtual hand mesh is being set on the virtual hand components.
|
||||
|
||||
# RightHandReferenceMesh
|
||||
|
||||
The virtual hand model for the right hand is to be used by the SenseGlove `Tracking` module to generate all the `26` joint data present in the `FXRMotionControllerData`. The main reason the `Tracking` module requires a virtual hand mesh as a reference is the SenseGlove Hand Pose format only provides `15` joints. So, the remaining joint data for `FXRMotionControllerData` are calculated from a virtual hand mesh compatible with the Epic rig and also the values specified by `DistalPhalangesLengthSettings`. Furthermore, when calculating the existing joints data, their current locations and rotations are taken into account in calculating the resulting `FXRMotionControllerData`.
|
||||
|
||||
By default, no virtual hand mesh is set.
|
||||
|
||||
> [!CAUTION]
|
||||
> If no virtual hand mesh is set, the `Tracking` module will fall back to
|
||||
> hard-coded values extracted from the standard virtual hand model shipped by
|
||||
> Unreal Engine VRTemplate. This may result in distorted hand mesh while
|
||||
> animating a hand in case a different hand mesh other than the default Epic
|
||||
> virtual hand mesh is being set on the virtual hand components.
|
||||
|
||||
# DistalPhalangesLengthSettings
|
||||
|
||||
The length of distal phalanges that cannot be retrieved from any virtual hand mesh compliant with the Epic standard rig. Also, the SenseGlove Hand Pose format does not provide these. This is used by SenseGlove `Tracking` module to calculate an `FXRMotionControllerData` the all `26` joints. The values you specify here depend on the shape of the virtual hand mesh and the defaults are approximated for the virtual hand model shipped with the Unreal Engine VRTemplate.
|
||||
|
||||
## RootBoneRotationCorrection
|
||||
|
||||
Used mostly by the SenseGlove `Tracking` module and `SGPawn` to offset for any initial rotation during the virtual hand mesh import process. This is the case for example with the virtual hand model shipped with Unreal Engine's VRTemplate, which typically has an initial `-90.0f` degrees rotation on the `Yaw` axis. By default, this option has been set up with the Unreal Engine's VRTemplate virtual hand model in mind.
|
||||
|
||||
## LeftHandDefaultReferenceBoneTransforms
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## RightHandDefaultReferenceBoneTransforms
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## LeftHandBoneNames
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## RightHandBoneNames
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## DefaultLeftHandMeshPath
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## DefaultLeftHandMeshPathOnly
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## DefaultRightHandMeshPath
|
||||
|
||||
Read-only and for internal use only.
|
||||
|
||||
## DefaultRightHandMeshPathOnly
|
||||
|
||||
Read-only and for internal use only.
|
||||
@@ -0,0 +1,31 @@
|
||||
# The Virtual Hand Touch Settings
|
||||
|
||||
Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Touch system to function.
|
||||
|
||||
The `SGPawn` also utilizes these settings to set up the touch colliders on the virtual hand components.
|
||||
|
||||

|
||||
|
||||
## DefaultColliderSize
|
||||
|
||||
The default collider size for the fingers' touch colliders.
|
||||
|
||||
## ThumbColliderSocketName
|
||||
|
||||
The default socket name for the thumb finger's touch collider, usually located at the tip of the thumb finger.
|
||||
|
||||
## IndexColliderSocketName
|
||||
|
||||
The default socket name for the index finger's touch collider, usually located at the tip of the index finger.
|
||||
|
||||
## MiddleColliderSocketName
|
||||
|
||||
The default socket name for the middle finger's touch collider, usually located at the tip of the middle finger.
|
||||
|
||||
## RingColliderSocketName
|
||||
|
||||
The default socket name for the ring finger's touch collider, usually located at the tip of the ring finger.
|
||||
|
||||
## PinkyColliderSocketName
|
||||
|
||||
The default socket name for the pinky finger's touch collider, usually located at the tip of the pinky finger.
|
||||
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -42,7 +42,7 @@
|
||||
#include "SGDebugGizmoSettings.generated.h"
|
||||
|
||||
/**
|
||||
* Implements the debug gimo settings.
|
||||
* Implements the debug gizmo settings.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGDebugGizmoSettings
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
|
||||
/**
|
||||
* Implements the game user settings.
|
||||
*
|
||||
* The Game User Settings control the behavior of the SenseGlove instance of UGameUserSettings. The USGGameUserSettings
|
||||
* class extends the functionality of UGameUserSettings to provide enhanced customization options specifically for
|
||||
* applications that utilize the SenseGlove Unreal Engine Plugin.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGGameUserSettingsSettings
|
||||
@@ -50,6 +54,15 @@ struct SENSEGLOVESETTINGS_API FSGGameUserSettingsSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* The hardware-benchmarking settings.
|
||||
*
|
||||
* The settings in this section are utilized by the USGGameUserSettings::SetEngineScalabilitySettings() method when
|
||||
* the Scalability parameter is set to ESGEngineScalabilitySettings::Auto. When the engine scalability settings set
|
||||
* to auto the graphics settings are determined by running a hardware benchmark by calling the
|
||||
* UGameUserSettings::RunHardwareBenchmark(). The settings listed here are basically the parameters passed to
|
||||
* UGameUserSettings::RunHardwareBenchmark().
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Game User Settings")
|
||||
FSGHardwareBenchmarkingSettings HardwareBenchmarkingSettings;
|
||||
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
|
||||
/**
|
||||
* Implements the glove tracking settings for the SenseGlove Tracking module.
|
||||
*
|
||||
* Provides the tracking settings related to SenseGlove devices.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGGloveTrackingSettings
|
||||
@@ -49,7 +51,9 @@ struct SENSEGLOVESETTINGS_API FSGGloveTrackingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* The interval to check for glove connectivity. The default is 0.125f which means 8 times in each second.
|
||||
* The interval in which the tracking module checks for glove connectivity.
|
||||
*
|
||||
* The default is 16.666666f which means 60 times per second.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Glove Tracking")
|
||||
float GloveConnectivityCheckInterval;
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
|
||||
/**
|
||||
* Implements the HMD tracking settings for the SenseGlove Tracking module.
|
||||
*
|
||||
* Provides the tracking settings related to head-mounted displays (HDMs) and their auto-detection functionality.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGHMDTrackingSettings
|
||||
@@ -51,8 +53,8 @@ struct SENSEGLOVESETTINGS_API FSGHMDTrackingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* Used to determine which VIVE HMD should we try to detect first, since we cannot distinguish between
|
||||
* HTC VIVE Focus 3 and HTC VIVE XR Elite.
|
||||
* Determines which VIVE HMD to prioritize for detection, as the current detection mechanism cannot differentiate
|
||||
* between the HTC VIVE Focus 3 and the HTC VIVE XR Elite.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="HMD Tracking")
|
||||
ESGViveHMDDetectionPriority ViveHMDDetectionPriority;
|
||||
|
||||
@@ -42,6 +42,10 @@
|
||||
|
||||
/**
|
||||
* Implements the hand tracking settings for the SenseGlove Tracking module.
|
||||
*
|
||||
* The settings in this section only affects the hand-tracking functionality when it's enabled and available. When
|
||||
* enabled the bare hands can be used instead of SenseGlove devices to interact within the VR simulation, of course
|
||||
* without the haptics feedback provided by the SenseGlove devices.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGHandTrackingSettings
|
||||
@@ -50,16 +54,16 @@ struct SENSEGLOVESETTINGS_API FSGHandTrackingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* If false (the default) the motion sources for hand tracking will be of the form '[Left|Right][Keypoint]'. If
|
||||
* true they will be of the form 'HandTracking[Left|Right][Keypoint]'. True is recommended to avoid collisions
|
||||
* between motion sources from different device types.
|
||||
* If disabled, (the default) the motion sources for hand tracking will be of the form '[Left|Right][Keypoint]'. If
|
||||
* enabled, they will be of the form 'HandTracking[Left|Right][Keypoint]'. It is recommended to be enabled to avoid
|
||||
* collisions between motion sources from different device types.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Hand Tracking")
|
||||
bool bUseMoreSpecificMotionSourceNames;
|
||||
|
||||
/**
|
||||
* If true hand tracking supports the 'Left' and 'Right' legacy motion sources. If false it does not. False is
|
||||
* recommended unless you need legacy compatibility in an older unreal projects.
|
||||
* If enabled, hand tracking supports the 'Left' and 'Right' legacy motion sources. If disabled, it does not. It is
|
||||
* recommended to be disabled unless you need legacy compatibility in older unreal projects.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Hand Tracking")
|
||||
bool bSupportLegacyControllerMotionSources;
|
||||
|
||||
@@ -40,7 +40,13 @@
|
||||
#include "SGHardwareBenchmarkingSettings.generated.h"
|
||||
|
||||
/**
|
||||
* Implements the hardware benchmarking settings.
|
||||
* Implements the hardware-benchmarking settings.
|
||||
*
|
||||
* The settings in this section are utilized by the USGGameUserSettings::SetEngineScalabilitySettings() method when the
|
||||
* Scalability parameter is set to ESGEngineScalabilitySettings::Auto. When the engine scalability settings set to auto
|
||||
* the graphics settings are determined by running a hardware benchmark by calling the
|
||||
* UGameUserSettings::RunHardwareBenchmark(). The settings listed here are basically the parameters passed to
|
||||
* UGameUserSettings::RunHardwareBenchmark().
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGHardwareBenchmarkingSettings
|
||||
@@ -48,12 +54,24 @@ struct SENSEGLOVESETTINGS_API FSGHardwareBenchmarkingSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* The WorkScale parameter determines the intensity of the benchmark test. Higher values result in more intensive
|
||||
* testing, which can help achieve more accurate scalability settings.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Hardware Benchmarking")
|
||||
float WorkScale;
|
||||
|
||||
/**
|
||||
* The CPUMultiplier parameter allows you to adjust the impact of CPU performance on the benchmark results.
|
||||
* Increasing this value will emphasize CPU performance more heavily in determining scalability settings.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Hardware Benchmarking")
|
||||
float CPUMultiplier;
|
||||
|
||||
/**
|
||||
* The GPUMultiplier parameter lets you modify the influence of GPU performance on the benchmark outcomes. A higher
|
||||
* value will increase the weight of GPU performance in setting scalability.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Hardware Benchmarking")
|
||||
float GPUMultiplier;
|
||||
|
||||
|
||||
@@ -42,6 +42,9 @@
|
||||
|
||||
/**
|
||||
* Implements the plugin initialization settings.
|
||||
*
|
||||
* The Initialization Settings section is designed to control how the SenseGlove Unreal Engine Plugin is initialized,
|
||||
* allowing you to customize its behavior to suit your project's needs.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGInitializationSettings
|
||||
@@ -50,9 +53,11 @@ struct SENSEGLOVESETTINGS_API FSGInitializationSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* If enabled, the plugin tries to check and validate whether the default classes such as GameMode, GameInstance,
|
||||
* etc. are indeed SenseGlove classes or SenseGlove-derived classes. If not, it attempts to set them. If you don't
|
||||
* like this behavior for whatever reason, consider disabling this option.
|
||||
* If enabled, the plugin tries to check and validate whether the default for classes such as GameMode,
|
||||
* GameInstance, etc. are indeed SenseGlove classes or SenseGlove-derived classes. If not, it attempts to set them.
|
||||
* If you don't like this behavior for whatever reason, consider disabling this option.
|
||||
*
|
||||
* By default, this option is disabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Initialization")
|
||||
bool bValidateIfDefaultClassesAreSGCompliant;
|
||||
|
||||
@@ -69,15 +69,35 @@ private:
|
||||
FImplDeleter PimplDeleter;
|
||||
|
||||
private:
|
||||
/**
|
||||
* The Initialization Settings section is designed to control how the SenseGlove Unreal Engine Plugin is
|
||||
* initialized, allowing you to customize its behavior to suit your project's needs.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "SenseGlove")
|
||||
FSGInitializationSettings InitializationSettings;
|
||||
|
||||
/**
|
||||
* The Game User Settings control the behavior of the SenseGlove instance of UGameUserSettings. The
|
||||
* USGGameUserSettings class extends the functionality of UGameUserSettings to provide enhanced customization
|
||||
* options specifically for applications that utilize the SenseGlove Unreal Engine Plugin.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "SenseGlove")
|
||||
FSGGameUserSettingsSettings GameUserSettings;
|
||||
|
||||
/**
|
||||
* The tracking settings are primarily used by the SenseGlove Tracking module and are divided into various
|
||||
* subsections, each focusing on a specific aspect of tracking. These subsections, along with the other settings
|
||||
* directly provided by this section, provide comprehensive control over the tracking functionalities.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "SenseGlove")
|
||||
FSGTrackingSettings TrackingSettings;
|
||||
|
||||
/**
|
||||
* The Virtual Hand Settings are utilized by various SenseGlove modules such as Debug, Editor, Tracking, and the
|
||||
* main module. These settings are divided into several subsections, each focusing on a specific aspect of the
|
||||
* virtual hand functionality. Together with the settings provided directly in this section, they offer
|
||||
* comprehensive control over any system or component that utilizes the virtual hand.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="SenseGlove")
|
||||
FSGVirtualHandSettings VirtualHandSettings;
|
||||
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
|
||||
/**
|
||||
* Implements the settings for the SenseGlove Tracking module.
|
||||
*
|
||||
* The tracking settings are primarily used by the SenseGlove Tracking module and are divided into various subsections,
|
||||
* each focusing on a specific aspect of tracking. These subsections, along with the other settings directly provided by
|
||||
* this section, provide comprehensive control over the tracking functionalities.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGTrackingSettings
|
||||
@@ -55,22 +59,41 @@ struct SENSEGLOVESETTINGS_API FSGTrackingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* If false, only a real glove will be tracked, otherwise will fall back to hand tracking if available and
|
||||
* supported by the HMD device.
|
||||
* Determines whether to fallback to hand-tracking, or not, when no SenseGlove device is detected:
|
||||
*
|
||||
* - If disabled, only a real glove will be tracked.
|
||||
* - If enabled, the plugin will fall back to hand-tracking when it's available and supported by the HMD device.
|
||||
*
|
||||
* Note: disabling this option hides the hand-tracking settings section, while enabling it makes the hand-tracking
|
||||
* settings visible.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Tracking")
|
||||
bool bFallbackToHandTrackingIfNoGloveDetected;
|
||||
|
||||
/**
|
||||
* Provides the tracking settings related to SenseGlove devices.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Tracking")
|
||||
FSGGloveTrackingSettings GloveTrackingSettings;
|
||||
|
||||
/**
|
||||
* The settings in this section only affects the hand-tracking functionality when it's enabled and available. When
|
||||
* enabled the bare hands can be used instead of SenseGlove devices to interact within the VR simulation, of course
|
||||
* without the haptics feedback provided by the SenseGlove devices.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Tracking",
|
||||
meta=(EditCondition="bFallbackToHandTrackingIfNoGloveDetected", EditConditionHides))
|
||||
FSGHandTrackingSettings HandTrackingSettings;
|
||||
|
||||
/**
|
||||
* Provides the tracking settings related to head-mounted displays (HDMs) and their auto-detection functionality.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Tracking")
|
||||
FSGHMDTrackingSettings HMDTrackingSettings;
|
||||
|
||||
/**
|
||||
* Provides the tracking settings applicable to wrist-tracking hardware.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Tracking")
|
||||
FSGWristTrackingSettings WristTrackingSettings;
|
||||
|
||||
|
||||
@@ -46,6 +46,8 @@ class USkeletalMesh;
|
||||
|
||||
/**
|
||||
* Implements the virtual hand animation settings.
|
||||
*
|
||||
* Controls how the virtual hand model is animated by the animation system.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandAnimationSettings
|
||||
@@ -53,9 +55,21 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandAnimationSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Specifies the offset to apply to each bone's rotation when translating hand pose data to the virtual hand bones.
|
||||
* This is useful if the virtual hand mesh was imported with an initial rotation. For example, the virtual hand
|
||||
* model shipped with Unreal Engine's VRTemplate typically has an initial 90.0f degrees rotation on the Yaw axis.
|
||||
* By default, this option has been set up with the Unreal Engine's VRTemplate virtual hand model in mind.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Animation")
|
||||
FRotator AnimationBoneRotationCorrectionOffset;
|
||||
|
||||
/**
|
||||
* When enabled, the animation system applies the joint locations to the current virtual hand mesh bones in
|
||||
* addition to the joint rotation. Otherwise, only the joint rotations are applied, and joint locations are
|
||||
* ignored, leaving the bone locations untouched on the virtual hand mesh when animating it. Enabling this option
|
||||
* typically improves the virtual hand animation. By default, this option is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Animation")
|
||||
bool bShouldAnimationApplyBoneLocation;
|
||||
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
|
||||
/**
|
||||
* Implements the virtual hand debugging settings.
|
||||
*
|
||||
* Primarily used for visually debugging low-level hand data. When enabled, the Virtual Hand Component visualizes a
|
||||
* debug virtual hand by drawing all individual hand joints.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandDebuggingSettings
|
||||
@@ -53,18 +56,33 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandDebuggingSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* If enabled, visualizes the debug virtual hand where possible.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Debugging")
|
||||
bool bDrawDebugVirtualHand;
|
||||
|
||||
/**
|
||||
* Determines the virtual hand drawing mode. If set to `CubicJoints, for every joint a debug cube will be drawn.
|
||||
* If set to GizmoJoints, for every joint a debug gizmo will be drawn.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Debugging",
|
||||
meta=(EditCondition="bDrawDebugVirtualHand", EditConditionHides))
|
||||
ESGDebugVirtualHandDrawingMode DrawingMode;
|
||||
|
||||
/**
|
||||
* Visible and valid only if bDrawDebugVirtualHand is enabled and DrawingMode has been set to
|
||||
* ESGDebugVirtualHandDrawingMode::CubicJoints.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Debugging",
|
||||
meta=(EditCondition="bDrawDebugVirtualHand && DrawingMode == ESGDebugVirtualHandDrawingMode::CubicJoints",
|
||||
EditConditionHides))
|
||||
FSGDebugCubeSettings DebugCubicHandSettings;
|
||||
|
||||
/**
|
||||
* Visible and valid only if bDrawDebugVirtualHand is enabled and DrawingMode has been set to
|
||||
* ESGDebugVirtualHandDrawingMode::GizmoJoints.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Debugging",
|
||||
meta=(EditCondition="bDrawDebugVirtualHand && DrawingMode == ESGDebugVirtualHandDrawingMode::GizmoJoints",
|
||||
EditConditionHides))
|
||||
|
||||
@@ -47,6 +47,11 @@ class USkeletalMesh;
|
||||
|
||||
/**
|
||||
* Implements the virtual hand grab settings.
|
||||
*
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Grab
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandGrabSettings
|
||||
@@ -54,21 +59,40 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandGrabSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* The default socket name for the grab attach point, usually located at the palm of the hand.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FName GrabAttachPointSocketName;
|
||||
|
||||
/**
|
||||
* The default socket transform (location, rotation, scale) for the grab attach point, usually located at the palm
|
||||
* of the hand.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FTransform GrabAttachPointSocketTransform;
|
||||
|
||||
/**
|
||||
* The default collider size for the fingers' grab colliders.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FVector DefaultColliderSize;
|
||||
|
||||
/**
|
||||
* The default socket name for the thumb finger's grab collider, usually located at the tip of the thumb finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FName ThumbColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the index finger's grab collider, usually located at the tip of the index finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FName IndexColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the middle finger's grab collider, usually located at the tip of the middle finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Grab")
|
||||
FName MiddleColliderSocketName;
|
||||
|
||||
|
||||
@@ -44,6 +44,8 @@ class USkeletalMesh;
|
||||
|
||||
/**
|
||||
* Implements the virtual hand haptics settings.
|
||||
*
|
||||
* Utilized by the haptics system.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandHapticsSettings
|
||||
@@ -51,6 +53,11 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandHapticsSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Forces all haptics to stop automatically on the EndPlay event. This is useful for situations where the
|
||||
* simulation has ended, but ongoing haptic feedback might remain active on the glove indefinitely. By default,
|
||||
* this setting is enabled.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Haptics")
|
||||
bool bAutoStopAllHapticsOnEndPlay;
|
||||
|
||||
|
||||
@@ -53,6 +53,9 @@ class USkeletalMesh;
|
||||
|
||||
/**
|
||||
* Implements the virtual hand mesh settings.
|
||||
*
|
||||
* Utilized by the SenseGlove Tracking module to account for the current virtual hand mesh when generating hand pose
|
||||
* data, resulting in more accurate glove or hand data representation and also smoother animations.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandMeshSettings
|
||||
@@ -60,39 +63,108 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandMeshSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* The virtual hand model for the left hand is to be used by the SenseGlove Tracking module to generate all the 26
|
||||
* joint data present in the FXRMotionControllerData. The main reason the Tracking module requires a virtual hand
|
||||
* mesh as a reference is the SenseGlove Hand Pose format only provides 15 joints. So, the remaining joint data for
|
||||
* FXRMotionControllerData are calculated from a virtual hand mesh compatible with the Epic rig and also the values
|
||||
* specified by DistalPhalangesLengthSettings. Furthermore, when calculating the existing joints data, their
|
||||
* current locations and rotations are taken into account in calculating the resulting FXRMotionControllerData.
|
||||
*
|
||||
* By default, no virtual hand mesh is set.
|
||||
*
|
||||
* Caution:
|
||||
* If no virtual hand mesh is set, the Tracking module will fall back to hard-coded values extracted from the
|
||||
* standard virtual hand model shipped by Unreal Engine VRTemplate. This may result in distorted hand mesh while
|
||||
* animating a hand in case a different hand mesh other than the default Epic virtual hand mesh is being set on the
|
||||
* virtual hand components.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Mesh")
|
||||
TSoftObjectPtr<USkeletalMesh> LeftHandReferenceMesh;
|
||||
|
||||
/**
|
||||
* The virtual hand model for the right hand is to be used by the SenseGlove Tracking module to generate all the 26
|
||||
* joint data present in the FXRMotionControllerData. The main reason the Tracking module requires a virtual hand
|
||||
* mesh as a reference is the SenseGlove Hand Pose format only provides 15 joints. So, the remaining joint data for
|
||||
* FXRMotionControllerData are calculated from a virtual hand mesh compatible with the Epic rig and also the values
|
||||
* specified by DistalPhalangesLengthSettings. Furthermore, when calculating the existing joints data, their
|
||||
* current locations and rotations are taken into account in calculating the resulting FXRMotionControllerData.
|
||||
*
|
||||
* By default, no virtual hand mesh is set.
|
||||
*
|
||||
* Caution:
|
||||
* If no virtual hand mesh is set, the Tracking module will fall back to hard-coded values extracted from the
|
||||
* standard virtual hand model shipped by Unreal Engine VRTemplate. This may result in distorted hand mesh while
|
||||
* animating a hand in case a different hand mesh other than the default Epic virtual hand mesh is being set on the
|
||||
* virtual hand components.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Mesh")
|
||||
TSoftObjectPtr<USkeletalMesh> RightHandReferenceMesh;
|
||||
|
||||
/**
|
||||
* The length of distal phalanges that cannot be retrieved from any virtual hand mesh compliant with the Epic
|
||||
* standard rig. Also, the SenseGlove Hand Pose format does not provide these. This is used by SenseGlove Tracking
|
||||
* module to calculate an FXRMotionControllerData the all 26 joints. The values you specify here depend on the
|
||||
* shape of the virtual hand mesh and the defaults are approximated for the virtual hand model shipped with the
|
||||
* Unreal Engine VRTemplate.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Mesh")
|
||||
FSGVirtualHandPhalangesLengthSettings DistalPhalangesLengthSettings;
|
||||
|
||||
/**
|
||||
* Used mostly by the SenseGlove Tracking module and SGPawn to offset for any initial rotation during the virtual
|
||||
* hand mesh import process. This is the case for example with the virtual hand model shipped with Unreal Engine's
|
||||
* VRTemplate, which typically has an initial -90.0f degrees rotation on the Yaw axis. By default, this option has
|
||||
* been set up with the Unreal Engine's VRTemplate virtual hand model in mind.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Mesh")
|
||||
FRotator RootBoneRotationCorrection;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
TMap<FName, FTransform> LeftHandDefaultReferenceBoneTransforms;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
TMap<FName, FTransform> RightHandDefaultReferenceBoneTransforms;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
TArray<FName> LeftHandBoneNames;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
TArray<FName> RightHandBoneNames;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
FString DefaultLeftHandMeshPath;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
FString DefaultLeftHandMeshPathOnly;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
FString DefaultRightHandMeshPath;
|
||||
|
||||
/**
|
||||
* Read-only and for internal use only.
|
||||
*/
|
||||
UPROPERTY(Config, VisibleDefaultsOnly, Category="Mesh")
|
||||
FString DefaultRightHandMeshPathOnly;
|
||||
|
||||
|
||||
@@ -49,6 +49,11 @@
|
||||
|
||||
/**
|
||||
* Implements the virtual hand settings.
|
||||
*
|
||||
* The Virtual Hand Settings are utilized by various SenseGlove modules such as Debug, Editor, Tracking, and the main
|
||||
* module. These settings are divided into several subsections, each focusing on a specific aspect of the virtual hand
|
||||
* functionality. Together with the settings provided directly in this section, they offer comprehensive control over
|
||||
* any system or component that utilizes the virtual hand.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandSettings
|
||||
@@ -56,24 +61,56 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* Used by the Virtual Hand Component to determine its visibility when no hand data, either from a SenseGlove or
|
||||
* hand-tracking, is available. If enabled, the virtual hand mesh remains visible even when no data is available.
|
||||
* By default, this setting is disabled, providing users of the simulation with a clear indicator that no hand data
|
||||
* is currently available.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
bool bVisibleWhenHandDataUnavailable;
|
||||
|
||||
/**
|
||||
* Controls how the virtual hand model is animated by the animation system.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandAnimationSettings AnimationSettings;
|
||||
|
||||
/**
|
||||
* Primarily used for visually debugging low-level hand data. When enabled, the Virtual Hand Component visualizes a
|
||||
* debug virtual hand by drawing all individual hand joints.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandDebuggingSettings DebuggingSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Grab
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandGrabSettings GrabSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the haptics system.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandHapticsSettings HapticsSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the SenseGlove Tracking module to account for the current virtual hand mesh when generating hand
|
||||
* pose data, resulting in more accurate glove or hand data representation and also smoother animations.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandMeshSettings MeshSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the touch
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Virtual Hand")
|
||||
FSGVirtualHandTouchSettings TouchSettings;
|
||||
|
||||
|
||||
@@ -61,26 +61,54 @@ public:
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove")
|
||||
bool bOverridePluginSettings;
|
||||
|
||||
/**
|
||||
* Used by the Virtual Hand Component to determine its visibility when no hand data, either from a SenseGlove or
|
||||
* hand-tracking, is available. If enabled, the virtual hand mesh remains visible even when no data is available.
|
||||
* By default, this setting is disabled, providing users of the simulation with a clear indicator that no hand data
|
||||
* is currently available.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
bool bVisibleWhenHandDataUnavailable;
|
||||
|
||||
/**
|
||||
* Controls how the virtual hand model is animated by the animation system.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGVirtualHandAnimationSettings AnimationSettings;
|
||||
|
||||
/**
|
||||
* Primarily used for visually debugging low-level hand data. When enabled, the Virtual Hand Component visualizes a
|
||||
* debug virtual hand by drawing all individual hand joints.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGVirtualHandDebuggingSettings DebuggingSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the Grab
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGVirtualHandGrabSettings GrabSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the haptics system.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGVirtualHandHapticsSettings HapticsSettings;
|
||||
|
||||
/**
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the touch
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGVirtualHandTouchSettings TouchSettings;
|
||||
|
||||
@@ -46,6 +46,11 @@ class USkeletalMesh;
|
||||
|
||||
/**
|
||||
* Implements the virtual hand touch settings.
|
||||
*
|
||||
* Utilized by the SenseGlove Sockets Editor to automatically generate the hand sockets required by the touch
|
||||
* system to function.
|
||||
*
|
||||
* The SGPawn also utilizes these settings to set up the grab colliders on the virtual hand components.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGVirtualHandTouchSettings
|
||||
@@ -53,21 +58,39 @@ struct SENSEGLOVESETTINGS_API FSGVirtualHandTouchSettings
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
public:
|
||||
/**
|
||||
* The default collider size for the fingers' touch colliders.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FVector DefaultColliderSize;
|
||||
|
||||
/**
|
||||
* The default socket name for the thumb finger's touch collider, usually located at the tip of the thumb finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FName ThumbColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the index finger's touch collider, usually located at the tip of the index finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FName IndexColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the middle finger's touch collider, usually located at the tip of the middle finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FName MiddleColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the ring finger's touch collider, usually located at the tip of the ring finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FName RingColliderSocketName;
|
||||
|
||||
/**
|
||||
* The default socket name for the pinky finger's touch collider, usually located at the tip of the pinky finger.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Touch")
|
||||
FName PinkyColliderSocketName;
|
||||
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
|
||||
/**
|
||||
* Implements the wrist tracking debugging settings.
|
||||
*
|
||||
* Provides debugging options for visually debugging the wrist tracker.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGWristTrackingDebuggingSettings
|
||||
@@ -54,13 +56,13 @@ struct SENSEGLOVESETTINGS_API FSGWristTrackingDebuggingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* If enabled, draws debug Wrist trackers where possible.
|
||||
* If enabled, visualizes the debug wrist trackers where possible.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "Debugging")
|
||||
bool bDrawDebugWristTracker;
|
||||
|
||||
/**
|
||||
* Valid only if bDrawDebugGizmo is enabled.
|
||||
* Visible and valid only if bDrawDebugGizmo is enabled.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "Debugging",
|
||||
meta=(EditCondition="bDrawDebugWristTracker", EditConditionHides))
|
||||
|
||||
@@ -48,6 +48,8 @@
|
||||
|
||||
/**
|
||||
* Implements the wrist tracking settings.
|
||||
*
|
||||
* Provides the tracking settings applicable to wrist-tracking hardware.
|
||||
*/
|
||||
USTRUCT(BlueprintType)
|
||||
struct SENSEGLOVESETTINGS_API FSGWristTrackingSettings
|
||||
@@ -56,53 +58,91 @@ struct SENSEGLOVESETTINGS_API FSGWristTrackingSettings
|
||||
|
||||
public:
|
||||
/**
|
||||
* If set to Custom, any desired location and rotation can be specified.
|
||||
* Specifies the type of tracking hardware to use. If set to None, the plugin attempts at HMD auto-detection to
|
||||
* automatically specify a compatible tracking hardware. If set to `Custom`, aby desired location and rotation can
|
||||
* be specified.
|
||||
*
|
||||
* Caution:
|
||||
* HMD auto-detection is currently an experimental feature and may fail because HMD vendors occasionally change the
|
||||
* properties utilized by the plugin for HMD
|
||||
* detection. If you encounter issues, such as incorrect tracker offsets, it is recommended to explicitly specify
|
||||
* the tracking hardware.
|
||||
*
|
||||
* Caution:
|
||||
* Due to highly experimental nature of the HMD auto-detection feature, the HTC VIVE Focus 3 and HTC XR Elite
|
||||
* cannot be distinguished from each other in the current iteration. However, since the tracker devices and offsets
|
||||
* for both headsets are the same, this should not affect performance or functionality.
|
||||
* The order in which the HMD is detected can be specified through the HMD-tracker setting
|
||||
* `ViveHMDDetectionPriority`.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking")
|
||||
ESGPositionalTrackingHardware TrackingHardware;
|
||||
|
||||
/**
|
||||
* Valid only if TrackingHardware is set to Custom.
|
||||
* Sets a custom location offset for left hand's wrist-tracking hardware.
|
||||
*
|
||||
* Note:
|
||||
* This setting is visible and valid only if TrackingHardware is set to Custom.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking",
|
||||
meta=(EditCondition="TrackingHardware == ESGPositionalTrackingHardware::Custom", EditConditionHides))
|
||||
FVector TrackingHardwareLocationOffsetLeftHand;
|
||||
|
||||
/**
|
||||
* Valid only if TrackingHardware is set to Custom.
|
||||
* Sets a custom location offset for right hand's wrist-tracking hardware.
|
||||
*
|
||||
* Note:
|
||||
* This setting is visible and valid only if TrackingHardware is set to Custom.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking",
|
||||
meta=(EditCondition="TrackingHardware == ESGPositionalTrackingHardware::Custom", EditConditionHides))
|
||||
FVector TrackingHardwareLocationOffsetRightHand;
|
||||
|
||||
/**
|
||||
* Valid only if TrackingHardware is set to Custom.
|
||||
* Sets a custom rotation offset for left hand's wrist-tracking hardware.
|
||||
*
|
||||
* Note:
|
||||
* This setting is visible and valid only if TrackingHardware is set to Custom.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking",
|
||||
meta=(EditCondition="TrackingHardware == ESGPositionalTrackingHardware::Custom", EditConditionHides))
|
||||
FRotator TrackingHardwareRotationOffsetLeftHand;
|
||||
|
||||
/**
|
||||
* Valid only if TrackingHardware is set to Custom.
|
||||
* Sets a custom rotation offset for right hand's wrist-tracking hardware.
|
||||
*
|
||||
* Note:
|
||||
* This setting is visible and valid only if TrackingHardware is set to Custom.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking",
|
||||
meta=(EditCondition="TrackingHardware == ESGPositionalTrackingHardware::Custom", EditConditionHides))
|
||||
FRotator TrackingHardwareRotationOffsetRightHand;
|
||||
|
||||
/**
|
||||
* Determines which motion source to use.
|
||||
* For Oculus this is usually Left, and for VIVE usually LeftFoot.
|
||||
* Determines the motion source for the left hand. For Oculus HMDs, this is usually Left, and for VIVE HMDs, it's
|
||||
* typically LeftFoot.
|
||||
*
|
||||
* Note:
|
||||
* For VIVE devices using SteamVR, the motion source hardware for the left hand can be specified by the user
|
||||
* through the SteamVR app.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Wrist Tracking")
|
||||
EControllerHand LeftHandMotionSource;
|
||||
|
||||
/**
|
||||
* Determines which motion source to use.
|
||||
* For Oculus this is usually Right, and for VIVE usually RightFoot.
|
||||
* Determines the motion source for the left hand. For Oculus HMDs, this is usually Right, and for VIVE HMDs, it's
|
||||
* typically RightFoot.
|
||||
*
|
||||
* Note:
|
||||
* For VIVE devices using SteamVR, the motion source hardware for the right hand can be specified by the user
|
||||
* through the SteamVR app.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category="Wrist Tracking")
|
||||
EControllerHand RightHandMotionSource;
|
||||
|
||||
/**
|
||||
* Provides debugging options for visually debugging the wrist tracker.
|
||||
*/
|
||||
UPROPERTY(Config, EditDefaultsOnly, Category = "Wrist Tracking")
|
||||
FSGWristTrackingDebuggingSettings DebuggingSettings;
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@ public:
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove")
|
||||
bool bOverridePluginSettings;
|
||||
|
||||
/**
|
||||
* Provides debugging options for visually debugging the wrist tracker.
|
||||
*/
|
||||
UPROPERTY(EditAnywhere, Category = "SenseGlove",
|
||||
meta=(EditCondition="bOverridePluginSettings", EditConditionHides))
|
||||
FSGWristTrackingDebuggingSettings DebuggingSettings;
|
||||
|
||||
Reference in New Issue
Block a user