Run-time behavior tuning

During run-time, you can animate some or all IKinema settings to achieve the required behaviour of the rig.

For example, if the root is required to be re-positioned from the source root position by a considerable offset, say in vertical direction, this motion would require relaxing the retargeting gain for some of the joints like upper leg, lower leg, feet by as much as 80% or values 0.1-0.3 (the default is 1.0). The API call for this is:

//Description: set individual gain for retargeting error (multiplies retargeting gain of solver)
//Parameters:
// - gain: value of gain to apply for this segment (0 will disable retargeting)
virtual void setRetargetingGain(Real gain)=0;

In some cases, the behaviour might require adding dynamically constraints (tasks). For example if the character is climbing a wall and the customisation requires a considerable offset from the reference animation, a new position constraint could be added on the knee, which is only active in a direction normal to the climbing wall with the other degrees of freedom of the constraint disabled using

//Description: Set active dofs for this task in global(skeleton) space.
//Parameters:
// - x,y,z: New values for every degree of freedom for the task.
virtual void setDofs(bool x, bool y, bool z) = 0;

 Another setting in run-time for the task could be the depth of the action of the constraint. By default all tasks act to the root with a maximum depth, but you might require to reduce this to only the parent bone or to a limited chain. The API call for this is 

//Description: To define the length of chain towards root.
//Parameters:
// - length: New lenght value towards root.
virtual void setLength(unsigned int length) = 0;