Answered

IK Hand rotation not rotating the forearm

mR d 1 month ago updated by Peter - Soxware Developer 1 month ago 1

I have a humanoid character and when I have the IK set up, it moves the chain correctly. The issue, however, is when I rotate the character's hand, his forearm does not rotate at all. 

In contrast, when I'm using Unity's IK Rigging and setting up a multi-bone constraint, it works perfectly fine.

Just like in real life, when you rotate your wrist, it should rotate the forearm, no? 

I don't think I'm doing anything wrong because in UMOTION video tutorial, the same behavior issue is seen. (see video at 8:43 mark:)

UMotion Version:
1.28p04
Unity Version:
2021.3.3f1
Answered

Hi,
thank you very much for your support request.

Yes, in UMotion by default the hand's IK handle is only rotating the hand around it's wrist. This can cause twisting of the mesh at the wrist when rotated at bigger angles.

One way to prevent this is by splitting the rotation e.g. 50:50 between the elbow joint and the wrist joint. But this can introduce very noticeable mesh twisting at the elbow which can look even worse as in real life the elbow is not rotating around it's own axis.

So what riggers usually do is they introduce an intermediate bone that sits halfway between the forearm and the wrist bone. They split the rotation of the wrist 50:50 between the intermediate bone and the wrist. You could even introduce 2 or more intermediate bones to make the twisting even smoother.

How to deal with this in UMotion:

  • When your rig has intermediate bones: Select both the intermediate bone and the IK Handle and then rotate them both. UMotion automatically splits the rotation 50:50 between both bones.
  • If your rig has no intermediate bones and you want to rotate the elbow: You first need to release control over the elbow and wrist.
    Select your IK handle in config mode, open the constraints tab and in the IK constraint change "Reference" to "FK Pose". This allows you to select the FK rig's forearm and rotate it, the IK rig is automatically using this rotation.

    You can also release the rotation of the wrist by setting "Target Rotation" to "FK Rig" so that the IK handle isn't overriding the rotation of the wrist anymore.



    You can now select the forearm and hand bone in the FK rig and rotate them at the same time --> UMotion again automatically splits the rotation 50:50.

    More info on the IK constraint:https://www.soxware.com/umotion-manual/InverseKinematics.html
  • You could also setup a Custom Property constraint that controls the twist rotation of two bones at once. This requires that you set your forearm bone and your wrist bone to "euler rotation" mode (see here) and that you've released the rotations from the IK solver as mentioned in the previous bullet point.

    At the end, this allows you to control the wrist twisting using a simple slider.

Unfortunately there is currently no constraint that takes the IK handle rotation and automatically splits the twisting across multiple bones.

Please let me know in case you have any follow-up questions.

Best regards,
Peter