In this tutorial we will learn how to setup the Hand Poser for an interactable actor.
Hand Poser is a mechanic contained in the MAGESPhysics module which enables grabbing objects with a specific hand posture. With the Hand Poser tool, developers can configure predefined hand postures for each object.
It is used to interact with the physical object with an intuitive way. It is not mandatory to include it in your simulation but highly recommended for a realistic interaction system.
How to Configure Hand Poser¶
The first step is to Add the HandPoser component to your object. Make sure the component is added a child of the static mesh component you will interact with.
This component contains two input fields for Animation assets, one posture per hand. To generate postures for the left hand open the skeletal mesh LeftHandMesh which is in the folder MAGES_SDK_Content/MAGES/SDKAddons/UserHands/Models/LeftHand. Similarly, the RightHandMesh can be found under the folder MAGES_SDK_Content/MAGES/SDKAddons/UserHands/Models/RightHand.
In the skeletal hierarchy of the hand skeleton you will notice a socket called RootSocket under the root bone.
In order to create a hand posture that will accurately fit on an object we need to be able to to preview that mesh while authoring our posture. For this reason we add a preview mesh on the RootSocket, in this case we choose the scalpel.
The scale of the static mesh should be (1,1,1) and its pivot should be as close the its center as possible, otherwise the poses will lead to unexpected behaviour.
Now, we need to translate and rotate the wrist bone and its children bones in order for the hand to accurately hold the scalpel. Below there is an example of the right hand posture for the scalpel.
The static mesh that we have added is only a preview, changing its transform, or the transform of the socket will not have any effects on our posture.
The next step is to save the postures you generated.
Once you are done authoring the transformation of the joints click on the Unreal Menu navigate to Create Asset/Create Animation/Current Pose, and create a new Animation Asset.
We need to link the postures to the HandPoser component. Simply drag and drop (or select them from the dropdown menu) the Animation Assets in the HandPoser component under the Poses section.
Finally, save the Blueprint Actor.