Character Morph between geometry shapes

The Morph tool on the Deform shelf lets you edit geometry at the object level, and automatically creates the necessary Edit and Blend Shapes nodes at the geometry level.

To... Do this

Blend between shapes

  1. Model the “normal” shape of the surface(s). Then use the Edit operator and/or other surface operations (such as a lattice deformer ) to deform the surface.

    You do not need to model the normal and deformed versions as separate surfaces. Because of the procedural nature of Houdini, you can simply blend between the surface at two different points in its construction history.

    You can blend between any number of shapes (not just 2).

  2. At the geometry level, use the tab menu to create a Blend Shapes node.

  3. Connect the various shapes you want to blend between to the input of the Blend Shapes node.

  4. Use the Weight parameters to control the blending of the shapes. See below for how to make blending between two inputs easier.

Use the Morph tool to set up blend shapes at the object level

  1. Select the points you want to morph, then click the Morph tool on the Deform shelf tab.

  2. The Morph tool essentially works like the Edit operator from the geometry (SOP) level. Use the transform handles to edit the selected points in the viewport.

  3. The Morph tool automatically creates an Edit node and a Blend Shapes node at the geometry (SOP) level for the geometry you edit.

    Use the Weight parameters to control the blending of the shapes. See below for how to make blending between two inputs easier.

Make blending between two inputs easier

  • The Blend Shapes node has separate Weight sliders for each input, letting you mix them arbitrarily. In a two-shape 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.

Use a bone angle to control deformation

  1. You can use drive the amount of blending between the normal (rest) geometry and the deformed geometry using the angle between two bones of a character. This lets you do things like make a muscle bulge as the character moves its arm.

    Set up a Blend Shapes node and link the Weight parameters using the steps above.

  2. In the Blend Shapes node, click in the first Weight parameter’s text field to edit it.

  3. You can use the boneangle expression function to get the angle between two bones.

    The boneangle function’s result is an angle in degrees (e.g. 90 or 120). The Blend Shapes' Weight parameter, on the other hand, is from 0 to 1. Use the smooth expression function to map the minimum and maximum bone angles to 0 and 1.

    Finally, depending on how you connected the Blend Shapes node, you may need to invert the result of the smooth function by inserting 1- before it. Do this if the deform is backwards, for example the muscle bulges when the arm is extended instead of when it’s flexed.

    Here’s an example of a finished function. Your function will probably have different values for the bone names and the minimum and maximum bone angles.