HumanIK offers granular control over the poses to be generated by the inverse kinematics solver through a set of IK constraints. See:
As introduced under Overview and Data Flows, when you call the inverse kinematics solver you must provide it with an HIKEffectorSetState that defines the IK goal points for each of your character’s joints. Each Effector in this HIKEffectorSetState also contains settings for the IK constraints listed above. These constraints give the inverse kinematics solver additional instructions about how to handle the Effector.
You can set values for each Effector’s IK constraints directly in the HIKEffectorSetState you provide to the inverse kinematics solver by calling functions in the HumanIK API.
For a list of the functions provided, see Inverse Kinematics Solving.
When you call the HumanIK retargeting solver, the last step it performs is to invoke the inverse kinematics solver to perform an IK pass to finalize the resulting position. In order to carry this out, it builds an HIKEffectorSetState internally, which it provides to the inverse kinematics solver.
Because you cannot interact with this HIKEffectorSetState, you cannot set Reach, Pull and Resist values for its Effectors directly. Instead, you provide the retargeting solver with Reach, Pull and Resist values for your character’s limbs by setting the values of certain character properties in the HIKPropertySetState for the target character. When the retargeting solver builds the HIKEffectorSetState that it passes to the inverse kinematics solver, it retrieves these values from the HIKPropertySetState and uses them to set the IK constraint values in the HIKEffectorSetState.
For details, see Retargeting Solving, Character Properties, and Retargeting-Specific Properties.