User Guide > Characters > Rigging   

Wire Deformation

Character deformations especially in the face are often required to work with the contours of the deforming surface. Wire deformers make it possible to capture and deform the surface along these contours. The animator can then either deform along the U direction of the curve or reshape the curve to achieve more complex deformations.

For this lesson, you will draw some curves on top of a model of a face. These curves will then be used to create wire deformations on the face.

Load Start File


1. Draw an Eyebrow Curve

Select the face object and press i to go into it. In the Perspective viewport, tumble and dolly until you are looking at the eyebrow area. Before drawing the curve, press Ctrl - j to turn on snapping. Press tab > Curve and snap to the points on the face model as shown below. When you are finished, RMB-click to complete the curve. Change the curve's Primitive type to NURBS.

Press tab > group. Since the curve is already selected, RMB-click to accept. In the Parameter pane, change the Group name to eyebrow. Also change the operator name to eyebrow_group. The group name will make it easy to set up your wire capture controls.


2. Draw a Smile Curve

Tumble and dolly until you are looking at the corner of the mouth. Press Ctrl - k to open the snap options. Increase the priority for the Geo edge option. This will let you draw a curve by snapping to both edges and surface points. Press tab > Curve, snap to the edges on the face model as shown below. In this case you are not following the topology of the surface directly. RMB-click to complete.

Change the curve's type to NURBS. Press tab > group. Since the curve is already selected, RMB-click to accept. In the Parameter pane, change the Group name to smile. Also change the operator name to smile_group.


3. Merge the Curves

In the Network pane, press tab > Merge and place the tile near the two group SOPs. Next, wire the outputs of both group SOPs into the input of the merge SOP.


4. Capture the Wires

In the Network pane, press tab > wireCapture and place the tile below the new merge SOP. Wire the output of the face geometry into the wirecapture's first input. This is the geometry to be captured. Next, wire the output of the merge into the wirecapture's second input. Turn on the display flag for the wirecapture SOP then select Operator > Footprints and Templates > Clear all Footprints from the pane menu.

In the Parameter pane, go to the Capture tab and click on the Initialize From Groups button. This uses the two curve groups built earlier to define the wires used to capture the face model.

The wirecapture SOP is now displaying a yellow error icon. If you MMB-click on the tile's icon, you are told at the bottom that no points are being captured. This is because the wires do not have a capture radius set. For the eyebrow wire, set the U Radius to 0.125 and for the smile wire, set the U Radius to 0.1. Now the areas surrounding the wires are being captured.


5. Vary the Eyebrow Capture Radius

In the Parameter pane, Alt-click on the second parameter of the U Radius and Lookup parameter to set a keyframe. This parameter represents the lookup amount. RMB-click on the field and select Scope Channels from the pop-up menu. Alt-click somewhere to the right of the existing keyframe to add a second key then Alt-click again in the center of the channel. Drag this key down to reduce the size of the radius.

In the Perspective view, you can see the radius along the eyebrow wire adjusting to match the shape of the channel.

The channel is defining a lookup table that defines what the U radius will be at different positions along the curve. The values for the first and last key on the channel will be assigned to the start and end of the wire with any internal keys being adjusted along the curve in proportion to its position in time.


6. Deform the Wires

In the Network pane, RMB-click on the wirecapture SOPs output, select wireDeform, and place the tile below the new wireCapture SOP. Next, wire the merge SOP output into both the second and third inputs on the wiredeform SOP. These define the rest geometry and the deformed geometry as defined by the wires.

Turn on the display flag for the wiredeform SOP. In the Parameter pane, click on the Deform tab and click the Initialize from Rest Groups button. Now there are now controls for the two wire groups that can be used to deform the face. MMB-click in the smile's U Deform parameter and with the value grid set its value to about 0.6. The face is now deformed.


7. Copy the Curves

For the eyebrow, you will create some facial deformation by reshaping the eyebrow curve using a blend operation. Set the Display flag on the merge SOP.

In the Viewer pane, press tab > Copy. Press a to select the two curves then RMB-click twice to accept. Set the template flag for the merge SOP in order to use it as a reference for your edits.

Now press tab > edit and press 1 to set your selection to points. Click on the first point on the eyebrow curve, RMB-click to accept it then push it down. Make sure that Secure Selection is off then use this edit SOP to reshape the new eyebrow curve as shown below. You may want to Display points to help you find the CVs while you edit. Don't touch the smile curve.


8. Blend the Eyebrow Curves

In the Network pane, press tab > blend and place the tile. Wire the output of the merge SOP into the blend's input and then wire the output of the new edit SOP into the same input. Next, wire the output of the merge SOP to the second input (rest geometry) of the wiredeform SOP and the output of the new blend SOP to the third input (deformed geometry) of the wiredeform SOP. When you are finished, set the display flag for the wireDeform SOP and turn off any footprints or templates in the network.


9. Create HUD sliders

In the Network pane, select the blend SOP tile. In the Parameter pane, double-click on the second blend field and then LMB-drag it to the Viewer pane to create a Heads-up Display (HUD) slider. RMB-click on the HUD and choose Handle Parameters... In this window, keep the range set to 0 and 1 then lock the high and low values.

In the Network pane, click on the wireDeform SOP, then double-click on the smile's U deform and LMB-drag from the Parameter pane to the Viewer pane. Set the Handle parameters to lock the high and low values. If you want to give these sliders friendlier names then select Tools > Persistent Handle Editor... from the main menu.


10. Test the Results

You can now use the HUD sliders to deform the surface. Press u to go back up to Object level then press s to get the transform tool. Click in empty space then use the HUD sliders to deform the face. At any time press k to keyframe the slider values then scrub in the timeline and keyframe some new values.


Conclusion

A real facial setup would make use of many curves all representing the muscles that define facial expressions. Only two curves were used in this lesson but the principle would be the same.

The various parameters used to control the deformations along the curve and any blends would be rigged up to the character's digital asset interface for high level access by animators.