diff --git a/Handbook/src/SUMMARY.md b/Handbook/src/SUMMARY.md index 7c3a295d..f94fc735 100644 --- a/Handbook/src/SUMMARY.md +++ b/Handbook/src/SUMMARY.md @@ -28,8 +28,8 @@ Welcom to the SenseGlove Unreal Engine Handbook! - [SGGameUserSettings](getting-started/setup-senseglove-default-classes/sggameusersettings.md) - [Setup the Virtual Hand Meshes](getting-started/setup-virtual-hand-meshes/README.md) - [Setup the Wrist Tracking Hardware](getting-started/setup-wrist-tracking-hardware/README.md) -- [Setup the Grab System]() -- [Setup the Touch System]() +- [Setup the Grab/Release System](getting-started/setup-grab-release-system/README.md) +- [Setup the Touch System](getting-started/setup-touch-system/README.md) # ⚙️ Plugin Configuration diff --git a/Handbook/src/getting-started/setup-grab-release-system/README.md b/Handbook/src/getting-started/setup-grab-release-system/README.md new file mode 100644 index 00000000..ce4abdf0 --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/README.md @@ -0,0 +1,31 @@ +# Setting up the Grab/Release System + +Setting up the SenseGlove Grab/Release System involves two main steps. The first step, configuring the virtual hand meshes for both real and virtual hands, is handled automatically by the plugin. The second step, which is also straightforward, involves setting up any existing actor in the Unreal Blueprint Editor that you want to respond to with haptic feedback when your SenseGlove device comes into contact with it: + +1. Open any existing actor in the Unreal Blueprint Editor that you would like to respond to with haptic feedback when your SenseGlove device comes into contact with it. + +2. In the `Components` panel, click the `+ Add` button, then type `SGGrab` into the `Search Components` input field. Once found, click on `SGGrab` to add it to the current actor. You can rename the `SGGrab` component to your desired name. + +![Setting up the Grab/Release System - Adding the SGGrabComponent to an actor](adding-sggrabcomponent.png "Setting up the Grab/Release System - Adding the SGGrabComponent to an actor") + +3. With the `SGGrab` component selected in the `Components` panel, navigate to the `Details` panel. Under the `SenseGlove` section, adjust the settings for the grab/release system to suit your needs. + +![Setting up the Grab/Release System - The SGGrabComponent settings](sggrabcomponent-settings.png "Setting up the Grab/Release System - The SGGrabComponent settings") + +> [!NOTE] +> Any property prefixed with `Attachment` is a parameter directly passed to +> Unreal's `FAttachmentTransformRules` during the grab process, while any +> property prefixed with `Detachment` is a parameter directly passed to +> Unreal's `FDetachmentTransformRules` during the release process. + +4. A key setting for the release system is located within your [`SGPawn`](../setup-senseglove-default-classes/sgpawn.md) instance. In the `Details` panel for your `SGPawn`, find the `Max Number of Hand Velocity Samples` setting and adjust it according to your needs. This setting determines the velocity of objects released from the hands by averaging the specified number of frames. Optimizing this value depends on the framerate of your simulation at runtime. + +![Setting up the Grab/Release System - Max number of hand velocity samples on release](release-max-velocity-samples.png "Setting up the Grab/Release System - Max number of hand velocity samples on release") + +5. One last aspect of the grabbable actors to take into account for the grab system to function properly is the collision settings of their mesh components. If you'd like to prevent the virtual hand meshes from passing through a grabbable actor, it's necessary to set the `Collision Presets` to `Block All` inside the `Details` panel for the actor's mesh components. + +![Setting up the Grab/Release System - Setting Collision Presets to Block All](collision-presets-block-all.png "Setting up the Grab/Release System - Setting Collision Presets to Block All") + +6. Additionally, enabling `Simulation Generates Hit Events` and `Generate Overlap Events` on the actors mesh components is mandatory. These settings are crucial for notifying the grab system when the virtual hand meshes come into contact with the actor. + +![Setting up the Grab/Release System - Enabling Simulation Generates Hit Events and Generate Overlap Events](collision-generate-hit-overlap-events.png "Setting up the Grab/Release System - Enabling Simulation Generates Hit Events and Generate Overlap Events") diff --git a/Handbook/src/getting-started/setup-grab-release-system/adding-sggrabcomponent.png b/Handbook/src/getting-started/setup-grab-release-system/adding-sggrabcomponent.png new file mode 100755 index 00000000..66713afe --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/adding-sggrabcomponent.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7967c60bb2402e61959d30b8a1418190795d407b68ff6d82badb4c3038d461fb +size 267347 diff --git a/Handbook/src/getting-started/setup-grab-release-system/collision-generate-hit-overlap-events.png b/Handbook/src/getting-started/setup-grab-release-system/collision-generate-hit-overlap-events.png new file mode 100755 index 00000000..423f6cdd --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/collision-generate-hit-overlap-events.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:438a07cd41bdfbf52b36a8ea89167aa53a90afa6ef4bfa898fc5476054ff99e5 +size 266140 diff --git a/Handbook/src/getting-started/setup-grab-release-system/collision-presets-block-all.png b/Handbook/src/getting-started/setup-grab-release-system/collision-presets-block-all.png new file mode 100755 index 00000000..e80c1634 --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/collision-presets-block-all.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ffe3bac1c9d31dd2d99c96bf2bf193e1d01c169bbd23f9e3782aa44afcd576 +size 304683 diff --git a/Handbook/src/getting-started/setup-grab-release-system/release-max-velocity-samples.png b/Handbook/src/getting-started/setup-grab-release-system/release-max-velocity-samples.png new file mode 100755 index 00000000..e67c5349 --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/release-max-velocity-samples.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299cb9bfb54b5aa0a18121e5dbba0157054361033512d437324079e85cf23b35 +size 276510 diff --git a/Handbook/src/getting-started/setup-grab-release-system/sggrabcomponent-settings.png b/Handbook/src/getting-started/setup-grab-release-system/sggrabcomponent-settings.png new file mode 100755 index 00000000..0789d1e7 --- /dev/null +++ b/Handbook/src/getting-started/setup-grab-release-system/sggrabcomponent-settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84c9c01c794e4e35a2ad2dfbaaab9404ff15ebf6e1f79cdbcfe3ee46be07187b +size 308551 diff --git a/Handbook/src/getting-started/setup-touch-system/README.md b/Handbook/src/getting-started/setup-touch-system/README.md new file mode 100644 index 00000000..2b047bf1 --- /dev/null +++ b/Handbook/src/getting-started/setup-touch-system/README.md @@ -0,0 +1,21 @@ +# Setting up the Touch System + +Configuring the SenseGlove Touch System involves two key steps. The first step, which is automatically handled by the plugin, is configuring the virtual hand meshes for both real and virtual hands. The second step, which is also straightforward, involves setting up any existing actor in the Unreal Blueprint Editor that you want to respond to with haptic feedback when your SenseGlove device comes into contact with it: + +1. Open any existing actor in the Unreal Blueprint Editor that you would like to respond to with haptic feedback when your SenseGlove device comes into contact with it. + +2. In the `Components` panel, click the `+ Add` button, then type `SGTouch` into the `Search Components` input field. Once found, click on `SGTouch` to add it to the current actor. You can rename the `SGTouch` component to your desired name. + +![Setting up the Touch System - Adding the SGTouchComponent to an actor](adding-sgtouchcomponent.png "Setting up the Touch System - Adding the SGTouchComponent to an actor") + +3. With the `SGTouch` component selected in the `Components` panel, navigate to the `Details` panel. Under the `SenseGlove` section, adjust the settings for the touch system to suit your needs. + +![Setting up the Touch System - The SGTouchComponent settings](sgtouchcomponent-settings.png "Setting up the Touch System - The SGTouchComponent settings") + +4. One last aspect of the touchable actors to take into account for the touch system to function properly is the collision settings of their mesh components. If you'd like to prevent the virtual hand meshes from passing through a touchable actor, it's necessary to set the `Collision Presets` to `Block All` inside the `Details` panel for the actor's mesh components. + +![Setting up the Touch System - Setting Collision Presets to Block All](collision-presets-block-all.png "Setting up the Touch System - Setting Collision Presets to Block All") + +5. Additionally, enabling `Simulation Generates Hit Events` and `Generate Overlap Events` on the actors mesh components is mandatory. These settings are crucial for notifying the touch system when the virtual hand meshes come into contact with the actor. + +![Setting up the Touch System - Enabling Simulation Generates Hit Events and Generate Overlap Events](collision-generate-hit-overlap-events.png "Setting up the Touch System - Enabling Simulation Generates Hit Events and Generate Overlap Events") diff --git a/Handbook/src/getting-started/setup-touch-system/adding-sgtouchcomponent.png b/Handbook/src/getting-started/setup-touch-system/adding-sgtouchcomponent.png new file mode 100755 index 00000000..6889aade --- /dev/null +++ b/Handbook/src/getting-started/setup-touch-system/adding-sgtouchcomponent.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06d1d4347c6a558f1fa8343775642bb1328584a79c4b939b54acf8ba5a135fb4 +size 267405 diff --git a/Handbook/src/getting-started/setup-touch-system/collision-generate-hit-overlap-events.png b/Handbook/src/getting-started/setup-touch-system/collision-generate-hit-overlap-events.png new file mode 100755 index 00000000..423f6cdd --- /dev/null +++ b/Handbook/src/getting-started/setup-touch-system/collision-generate-hit-overlap-events.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:438a07cd41bdfbf52b36a8ea89167aa53a90afa6ef4bfa898fc5476054ff99e5 +size 266140 diff --git a/Handbook/src/getting-started/setup-touch-system/collision-presets-block-all.png b/Handbook/src/getting-started/setup-touch-system/collision-presets-block-all.png new file mode 100755 index 00000000..e80c1634 --- /dev/null +++ b/Handbook/src/getting-started/setup-touch-system/collision-presets-block-all.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ffe3bac1c9d31dd2d99c96bf2bf193e1d01c169bbd23f9e3782aa44afcd576 +size 304683 diff --git a/Handbook/src/getting-started/setup-touch-system/sgtouchcomponent-settings.png b/Handbook/src/getting-started/setup-touch-system/sgtouchcomponent-settings.png new file mode 100755 index 00000000..dc318168 --- /dev/null +++ b/Handbook/src/getting-started/setup-touch-system/sgtouchcomponent-settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:205e843cc7e39a61c146fbd230de2ec9237f4e662ce8e7e58deddc79ab87bdfc +size 296193 diff --git a/Handbook/src/overview/README.md b/Handbook/src/overview/README.md index fe6dc269..49b70763 100644 --- a/Handbook/src/overview/README.md +++ b/Handbook/src/overview/README.md @@ -24,8 +24,8 @@ This section covers the basics of the SenseGlove Unreal Engine Plugin: - [SGGameUserSettings](../getting-started/setup-senseglove-default-classes/sggameusersettings.md) - [Setup the Virtual Hand Meshes](../getting-started/setup-virtual-hand-meshes/) - [Setup the Wrist Tracking Hardware](../getting-started/setup-wrist-tracking-hardware/) -- [Setup the Grab System]() -- [Setup the Touch System]() +- [Setup the Grab/Release System](../getting-started/setup-grab-release-system/) +- [Setup the Touch System](../getting-started/setup-touch-system/) ## ⚙️ Plugin Configuration