Effector Placement

As introduced under Overview, HumanIK uses a set of Effectors to represent the goal points for different parts of your character’s skeleton during its inverse kinematics calculations. Most of these Effectors correspond to a specific Node defined in your HIKCharacterState—for example, when you position the LeftWristEffectorId, and assign Reach and Pull values to that Effector, the inverse kinematics solver attempts to move the LeftWristNodeId to the position of that Effector.

For a full list of these Effectors, see the HIKEffectorId enumeration in the humanik.h file. The Node that corresponds to each Effector in the enumeration should be clear from the naming convention, with the following exceptions:

There are also two Effectors that do not relate to a specific Node: the HipsEffectorId and the ChestEndEffectorId. Each of these Effectors instead corresponds to a position on your character’s skeleton that is calculated from the positioning of other Nodes when your character is standing in its default T-stance:

If the center of your character’s hips or chest do not lie roughly at these locations, the positions of the hips and shoulders in the stances generated by the inverse kinematics and retargeting solvers may not quite match what you expect. However, you can control the default placement of each of these Effectors by applying an offset along each axis in your character’s HIKPropertySetState, using the HIKHipsTOffsetXId, HIKHipsTOffsetYId, HIKHipsTOffsetZId, HIKChestTOffsetXId, HIKChestTOffsetYId, and HIKChestTOffsetZId character properties. For details, see Character Properties, and General Properties.