Inverse Kinematic (IK) for an arm (or leg) consisting of upper arm, middle arm, lower arm, and hand.
You can use this, for example, to animate a finger (which in contrast to an arm consists of three segments). For a "normal" arm without middle arm segment see the "IK Arm With 2 Segments 2D" iExpression.
The expression automatically calculates the rotation of all the arm segments such that the arm points to the desired goal point (which is represented by a null layer).
You tell where the arm should point - the expression knows how. In addition you can decide whether the hand should rotate with the lower arm or preserve its orientation. If you animate an arm, for example, which is holding a plate, you probably want it to always stay in a horizontal orientation.
If you don't need a "hand", you can make the hand layer invisible or use a null layer for it. For the expression, the hand's anchor point is the point where the goal shoud be.
The arm must consist of the following layers:
- upper arm (with anchor point at shoulder)
- middle arm (with anchor point at connection to upper arm)
- lower arm (with anchor point at connection to middle arm)
- hand (with anchor point at wrist)
When the arm is set up like this, all you need to do is to enter the names of the respective layers into the iExpression and apply it to the rotation of upper arm, middle arm, lower arm, and hand.
Upper Arm Layer (Name or Index)
is the name or index of the layer containing the upper arm.
Middle Arm Layer (Name or Index)
is the name or index of the layer containing the middle arm.
Lower Arm Layer (Name or Index)
is the name or index of the layer containing the lower arm.
Hand Layer (Name or Index)
is the name or index of the layer containing the Hand.
Hand Goal Layer (Name or Index)
is the name or index of the null layer representing the Goal to which the hand should move.
Flips the arm to the other side (there are always two alternatives for an arm to get to the goal point).
Whether the hand should preserve its orientation in the plane (stay horizontal, for example). The rotation of the hand can still be modified with keyframes.