Develop
Develop
Select your platform

Custom Hand and Controller Meshes

Updated: Apr 29, 2025
Interaction SDK provides a generic set of Skeletal Meshes that can be used to represent hands and controllers in your project. For situations where you need to use custom meshes, you can assign your own meshes in the hand and controller rig components on your Pawn. This enables you to have the hands visible to the player match their character, making the experience more immersive.
Custom Hand Mesh with Interaction SDKShown above: The default Unreal XR hand re-bound to the OpenXR hand skeleton is being used with Interaction SDK.
Note: This guide assumes knowledge of how to model your custom mesh, bind it to a skeleton, and export it into Unreal.

Custom mesh requirements

Your custom hand or controller mesh must have an identical skeleton to the default Interaction SDK hand or controller mesh it is replacing. While the skeletons are not available as a download, they can be exported from within Unreal Editor to an FBX file which can be used in your 3D application of choice to skin your custom mesh.
Hand Skeleton
Hand Skeleton HierarchyHand Skeleton
Controller Skeleton
Controller Skeleton HierarchyController Skeleton

Applying a custom hand mesh

The hand mesh displayed by Interaction SDK is determined by the Hand Visuals Components of the hand rigs on the Pawn. There are four hand meshes that Interaction SDK displays depending on the situation. If you want to display your custom mesh for each of these hand types, you must assign the mesh to the visuals component for each of the corresponding hand types. In addition, you must set the mesh for each hand, left and right.
Note: the hand mesh for the controller hand types is determined by the Controller Visuals Component of the controller rigs on the Pawn as opposed to the Hand Visual Component of the hand rigs.
Hand TypeDescriptionMesh Property
Tracked Hand
This is the hand displayed when using hands only and the raw hand tracking data is being used for the hand’s joint location and orientations.
IsdkHandRigComponent > Interaction SDK > Hand Visuals Component > Interaction SDK > Tracked Hand Visual > Mesh > Skeletal Asset > Skeletal Mesh
Synthetic Hand
This is the hand displayed when using hands only and the joint location or orientations have been altered by an interaction.
IsdkHandRigComponent > Interaction SDK > Hand Visuals Component > Interaction SDK > Synthetic Hand Visual > Mesh > Skeletal Asset > Skeletal Mesh
Animated Controller Hand
This is the hand displayed when using hands and controllers and the hand’s pose is being driven by animation data from the Animation Blueprint.
IsdkControllerRigComponent > Interaction SDK > Controller Visuals Component > Interaction SDK > Animated Hand Mesh Component > Mesh
Poseable Controller Hand
This is the hand displayed when using hands and controllers and the hand’s pose is being driven by runtime tracking data.
IsdkControllerRigComponent > Interaction SDK > Controller Visuals Component > Interaction SDK > Poseable Hand Mesh Component > Mesh > Skeletal Asset > Skeletal Mesh

Applying a custom controller mesh

The controller mesh displayed by Interaction SDK is determined by the Controller Visuals Component of the controller rigs on the Pawn. You must set your custom mesh for both the left and right controllers using the following property:
IsdkControllerRigComponent > Interaction SDK > Controller Visuals Component > Interaction SDK > Controller Mesh Component > Mesh
Controller Mesh Property
Did you find this page helpful?