FABRIK

Forward And Backward Reaching Inverse Kinematics (or FABRIK) is an IK solver that works on a chain of bones of arbitrary length (a minimum of 2 links).

You can use FABRIK, by first adding the FABRIK node to the AnimGraph of your Animation Blueprint (pictured above).

Once added, in addition to the Component Pose, the node takes in an Effector Transform which can be an absolute Transform or a relative one (based on another bone from the same Skeleton); the settings for the End Effector are also very similar to the TwoBone_IK node.

In order to determine the current strength of the Skeletal Control applied, the FABRIK node takes in a float Alpha which can be set on the node itself or set through a float variable.

Inside the Details panel for the FABRIK node you will find additional settings which can be used to further adjust how the solver functions:

FABRIK_Details.png

In the End Effector section, you determine the target location and rotation.

Property Description
Location, Rotation, Scale Coordinates for target location of tip bone - if EffectorLocationSpace is bone, this is the offset from Target Bone to use as target location (can also be set as a Pin on the node).
Effector Transform Space Set the position of the bone in SkeletalMeshComponent's reference frame.
Effector Transform Bone If Effector Transform Space is bone, this is the bone to use.
Effector Rotation Source Control the Rotation (maintain component space, local space or match end effector target rotation).

In the Solver section, you define the chain of bones to use, from the Root to the Tip. The Tip will try to reach the end effector location.

Property Description
Tip Bone Set the Tip Bone (choose from available bones).
Root Bone Set the Root Bone (choose from available bones).
Precision Tolerance for final tip location delta from EffectorLocation. The lower, the more precise it gets to the End Effector target, but the more expensive.
Max Iterations Maximum number of iterations allowed, to control performance and make sure edge cases will not take frame rate down.
Enable Debug Draw Toggle drawing of axes to debug joint rotation.

In the Settings section, you set the strength applied.

Property Description
Alpha Current strength of the Skeletal Control (can also be set as a Pin on the node).
Alpha Scale Bias Set the Minimal and Maximal input scale values.
Node Can be used to reset the Effector Rotation Source if it is set to something other than Local Rotation Relative to Parent.