This page describes the new features and bug fixes introduced in release 3.6.
HumanIK now includes implementations of its solvers that use a lower Level of Detail (LoD), offering faster solving and reduced CPU consumption.
You can now set limits on the rotation of each Node in your HIKCharacter around each axis, restricting the range of movement of your character’s joints.
See Degrees of Freedom.
The HumanIK floor contact engine can now adjust your character’s feet and hands to the surfaces of oriented planes, such as ramps and walls, instead of simply flat floors.
For details on floor contact, see Foot and Hand Contact.
For details on the code changes required by this feature, see Moving from HumanIK 3.5 to HumanIK 3.6.
HumanIK now supports characters with elbows and knees that bend backwards, such as birds.
Squash ’n’ Stretch increases the realism of the poses generated by the inverse kinematics and retargeting solvers by preserving the angular configurations of your characters’ arms and legs.
HumanIK now supports extra collar Nodes for the right and left shoulder, between the collar Nodes and the shoulder Nodes, to improve the realism of your character’s shoulder movements.
You can now control the stiffness of your character’s collar bones around each axis by setting the HIKCollarStiffnessX, HIKCollarStiffnessY and HIKCollarStiffnessZ properties.
See General Properties.
You can now set the translation offset of the chest Effector along each axis, to increase the realism of the poses produced by the retargeting solver when the shoulders of the source and target character do not match. Set these offsets in the values of the HIKChestTOffsetX, HIKChestTOffsetY and HIKChestTOffsetZ properties.
You can now set the maximum angle of extension for your character’s knees and elbows to any value up to 180 degrees (fully extended). You can set the maximum value for each limb independently, using the properties HIKLeftLegMaxExtensionAngle, HIKLeftArmMaxExtensionAngle, HIKRightLegMaxExtensionAngle, and HIKRightArmMaxExtensionAngle.
See General Properties.
This version of HumanIK includes a coherent new set of functions that optimize the process of setting and retrieving the translation, rotation and scaling of the Nodes in a Character State and the Effectors in an Effector Set State, by reading data from and writing data to a memory buffer, called a data set, that contains all the relevant data for all of the Nodes or Effectors.
See Setting and Retrieving Animation Data; in particular, see Data Set Functions for HIKCharacterState Data, and Data Set Functions for HIKEffectorSetState Data.
You can now set and retrieve the translation, rotation and scaling of the Nodes in your Character States using the local space of each Node (relative to its parent Node). To use local space, you must use one of the data synchronization approaches described under Data Set Functions for HIKCharacterState Data.
This version of HumanIK provides new sample implementations, including:
These samples, along with all source code and accompanying documentation, are available in the samples\humanik directory within your HumanIK installation directory.
A new library, verbose\humanik.lib, is now available for Windows platforms. It generates debugging messages in certain circumstances that can aid you in integrating HumanIK with your game.
For details on using this library, see Logging Debug Messages.
The inverse kinematics solver and retargeting solver have been broken down into smaller solvers dedicated to specific tasks. You typically do not need to call these specific functions directly; you can continue to call the HIKSolveForEffectorSet() and HIKSolveForCharacter() functions, which in turn invoke the specific functions in order.