Blend between IK and rotations
When you animate a bone chain you sometimes want to use bone rotations to drive the motion while other times you want to use an IK goal.
Houdini’s IK set-up lets you smoothly transition between the two control schemes with a blend attribute you can set with an interactive handle in the Pose tool.
The blend handle and Snap to IK/Rotates menu items mentioned below are available when using the default, single goal setup. If you change the default setup to blend between multiple goals, these UI convenience features will not work. See approaches to rigging for details.
|Blend/switch between IK and rotations|
|Reset the bones to match the IK or rotations|
|Keyframe IK/rotation blending setups|
The blend parameter is part of the kinematics channel operation (kin_chop) that is driving the Inverse Kinematics solution. When you adjust this value using the handle, Houdini updates the parameter on the channel operator.
Blend parenting of objects
In Houdini, you can parent an object to multiple parents and blend between their influence using a Blend node. This has several important uses, and depending on which way you want to use the feature, you will use different user interface tools:
Parenting parts of a character in different spaces depending on different animation needs at different moments. For example, you can set up a character’s head to be pose-able in character space or shoulder space, depending on what kind of movements you're animating at the time.
To animate characters picking up, putting down, or handing off objects, you can keyframe parenting relationships. For example, to animate a character picking up an object, you would make the character’s hand become the parent of the object at the moment the character touches it. Then the object will stick with the hand as the character moves.
You can set up dynamic parenting in different ways, which are suited for different uses:
You can set up the parents and Blend node manually in the network editor. For dynamic parenting that will be set up once (as in character rigging), this is easier than using the interactive Dynamic Parent tool.
The Dynamic Parent tool lets you animate switches between parentage, and automatically creates the needed Blend nodes and expressions to support the transitions. For animating multiple switches, this can be more convenient than setting up the nodes manually.
Set up a blend manually
Connect the parents to the Blend node’s inputs.
In the Blend node’s parameters, choose which parameters you want to import from the various parents. If you used the character root Null as one of the dynamic parents, you probably want to turn off importing its translate parameters (
The Blend node has separate Weight sliders for each input, letting you mix them arbitrarily. In a two-parent scenario however, you probably only want one slider control that blends between the two inputs. To do that, you need to link the second slider to the first slider so it automatically goes down/up as the other goes up/down.
Press on the first slider’s value and choose Copy Parameter. Then press on the second slider’s value and choose Paste Relative Reference. Houdini inserts a parameter reference expression to the first slider. Finally, to make the second slider invert the value of the first slider, insert
1-in front of the expression.
In some cases, blending between different parents will introduce unwanted rotations, because the parents have different orientations.
To correct for this, create a new Null and parent it to one of the dynamic parents you want to use, then add counter-rotations to the new Null to correct for the orientation. Finally, wire the new Null into the Blend instead of the original dynamic parent.
For example, if you draw a head bone and dynamically parent it to both the character root Null and a neck bone root, the head may rotate 90 degrees in Z as it blends because the bone is oriented differently from the character root Null. To correct for this, create a new Null parented to the character root, set its Z rotation to -90, then connect the new Null into the blend instead of the character root.
Make the first Weight slider into a HUD slider to make it easily available as a control for animators.
Use the Dynamic parent tool
|Set up for dynamic parenting|
|Dynamically change an object’s parent|
|Dynamically unparent an object|
A chain’s goal is not the ideal parent object because it generally remains oriented to world space while the arm rotates. In a real setup you will probably parent some control object into the hand that will rotate with the arm setup.
How it works
Houdini creates a blend node to parent the child to both a hidden null object (which controls the child’s stationary pose) and the dynamic parent. Keyframes are set on the blend operator’s Sequence parameter which controls which parent is used.
There are many ways to create parameter relationships in Houdini, such as a maya-like set driven key tool called Blend Pose to help you set up the
ch()parameter references (equivalent to mel).