Resist

Resist controls the ability of a joint to maintain its original angle in the final solution.

 

For example, in the image on the left, the green locator represents the position of the Effector corresponding to the left wrist joint.

 

Typically, setting the Reach Translation value for the wrist Effector will first cause the arm to straighten. When the arm cannot straighten any more, the Pull setting of the Effector comes into play, exerting an effect on the other joint chains of the character’s skeleton to get the wrist joint to reach the position of the Effector.

 

However, if you set a Resist value for the elbow joint, that joint will attempt to maintain its original angle in the final solution.

In this case, the arm cannot straighten in order to bring the wrist joint to its Effector, so the Pull of the Effector comes into play sooner. The rest of the body has to lean further over to get the wrist to the target point.

Resist values are taken into account by the HumanIK pull engine. In order to see the effects of the Resist setting on a joint when using the inverse kinematics solver, the body part must be bent in the initial HIKCharacterState passed to the IK solver, and an Effector further down the skeletal hierarchy must be acting to straighten the bent joint as a result of the Pull and Reach Translation values assigned to it.

For example, in the images above, the left wrist needs to be set with Pull and Reach Translation values in order for the Resist value of the elbow to be taken into account as the wrist is translated to its target position. Similarly, to see the effects of a Resist value set for the shoulder joint, the elbow or wrist Effector (whichever is acting to straighten the shoulder) must have Pull and Reach Translation values applied.

Joints that can Resist

Although you can set Resist values for all Effectors, they are only taken into account for the following joints: