This section describes the changes that you must make in your existing code to upgrade to version 3.6 of HumanIK.
In previous versions of HumanIK, the properties that defined an HIKCharacter and controlled the way the solvers moved that character were maintained as part of each HIKCharacter object. Due to conflicts when using the same HIKCharacter object in different threads, these character properties have been removed from the HIKCharacter, and are now maintained in a dedicated object, the HIKPropertySetState.
In order to reflect this change in your game, you must:
For details on the updated process for using HumanIK, see Using HumanIK.
In previous versions of HumanIK, the Character Definition contained a list of the Nodes to be used by each HIK Character created from that definition. In order to support Nodes with parent offsets and Degrees of Freedom, the structure of the Character Definition object has changed. It now contains an array of floats the same length as the HIKNodes enumeration. For each element in that array, you must specify one of the following values to indicate the state of the corresponding Node:
For details, see Initialization.
In previous versions of HumanIK, the floor contact engine used only flat surfaces, and the HIKSetEffectorFloorStatefv() function required only the height of the floor on the Y axis.
With the oriented floor contact introduced in HumanIK 3.6, however, the HIKSetEffectorFloorStatefv() function now requires a transform matrix that provides the translation and orientation of the floor.
If you use the HIKSetEffectorFloorStatefv() function in your game, you must update your code accordingly.
For details, see Setting up Foot and Hand Contact.