Dylan Harness

Curve-IK

CurveIK is an IK (Inverse Kinematics) library for Unreal Engine 4 written in C++. It provides a simple, single bone chain (no branches) solver that uses bezier curves to model the path of the bone chain. It's designed to be used for rubber hose style characters.

Demo

Other IK libraries vs CurveIK:

Curve-IK demo video in unreal

Examples of CurveIK in action in a game I was prototyping where you play as a pair of hands.

Animation Blueprints

CurveIK provides a single animation blueprint node:

Image showing how to use curve-ik in a blueprint

Paramaters

Solver

PropertyUsage
Curve TypeWhich type of curve the bones align with
Tip BoneThe last bone in the chain to be affected
Root BoneThe first bone in the chain to be affected
Max IterationsIncreasing this value can increase accuracy but may affect performance if set too high
Curve DetailThe number of subdivisions the curve is partitioned into. Increasing this value should make the curve smoother, but may affect performance
Curve Fit ToleranceThe acceptable amount of error between bone positions and the calculated curve position
StretchThe degree to which the bones should stretch to fit the curve more precisely. High values will create short bones in areas of the curve with more bends, and longer bones in straight areas.
Handle AngleThe angle of offset (in degrees) for the bezier handles. The owning component's up vector is defined to be 0-degrees

Debug

To Debug your IK setup, enable debug draw in the details panel.

Debug

Show Links

Show Tangents

Show Bone Direction