A step-by-step tutorial on creating a character using the biped autorig.
Overview
The Autorig essentially has three parts:
The autorig asset represents the character skeleton. You can scale the rig to the character model, and set up capture buckets for the skin geometry. Then you generate an animation rig and a deformation rig from the autorig.
The animation rig is a copy of the skeleton with proxy geometry attached. An animator can use this rig to create character animation without needing the original autorig or the deformation rig.
The deformation rig is a copy of the skeleton and the model geometry with capture weights. An artist can paint capture weights in the rig separately from the animator using the animation rig.
The tutorial below is designed to be completed by one person setting up each rig in turn, but in a studio setting this separation allows a TD to specialize the rig, and then an animator to animate with proxy geometry and a character artist to refine capture weights in parallel. They can then all share their work by updating digital assets.
Note
The example images below show a deliberately low-resolution character model and rough capture (for example, without fingers).
Modeling tips
The autorig is designed to capture a character modeled in a T pose.
You will be able to adjust the Autorig to different scale models, it is not necessary to model at a certain scale.
Model the character in a single Geometry object.
You should model the character with extra polygons around the joints (elbows, knees, shoulders, etc.).
Model or transform your character model so the bottom of the feet are on the ground plane. If you need to move the model, can use Pre-transform > Clean translates (at the top of the parameter editor) to reset the character’s new position as
0, 0, 0.
Fit the Autorig to the character
Click the Autorigs tab in the shelf, then click
Biped Autorig to create the rig.
The default size of the autorig is very large in Houdini units. It may not even be visible depending on where the camera is looking.
You may need to dolly out to see the rig.
Scale the autorig to the approximate size of your model using the Character scale parameter on the Autorig node.
Once you have the general scale right you can start moving joints on the autorig to match the character model’s capture pose.
To get the model “out of the way” so you don’t accidentally select it while moving joints, turn off the model node’s “Selectable” flag (on the left side of the object node).
In the toolbox on the left side of the viewer, click the
Select tool in
Object mode. Select the joint you want to move, then press T or click the
Move tool to get a transform handle. Use the handle to move the joint. Repeat with the other joints to match the autorig skeleton to the model.
After selecting the first joint, you can simply click from joint to joint with the
Move tool, you don’t need to switch back to
Select.
It’s usually a good idea to start at one “end” of the character (that is, the foot, hand, or head) and work up or down the skeleton.
When positioning the knee and elbow, make sure there’s at least a slight bend in the joint. The rig has arrows indicating the bend direction of the knee and elbow, make sure these look correct for the character.
Moving the joints on the left side of the rig automatically positions joints on the right side.
Put the “center of gravity” (the red ball not attached to the skeleton) near the center of the character.
The top joint in the head is actually meant to be the lower jaw.
Set autorig parameters
Make sure you have an
otlsfolder in the directory containing the.hipfile ($HIP/otls). You will need this to save assets created from the autorig.Select the autorig node. In the parameter editor, set the Character name to a unique string for this character. This will be used to generate node and asset names.
Set the Library path to the OTL directory –
$HIP/otls.The autorig can get the character model from a geometry file or from a Geometry object in the scene. If you have the model in the scene, set Use geometry to “From scene” and set Scene object to the object’s path. If you have the model in a file, set Use geometry to “From file” and set the Geometry file.
Set up the proxy/capture geometry
In the parameter editor for the autorig, click the Proxy tab.
Set the Proxy file to a filename for the proxy geometry. It’s a good idea to base the file name on the Character name, for example
$HIP/character_name_proxy.bgeo.Set Show to “Bounding geometry”.
This displays capture boundaries in the viewer, but they may be hidden by your model.
Set Cutting handles to “Wireframe”.
This displays the “cutting handles” used to build the enveloping capture geometry as wireframes in the viewer.
Select a cutting surface and press E or click the
Scale tool to get the scale handle. Scale the cutting surface so it encircles the model.
As you scale the handles around the model, you should also scale the cutting surfaces to be thinner, so the “buckets” around the model cover as much of the model as possible.
Repeat for each cutting surface, scaling (and possibly rotating) until the bounding geometry envelopes the model as much as possible.
When you're done, click Save geometry (on the Proxy tab).
Set Cutting handles to “Hidden” since you don’t need them anymore.
To see the captured proxy geometry, set Show to “Proxy Groups”.
Set up the animation rig asset
Once you've set up the proxy/capture geometry, in the parameter editor for the autorig, click Create/modify/match rig.
This will bind the skeleton to the geometry and create two new digital assets in your scene: an animation rig and a deformation rig.
Select the animation rig node. The tabs in the parameter editor are empty because we need to import parameters from the autorig before we can continue.
Right-click the animation rig node and choose Type properties.
Click the Parameters tab.
Click the
gear menu in the Existing parameters sub-pane and choose “Refresh imports”.
Houdini shows a dialog box listing the imported parameters. Click OK.
Click Accept to close the type properties window.
The parameter editor for the animation rig now contains parameters for all the animatable parts of the rig.
If you ever want to return the animation rig to the capture pose, click Set animation defaults on the Animation tab.
In the parameter editor for the animation node, click the Preferences tab. Set the Proxy file to the proxy geometry file you saved earlier (for example,
$HIP/character_name_proxy.bgeo). Click Reload geometry to load the geometry.Right-click the animation rig node and choose “Save operator type”. Right-click it again and choose “Match current definition”. This saves and locks the changes (the imported parameters) to the animation rig asset.
The animation rig is now available as a digital asset. You can use the Tab menu to create a
character_name_animation_rigasset whenever you need to use the character in a scene.To test the animation rig, use the
Move and
Rotate tools to grab the animation handles on the animation rig and move/rotate them to make sure the proxy geometry moves with the handles.
Paint initial capture weights on the deform rig
In the parameters for the animation rig, on the Preferences tab, turn off Display proxy geometry. This hides the proxy geometry so we will be able to see the capture geometry.
Select the deformation rig node and turn on its visibility flag.
Make sure the Animation rig path is pointing at the animation rig node you're using. If you deleted or set aside the original animation rig node and created a new instance of the animation rig asset, you may need to change the path.
In the network editor, double-click the deformation rig node to go inside. Then find the
skinnode and double-click it to go inside again. Press H to zoom out to show the whole network.This network is set up, at least initially, for symmetrical models. The weights you paint on the left side of the model are automatically mirrored to the right side. The
hide_right_sidenode hides the right side of the model as you paint weights. You can bypass this node (click the yellow bypass flag on the left side of the node) if you want to see both sides of the model as you paint capture weights.Select the
paint_capturenode.
Click the
Handles tool. This tool shows handles specific to the selected node. In this case, it enables painting capture weights on the model.
The view changes to show a visualization on the model surface, where areas the are captured to a bone are colored with the bone’s color, and areas that are not yet captured are white.
Initially you will almost certainly have white areas, so you’ll need to paint capture weights onto the model.
To make it easier to see the white areas, click the Display Geometry menu (top right corner of the viewer) and choose “Hidden line ghost”.
Right-click in the viewer to get the handles menu. Left mouse operation should be “Paint”. Set Middle mouse operation to “Region selector”. This lets you middle-click on the model to pick the closest bone, so you use
to select a bone, then
to paint the bone’s color.
You can hold ⇧ Shift and drag
to change the size of the painting brush.
Middle-click a part of the model to select the nearest bone. Houdini displays the name of the bone and the bone color in the top left corner of the view.
Occasionally you may not be able to get the bone you want by clicking. To choose the bone from a list instead of clicking, use the Capture region drop-down menu in the tool options at the top of the viewer. This menu lets you select from every bone in the autorig by name.
Use
to paint out white areas around the bone you selected with the bone’s color. Remember to tumble around the model to paint on all sides, including the bottom of the foot, top of the head, etc.
Repeat until all white areas are painted.
Create test poses
Right now there’s little transition between weighted areas on the model – each area on the model belongs to one bone or the other. In this section you will create test poses to find problem areas caused by this, and in the next section you will learn how to blend the capture weights to fix the problems.
Note
The example images in this section are simple illustrations only and do not necessarily show the best test poses. You should find test poses that work for your characters.
In the network editor, go back up to the
Scene level (obj) and select the animation rig.In the playbar, set the frame limit (on the right side of the timeline) to
60frames.Set keyframes every 12 frames (move to frame 1, press K, move to frame 12, press K, repeat for frames 24, 36, 48, and frame 60).
Go to frame 12 (leave frame 1 at the bind pose). Use the T
Move and R
Rotate tools to bend the limb joints of the character.
For example:
Grab the object’s center of gravity and move it down to bend the character’s hips and knees.
Rotate the shoulder down, bend the elbow, rotate the wrist.
Bend the ankle.
Rotate the neck.
The object here is to show problems in the capture regions. Right away you’ll probably see problem areas that you will fix in the next section.
Go to frame 36 (leave frame 24 at the bind pose so you can see the transition in and out of the test poses). Use the T
Move and R
Rotate tools to put the character in another test pose.
In this pose, try bending joints in the opposite direction from the first test pose.
Go to frame 60 (leave frame 48 at the bind pose).
In this test pose, try twisting in different ways from the bends in the first two test poses. For example, twist the character’s torso, ankle, waist, and so on.
Remember the object is to show problems with the capture weights. The poses do not have to be physically possible. In this example image, the character’s upper chest and waist are counter-rotated, to create a twist in the abdomen that is not physically possible but demonstrates problems with the capture weights.
You can scrub the animation to see the transitions between the poses.
Blend the capture weights
In the network editor, double-click the deformation rig node to go inside. Then find the
skinnode and double-click it to go inside again.Select the
paint_capturenode and click the
Handles tool.
Right click and set Left mouse operation to “Smooth final”. Right-click again and set Middle mouse operation to “Region selector”.
In the timeline, move to a test pose.
Use
to blend capture colors around the joints to fix problem areas. The goal is to get a smooth transition across the joints from one bone color to the other.
Remember you can hold ⇧ Shift and drag to change the size of the brush.
You can scrub back and forth between the bind pose and the test pose to make it easier to get at areas the are folded in the test pose.
You can alternate between “Paint” and “Smooth final” modes.
(The images below shows a very low-resolution model. You should model your characters to have more polygons in the joint areas to make smoothing easier.)
Repeat for each joint and the different test poses.
Cache the weighted model to a geometry file
Still in the
skinnetwork, bypasshide_right_side.Select the
write_out_weightsnode. In the parameter editor, set the Output file to a filename for the weighted model. It’s a good idea to base the file name on the Character name, for example$HIP/character_name_weighted.bgeo.Right click the Output file parameter and choose “Copy parameter”.
Click Render to save the geometry to the file.
Select the
file__read_in_skinnode. Right click the Geometry file parameter and choose “Paste copied relative reference”. This makes Houdini get the value for the Geometry file parameter from the Output file parameter on thewrite_out_weightsnode.Select the
weight_switchnode. Set the Select input parameter to1.This node switches between using the “live” weight creation nodes (when Select input is
0) and reading cached weighted geometry from disk (when Select input is1). Reading the geometry from disk is much faster than recomputing the weighted geometry for every frame.
Save the deform rig asset
In the network editor, go back up to the
Scene level (obj) and select the deform rig.Right-click the deform rig node and choose “Save operator type”. Right-click it again and choose “Match current definition”. This saves and locks the changes to the deform rig asset.