You can set and retrieve data for multiple Nodes at the same time using a data set, introduced under Workflows for Setting and Retrieving Data.
The exact procedures for doing so, including the data description structure you must use for your data set, differ depending on whether you want to set and retrieve each Node’s translation, orientation and scaling data using separate number arrays or using transform matrices. See either Setting and Retrieving Node Data Using Separate TQS Values, or Setting and Retrieving Node Data Using Matrices.
When setting and retrieving data for Nodes in an HIKCharacterState, you must specify in your data description whether the data in the data set reflects the translation, rotation and scaling of your Nodes in global space, or in local space (relative to the parent Node). Internally, HumanIK uses values in normalized global space to represent the state of each Node; if you specify local space when setting or retrieving data in a data set, HumanIK converts the coordinates transparently.
However, if your character contains a joint unknown to HumanIK, and you set or retrieve your Node data in local space, the translation, rotation and scaling of the unknown joint will affect the way in which HumanIK converts the values for its child Nodes. In this case, you also must set a parent offset for each Node, to indicate the effect of the unknown parent or parent joints. See Supporting Additional Joints.
If you choose to use local space, you must set the translation, rotation and scaling of all Nodes in the HIKCharacterState in one single pass. You cannot make two or more passes to set values in local space for different Nodes, nor can you set some values in local space and others in global space.