diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md b/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md index 452e24c4..4fe5120f 100644 --- a/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/README.md @@ -147,3 +147,111 @@ However, if you're looking to get up and running with the SenseGlove Unreal Engi ## Setting up the SenseGlove Grab and Touch Sockets + +To ensure the Grab/Release and Touch systems function correctly, multiple sockets must be set up on each virtual hand mesh with precise locations and rotations. Before version [`v2.1.0`](../../appendix/changelog.html) of the SenseGlove Unreal Engine Plugin, this was a manual and time-consuming process. However, with the `v2.1.0` release, the plugin now includes the SenseGlove Sockets Editor, a built-in tool specifically designed for this task. + +> [!NOTE] +> If for any reason you still prefer to manually set up the sockets, +> [a detailed video tutorial](https://youtu.be/jN4VcfXVrTA) is available. + +
+ +
+ +### Accessing the SenseGlove Sockets Editor + +The SenseGlove Sockets Editor can be utilized in three ways: + +1. By right-clicking on any Skeleton or Skeletal Mesh asset inside the Unreal Content Browser. + +![Setting up the SenseGlove Grab and Touch Sockets - Content Browser](senseglove-sockets-editor-from-content-browser.png "[Setting up the SenseGlove Grab and Touch Sockets - Content Browser") + +> [!TIP] +> You can also perform Sockets Editor actions in bulk by selecting multiple +> assets of the same type and right-clicking on one of them. Note that if the +> selected assets are not all of the same type, Sockets Editor actions will not +> appear (e.g. selecting assets of type Skeletons and Skeletal Meshes together). + +![Setting up the SenseGlove Grab and Touch Sockets - Content Browser bulk actions](senseglove-sockets-editor-from-content-browser-bulk-actions.png "[Setting up the SenseGlove Grab and Touch Sockets - Content Browser bulk actions") + +2. From the `Asset` menu in the Skeleton Editor or Skeletal Mesh Editor for any open Skeleton or Skeletal Mesh asset. + +![Setting up the SenseGlove Grab and Touch Sockets - Skeleton Editor or Skeletal Mesh Editor Asset menu](senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-asset-menu.png "[Setting up the SenseGlove Grab and Touch Sockets - Skeleton Editor or Skeletal Mesh Editor Asset menu") + +3. From the Skeleton Editor or Skeletal Mesh Editor toolbar for any open Skeleton or Skeletal Mesh asset. + +![Setting up the SenseGlove Grab and Touch Sockets - Skeleton Editor or Skeletal Mesh Editor toolbar](senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-toolbar.png "[Setting up the SenseGlove Grab and Touch Sockets - Skeleton Editor or Skeletal Mesh Editor toolbar") + +The SenseGlove Sockets Editor currently offers two actions: + +1. `Add SenseGlove Sockets`: which adds and sets up the SenseGlove grab and touch sockets to any virtual hand mesh that adheres to the Epic rig and bone structure. +2. `Clear Existing Sockets`: which destructively clears all existing sockets; SenseGlove or otherwise, from any mesh. + +> [!IMPORTANT] +> Simply performing any of these actions won't permanently modify your assets. +> In fact, if you close the Unreal Editor without saving your assets first, all +> changes performed by the SenseGlove Sockets Editor will be lost forever. This +> is by design and the plugin will leave this final choice to the user. So, in +> order to apply the changes permanently, you must save the assets manually. + +### Adding the SenseGlove Sockets + +When you invoke the `Add SenseGlove Sockets` action, the Sockets Editor will prompt you for confirmation: + +![Adding the SenseGlove Sockets - Confirmation](senseglove-sockets-editor-add-sockets-confirmation.png "[Adding the SenseGlove Sockets - Confirmation") + +If it succeeds at adding the standard SenseGlove sockets, you will receive a confirmation message: + +![Adding the SenseGlove Sockets - Success](senseglove-sockets-editor-add-sockets-success.png "[Adding the SenseGlove Sockets - Success") + +After closing the dialog, the editors for the affected Skeleton and Skeletal Mesh assets will open, displaying the newly added sockets: + +![Adding the SenseGlove Sockets - Added sockets](senseglove-sockets-editor-added-sockets.png "[Adding the SenseGlove Sockets - Added sockets") + +To ensure the changes persist, save the assets to disk. + +> [!NOTE] +> The `Add SenseGlove Sockets` action can fail for various reasons, so it's +> important to investigate and identify the cause if an issue arises. + +![Adding the SenseGlove Sockets - Added sockets failure](senseglove-sockets-editor-add-sockets-failure-1.png "[Adding the SenseGlove Sockets - Added sockets failure") + +![Adding the SenseGlove Sockets - Added sockets failure](senseglove-sockets-editor-add-sockets-failure-2.png "[Adding the SenseGlove Sockets - Added sockets failure") + +> [!IMPORTANT] +> A common cause of failure is that the SenseGlove sockets have already been set +> up, or the meshes you’re using already have the necessary sockets. In this +> case, consider using the +> [`Clear Existing Sockets`](#clearing-all-existing-sockets) action first. + +> [!CAUTION] +> Another common cause of failure is if your virtual hand meshes share a skeleton. As noted in [the Compatible Virtual Hand Meshes section](#compatible-virtual-hand-meshes), the SenseGlove Sockets Editor does not support skeletal meshes that share their skeleton. You may need to [export](#exporting-the-virtual-hand-meshes-from-the-vrtemplate) and [re-import](#importing-the-virtual-hand-meshes-into-your-own-project) the virtual hand meshes in in a compatible manner first. + +In any case, the SenseGlove Sockets Editor reports all failures in the Unreal Editor logs. To view and investigate the logs, simply head to the `Window` menu and click on `Output Log`: + +![Adding the SenseGlove Sockets - Accessing the Unreal Editor output logs](senseglove-sockets-editor-failure-output-log.png "[Adding the SenseGlove Sockets - Accessing the Unreal Editor output logs") + +For example, in the following screenshots the following errors are stated: `Socket 'GrabAttachPoint' already exists on '/Game/SGHandbook/SKM_MannyXR_left.SKM_MannyXR_left'; refuse to add a duplicate!`. + +``` +LogGeneric: Error: [ERROR C:\Users\mamadou\Desktop\dev\SGHandbook\Plugins\SenseGlove\Source\SenseGloveEditor\Private\SGEditor\SGAssetUtils.cpp FSGAssetUtils::FImpl::AddSocket 394] Socket 'GrabAttachPoint' already exists on '/Game/SGHandbook/SKM_MannyXR_left.SKM_MannyXR_left'; refuse to add a duplicate! +LogGeneric: Error: [ERROR C:\Users\mamadou\Desktop\dev\SGHandbook\Plugins\SenseGlove\Source\SenseGloveEditor\Private\SGEditor\SGAssetUtils.cpp FSGAssetUtils::FImpl::AddGrabAttachPointSocket 442] Failed to add the socket 'GrabAttachPoint' to '/Game/SGHandbook/SKM_MannyXR_left.SKM_MannyXR_left'! +LogGeneric: Error: [ERROR C:\Users\mamadou\Desktop\dev\SGHandbook\Plugins\SenseGlove\Source\SenseGloveEditor\Private\SGEditor\SGAssetUtils.cpp FSGAssetUtils::FImpl::AddSenseGloveSockets 587] Failed to add the grab attach point socket to asset '/Game/SGHandbook/SKM_MannyXR_left.SKM_MannyXR_left'! +LogGeneric: Error: [ERROR C:\Users\mamadou\Desktop\dev\SGHandbook\Plugins\SenseGlove\Source\SenseGloveEditor\Private\SGEditor\SGAssetUtils.cpp FSGAssetUtils::FImpl::AddSenseGloveSockets 741] Failed to add the SenseGlove sockets to the asset '/Game/SGHandbook/SKM_MannyXR_left.SKM_MannyXR_left'! +``` + +![Adding the SenseGlove Sockets - Sockets already exists error](senseglove-sockets-editor-failure-output-logs-socket-already-exists.png "[Adding the SenseGlove Sockets - Sockets already exists error") + +### Clearing All Existing Sockets + +When you invoke the `Clear Existing Sockets` action, the Sockets Editor will ask for your confirmation: + +![Clearing All Existing Sockets - Confirmation](senseglove-sockets-editor-clear-sockets-confirmation.png "[Clearing All Existing Sockets - Confirmation") + +If successful, you will receive a message indicating all the existing sockets have been cleared: + +![Clearing All Existing Sockets - Success](senseglove-sockets-editor-clear-sockets-success.png "[Clearing All Existing Sockets - Success") + +After closing the dialog, the editors for the affected Skeleton and Skeletal Mesh assets will open, displaying the affected assets with all sockets cleared: + +![Clearing All Existing Sockets - Sockets cleared](senseglove-sockets-editor-sockets-cleared.png "[Clearing All Existing Sockets - Sockets cleared") diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-confirmation.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-confirmation.png new file mode 100755 index 00000000..7b3fd9b2 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-confirmation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24e4860db3766306d397b3e803e0dd9854461cf6d12f95938dceed9ad36f4103 +size 11941 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-1.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-1.png new file mode 100755 index 00000000..2030b66d --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8926be833deedb09234a5e8b9436b82b637be52b238e37c06a0441ddac72c86 +size 10082 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-2.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-2.png new file mode 100755 index 00000000..9e6b6477 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-failure-2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228b1e2d831646ce194b88e4c922422a8f100a79f23508036fd30c7855448687 +size 14671 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-success.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-success.png new file mode 100755 index 00000000..ed6ef4eb --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-add-sockets-success.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19441233849ade89c0b4d30d05587ae50e2fdd99b11b80770976e7e689e58bf5 +size 16117 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-added-sockets.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-added-sockets.png new file mode 100755 index 00000000..57619f0f --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-added-sockets.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af753301815ce94a3c51bc1d76dd771b5e4a1d2f98cde60221c50e4177f59e89 +size 1205454 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-confirmation.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-confirmation.png new file mode 100755 index 00000000..4b50d6fc --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-confirmation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a9a7aa49527256e524b88b2e95320cd571d30843ce6f36fc8feab9cc3b04edb +size 13439 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-success.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-success.png new file mode 100755 index 00000000..5c0c9905 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-clear-sockets-success.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:963a99cb79fa48bc0806270f35d6dc1e4044c24ee3a2e02b445be21c0e663c4a +size 15442 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-log.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-log.png new file mode 100755 index 00000000..2bee6a52 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-log.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9304875ef4174cc2875503417088d3573a53ca050cd2b19568b9b9e64016c79c +size 1151467 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-logs-socket-already-exists.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-logs-socket-already-exists.png new file mode 100755 index 00000000..ea98911e --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-failure-output-logs-socket-already-exists.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31a6118701cfa603893b8dfbdeef68dbda6a8e99006b743b87e974b67f50293f +size 226112 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser-bulk-actions.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser-bulk-actions.png new file mode 100755 index 00000000..38772161 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser-bulk-actions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cd177495f00454649d615a9ff5c1559b418848fdc870bbe351caad8dec6680c +size 1229105 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser.png new file mode 100755 index 00000000..c23f40ae --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-content-browser.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f322f5c78387c2e0e12832459043045295cf28b5e1dc9dc69a65b4db10cfde24 +size 1238049 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-asset-menu.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-asset-menu.png new file mode 100755 index 00000000..57fd3846 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-asset-menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15ed42221f5946ea6eb31751b8b5c5deb6d23b195038f2582e87cb9d3808ea5e +size 962708 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-toolbar.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-toolbar.png new file mode 100755 index 00000000..a029a859 --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-from-skeleton-skeletal-mesh-editor-toolbar.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9df428ca88b1ae15f3d4e81b15681e2e05165fd95467917c337af2e6622e4a2c +size 1433279 diff --git a/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-sockets-cleared.png b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-sockets-cleared.png new file mode 100755 index 00000000..0bb11f6e --- /dev/null +++ b/Handbook/src/getting-started/setup-virtual-hand-meshes/senseglove-sockets-editor-sockets-cleared.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd63ab7e53c530e6e9e784eb4d5564ea90063da5381ae2eb5e2443e0c3a32fe +size 1215018