Bookshelf Contents Previous Next Glossary Index Search

Lesson 23: Character Builder

In a previous lesson, you've seen how to build and animate a skeleton. The next step is to attach geometry to it. This lesson shows you how to control the deformation of pre-built geometry, using tools that let you define skin tucking and folding, and muscle bulging. You also use a tool that lets you stitch together separate pieces of geometry into one skin, and create shaders that deform with the skin. To create deformations for an arm and shoulder, which have a complex joint, you will become familiar enough with applying deformation techniques to extend them to other parts of a character's body.

Preview the final animation

By viewing an existing flipbook of the lesson, you can see what you are trying to achieve.

Play the final animation

  1. From the Animation menu, select Flipbook.... At the ShowList prompt, double-click on the flipbook L23_Moving_Arm.bk.
  2. A small menu appears. Click on the play button to see the animation.
  3. After you are finished, close the Flipbook.

Initial Setup

A file has already been prepared for your use.

Open the Arm Torso file

From the File menu, select Open, and double-click on the file named L23_ArmTorso to retrieve it.

Note: Animation already exists on the joints of the skeleton. If you should move the joints of the skeleton, and need to get it back to its untransformed state, select Anim View Frame, and type
in 1.

This places the skeleton in its untransformed state, letting you proceed with the lesson. The animation also enables you to playblast the arm and torso so you can evaluate any operations you have performed.

Note: The skeleton in this example is using the Round bone style instead of the Pyramid bone style used in previous IK lessons. You can change a skeleton's bone style from the Line style option in the ObjectDisplay menu to the option that suits you best.

About the Surfaces

The surfaces in this file were constructed using surface construction tools, such as Skin and Revolve.

The torso was constructed by creating 10 semi- circular cross-sectional profile curves, stacked on top of one another. These curves were skinned together, with construction history turned on. The cross sections were then modified, using Scale on the curves themselves, and finally, by pulling control vertices on the curves to rough out the shape of the torso.

After the rough shape was put together, the construction curves were deleted, which removed the construction history on the skinned surface, and allowed for modification of the surface itself. Isoparms were then inserted on the surface to get more localized control over the shape.

Using Proportional modification, the torso was molded into the final shape desired. This half of the torso was then mirrored to the other side. Then, the two pieces were attached together to create a smooth seam.

The arm was constructed by revolving a cross-sectional profile curve, and modified by pushing and pulling control vertices around using Move and proportional modification.

A curve on surface was then projected onto the torso from the side to describe the attachment point for the surface blend to the body, and also onto the arm from the front to describe the attachment point for the surface blend to the arm. After projecting the curves, the surfaces were then trimmed back to discard the portions of the surface inside the curves on surface.

Attaching the Torso to the Skeleton

By first attaching the torso to the skeleton you allow for a smooth deformation of the torso as the backbone bends and twists.

Select the torso and skeleton

  1. Select Pick Object, and click-drag over the skeleton structure (the bones of the arm and torso) and the torso geometry. Do not pick the arm geometry (the skin).

    Open the Deformation control window

  2. From the Windows menu, select Deformation cntrl... from the menu. In the Deformation Control window, change Frame Type to CHARACTER BUILDER.

    Set the Hierarchy Depth to end at the shoulder

  3. In the Frame Parameters section of the the Deformation Control window, set Hierarchy Depth to Partial Below, and set Levels to 8.

    Note: This sets up the deformation attach operation to descend 8 joint levels down the skeleton. A hierarchy depth of 8 for this skeleton means that you are attaching the torso to all the joints in the skeleton down to the shoulder joint. You are effectively removing the arm joints from the attach operation.

    Set the Attributes for the backbone joints

  4. In the Deformation Control window, from the Frame Control menu, select Set Attributes.

    Tip: Circular bounding disks have been drawn around the upper and lower ends of the bones in the skeleton. These bounding disks tell deformation control where you want skin tucking and folding to occur. If the bounding disks are closer together, you will get a tighter fold, and if they are further apart, you will get a looser-looking fold in the skin when you rotate the skeleton joints.

    Increase the upper and lower bounds

  5. In the Joint Attributes section of the Deformation Control window, set the Upper Bound to 0.3, and the Lower Bound to 0.3.
  6. If you change the boundaries using the sliders, you'll notice that the boundary disks move interactively on the skeleton. Try this, then reset the values to 0.3 and 0.3.
  7. Click set to have the values set.

    Attach the torso geometry to the skeleton

  8. Select Frame Control Attach. Alias now constructs the cluster nodes necessary to deform the torso geometry smoothly when the skeleton joints are transformed. This may take a few moments.

    Evaluate the movement of the torso

  9. From the Layouts menu, select Perspective. Working with character objects is faster in a single window. Move the Deformation Control window to the side.
  10. Select Pick Nothing, then select Pick Object, and type in backbone_1. This selects the backbone node one joint away from the waist joint node.
  11. Select Xform Rotate, and click-drag with the right mouse button to rotate the backbone joint node in Z.
  12. Next, use the left mouse button to rotate it in X, and then, use the middle mouse button to add some Y rotation. As long as the amounts you rotate the backbone joint node to are typical of a human being, the deformation of the geometry should look extremely smooth.

    Reset the position of the skeleton to default

  13. With the backbone_1 joint node still selected, select Xform Rotate, then type in 0. This returns the backbone joint node to its original orientation.

Attaching the Arm to the Skeleton

Next, you attach the arm geometry to the arm joints of the skeleton, using the same method as the torso. In this case, you also want the upper arm of the character to bulge, so you need to add some bulging attributes to the arm joints of the skeleton before performing the attach operation.

Select the lower shoulder joint

  1. Select Pick Nothing, then select Pick Joint. Type lower_shoulder and press Enter to pick the appropriate joint.

    Set the Hierarchy Depth

  2. In the Deformation Control window, set Hierarchy Depth to None.

    Tip: This lets you set up the bulge attributes for only the upper arm bone.

    Set attributes for the arm of the skeleton

  3. From the Layouts menu, select All windows All (Studio) so you can see the bulge curves from multiple perspectives.
  4. In the Deformation Control window, select Frame Control Set attributes. Setting attributes again creates attributes for bones that get saved with the skeleton.

    Note: You can easily build a library of skeletons that have pre-set attributes, such as bulging, to use in future projects.

    Turn on and change the bulging parameters

  5. In the Deformation Control window, under Frame Parameters, click on the Bulging option. This opens up additional parameters that you'll set to cause the biceps and triceps of the arm to bulge.
  6. Scroll down to find these new items. You may want to open the window some more to see the new attributes.

    Tip: Click-drag with the right mouse button on the border of the Deformation Control window to expand it.

    Set the Bulging attributes

  7. In the Bulging Attributes section, set Zero Degree Section to Y Local Axis. This sets up the bulge so that it occurs in the local Y axis space of the arm joint.

    For your arm geometry, setting this to Y causes the bulge to happen in the positive and negative Y-axis.

    Tip: If you look at the geometry in the Right window, you should be able to visualize the bulge in this axis.

  8. Set Relate Transform to X Rotate. This causes the bulging to take place when you rotate the elbow joint in X.
  9. Change the transform range to -90. This causes the bulging to occur over the rotational range of 0 to -90 degrees.

    Tip: For each joint, you will have to determine whether you want the rotations to occur during a negative or positive rotation, and also over what range you want the bulge to occur. For this skeleton, -90 degrees works well for the elbow joint.

Change the Bulging parameters

  1. Under Bulge Definitions, select Add to create a new bulge type.
  2. Double-click on the name, and change the name of the bulge to Arm_Bulge. This creates a default bulge section you can modify to suit your purposes.

    Under the Bulge Section Editor part of the Deformation Control window, you now modify the bulge curve shapes to create a bulging biceps and triceps.

  3. Click on the arrow, shown in the Angle selector dial (it looks like a clock hand) to Y = 0 Degrees. In the Section Editor, click-drag the middle X on the white curve to make the curve look as follows:

  4. This curve controls how the triceps is going to deform. In the modeling windows, you can see the bulge curves updating as you pull the bulge control points around.
  5. Click-drag the clock hand down to Y = 180 Degrees. You want the curve to look like the following diagram. This curve controls how the biceps is going to bulge and deform.

  6. Once you have modified the curves, click set to assign these attributes to the upper arm bone of the skeleton.

    These two settings now will ensure that bulging occurs as the joint rotates.

    Attach the arm geometry to the skeleton arm joints

  7. Select Pick Nothing, then enter upper_shoulder to select the joint node.
  8. Next, select Pick Object, and click on the arm geometry to pick it.
  9. In the Deformation Control window, scroll up to the Frame Parameters section and set the Hierarchy Depth to BELOW.
  10. At the bottom of the Deformation Control window, select Frame Control Attach. Alias now constructs clusters for the arm with the appropriate CV percentages to allow for folding and tucking. Alias also creates clusters to control bulging of the geometry through expressions.

Evaluate the movement of the arm of the character

  1. Select Pick Nothing, then select Pick Joint, and enter elbow to select the elbow joint.
  2. Select Xform Rotate, and use the left mouse button to rotate the elbow in X.

    Tip: Since the bulging is difficult to see, you can turn on the evaluation of the bulging expressions, so the bulging occurs while you're rotating the elbow. From the Preferences menu, select Performance options.... In the Expression Updates section, turn the During Xform option On. Close the Performance options window.

  3. Try rotating the elbow in the X-axis again, and watch the bulging of the arm.

    Reset the position of the skeleton

  4. Select Anim View Frame, then type in 1. This puts the skeleton back in its default position.

    Note: There are many parameters you can change to affect how the bulge is going to perform. If you want more control over the definition of a bulge, you can add additional control points on the curve, to localize the deformations of the geometry. You can also change the scale value of the bulge, to increase or decrease the amount of bulging you get, without having to modify the actual bulge curves. Don't be afraid to experiment. If you run into a problem, and don't get the result you want, reset the attributes for the joint and re-attach the geometry to the skeleton!

  5. When you are finished, close the deformation control window.

Attaching the Arm to the Torso

You now have a torso and arm that deform in a similar manner to their real life counterparts.

You now need to join the arm back to the torso, to stitch the surfaces into one complete mesh. To do this, you use Surface Blend, which creates a surface that maintains tangency with the edges of two other surfaces, even if the surfaces move or deform during your animation.

Set your Perspective view

  1. From the Layouts menu, select Perspective, and set up your Perspective view to get a good look at the edges of the arm and torso where they are going to join. Many isoparm lines are displayed, so you need to work carefully.

    Toggle off the skeleton

  2. From the DisplayTgls menu, select Object Toggles Skeletons. This turns the display of the skeleton off so you can see the surfaces more clearly.

    Attach the arm to the torso using a surface blend.

  3. Select Surfaces Fillet surfaces Blend. Click on the upper edge of the arm geometry. This a closed loop. Click Go.

    Note: Sometimes a boundary curve is made up of two or more pieces. As long as the pieces form a closed loop, they can be used in a blend surface.

  4. Select the connecting edge on the torso geometry. Again, Alias informs you that this curve forms a closed loop. Click Go.

  5. Locators spanning the gap between the arm and the torso appear. You can change the orientation and placement of the locators by using the mouse buttons. Slide the locators along the boundary curves by holding down the left mouse button and dragging.
  6. Next, switch the direction of the active locator by clicking the middle mouse button. You should notice that the locator swaps directions every time you click the middle mouse button.
  7. Finally, click the right mouse button, so the active direction locator switches to the other boundary locator.
  8. You want to create a blended surface between the two boundaries with a minimal amount of twisting. The correct orientation for the locators should look something like the diagram below. If you can match the locators, skip ahead to step number 11. If you get lost, go to the next step (number 9).

    Execute the blend

  9. Select Surfaces Fillet surfaces Blend. This cancels the last blend operation, and starts another. Click the middle mouse button to flip the locators.
  10. Click-drag with the left mouse button to slide the locators until they are straight.

    Note: If you are not sure that this is the case, use the tumble icon in the Perspective window to tumble the model around. This lets you evaluate the orientation of the locators more easily.

  11. Once the locators are in the proper orientation, click Go. Alias constructs a blended surface between the arm and torso.

    Toggle on the skeleton

  12. From the DisplayTgls menu, select Object Toggles Skeletons to turn the display of your skeleton back on.

    Evaluate the movement of the arm and torso

  13. Select Pick Nothing, then select Pick Joint, and enter lower_shoulder to pick this joint.
  14. Select Xform Rotate, and use the middle mouse button to rotate the lower shoulder joint in the Y- axis. When you let go of the mouse button, the surfaces redraw, and the Blend Surface used to join the arm to the torso re-builds itself.

    Note: At this point, you may have noticed that the clavicle (collarbone) also rotates when the shoulder rotates. This linked rotation was set up by placing an expression on the collarbone joint that tells the collarbone to rotate a percentage of the amount that the lower shoulder joint rotates.

  15. If you want to see the expression, select the clavicle joint then from the Animation menu, select Action window.... Click on the Parameter Filter button and make sure that all of the parameters are on. Change the Action window to the Time View mode. There is an expression listed that changes the Y_Rotate value of the clavicle joint, as the lower_shoulder joint Y_Rotate value changes. After looking at the expression, close the Action window.

    Reset the position of the skeleton

  16. Select Anim View frame, then type 1 to reset the skeleton back to its default position.

Creating Deformable Textures

You now have a single skin that deforms rather realistically. Your next step in creating a believable skinned skeleton is to add textures that move and deform with the geometry that they're applied to. In effect, you want to achieve a "rubber doll" look, creating stretchy textures that pull and pucker along with the surface. You do this by creating what is known in Alias as surface or UV-based textures. These differ from projection or solid textures in that they are applied directly to the surface, rather than being projected through the surface. Projections break down as soon as you deform or move your surface, so you need to take a solid or projection texture and turn it into a surface or UV texture using a tool called Convert Solid Texture.

Select the arm, torso, and shoulder blend surface

  1. Select Pick Nothing, then select Pick Object, and drag-select over the arm, torso and blend surface geometry.

    Open the Multi-lister

  2. From the Windows menu, select Multi-lister Shaders....

    Select and assign the mottled_skin texture

  3. In the Multi-lister, select the texture called mottled_skin, then select Shading Assign Shader. This assigns the mottled_skin texture to all the picked surfaces.

    Convert the solid texture into a surface texture

  4. Select Edit Convert Solid Tex in the Multi-lister. In the requester that pops up, change the PIX Size to 512, and turn Anti Aliasing OFF.
  5. Click OK. You are telling Alias how large the resulting surface files should be, and whether or not you want to Antialias the resulting pix files.
  6. Close the Multi-lister.

    Tip: In most cases, you should leave Anti- aliasing on, and the size of the pix files generated depend entirely on how close you are going to get to a surface with the camera. If you need finer detail, use a larger pix file size. For this lesson, a small size with no antialiasing works well enough, and the pix files are generated more quickly.

Rendering and Evaluating the Surfaces

You can now evaluate the overall results of your work by performing a playblast with QuickRender turned on.

Set up your Perspective view

  1. Set up your window to get a good view of the torso and arm.

    Open the Animation Preview window

  2. From the Animation menu, select Playback options.

    Open the playblast pull down

  3. Open the Play Blast section of the window, and turn on QuickRender and Compress. Set the quality level to 25. This quickrenders a small preview of your animated arm and torso, using the animation already existing on the skeleton, when you retrieved it.

    Playblast your animation with QuickRender on

  4. Click the play button in the time slider.

    Note: This animation may take a long time to complete, depending on the limitations of your system.

More about Animating the Arm

In this lesson, the skeleton was already animated. Run IK was used to put rotational keyframes on the various joints and any constraints and IK handles were removed. The following set of images follows one possible workflow for setting up the IK handles and then attaching the surfaces to the skeleton.

To re-animate the arm using the L23_ArmTorso file, reload the original file, then Pick the whole skeleton. Once it is picked, go to the Delete menu and select Delete channels -. In this option window, change Channel types to Both and Hierarchy to Below. Click Go to remove the animation channels and expressions on the skeleton.

To re-animate the torso, start with the surfaces and the skeleton aligned, as they are found in the L23_ArmTorso file. Then, Pick the elbow joint of the arm and rotate it to an appropriate angle. This is your rest pose.

Pick the whole hierarchy and select Set Rest Pose from the Edit menu. The rest pose governs the motion of the arm's IK chain. At this point, you have not attached the surfaces to the skeleton. You can attach the surfaces first, but for now focus on the skeleton.

The next step is to add an IK handle to the arm, with its root at the lower shoulder and its end effector at the hand. If desired, set up any constraints or selection handles, as you did in Lessons 20 and 21.

Before working on the surfaces, move the IK handle back to its original position. Using Character builder and the same methods taught earlier in the lesson, set up and attach the arm and the torso.

Once the surfaces are attached, use Assume Rest Pose to see how well the arm is attached to the skeleton. Next, you can add the Surface blend and then test the motion on the arm. The character is now ready for you to animate. You can use the IK Handles and any joint that isn't part of an IK chain to animate. Try having the Torso bend forward as the arm pulls back. This allows you to see character builder deformations in all parts of your character.

Conclusion

Congratulations! You have just walked through one of the most difficult processes in computer graphics character animation. Creating complex joints like shoulders is very challenging and requires a number of steps to properly set up and execute.



Bookshelf Contents Previous Next Glossary Index Search

[email protected]
Copyright © 1998, Alias|Wavefront, a division of Silicon Graphics Limited. All rights reserved.