CSE 464 - Character Pre-Production for 3D Animation

Assignment #2: Block Model and Pose Testing

In this assignment we will add fingers to the skeleton created in assignment 1, and then we will set up bone orientations for animation. Next, we will build a block model for our character based on the orthographic sketches. Finally, we will test our block model proportions by creating poses.

 


Installing the Character Design Shelf

In order to use the CharacterDesign shelf, first download this zip package: Character Design Shelf and extract to a local folder. Copy the contents to your Documents/Maya folders:

On Windows: C:\Users\<username>\Documents
On Mac: <username>/Library/Preferences/Autodesk/Maya

  • Files in shelvesDocuments/maya/2016/prefs/shelves/
  • Files in iconsDocuments/maya/2016/prefs/icons/
  • Files in scriptsDocuments/maya/2016/scripts/

Restart Maya and you should now see the CharacterDesign shelf tab:

These new tools are now available to you, and will be used in the class assignments:

The transparency fader is a convenient way to control the transparency of your reference image planes.

 


 

 

Part 1.1, Adding fingers to the skeleton

Start with the skeleton created in the last assignment. Start by saving it as a new filename, "assignment_2.ma"

 

Use the following hand sketches for reference when building your hand skeleton. Download the images from the links below to the folder where you are saving your assignment.


(You are welcome to draw your own hand images, but that is not required. It will be easy to modify the shape of the hand skeleton once it has been built so that it fits your character's proportions.)

 

1.1 Map the hand images to polygon planes

(Start by hiding the character skeleton. Select the root joint and press ctrl-h to hide it.)

  1. Create a polygon plane
    1. Create →Polygon Primitives → Plane
    1. Name the plane "hand_top_plane"
    2. Scale the plane up to 20
      1. In the Channel Box, type "20" in Scale X, Y and Z
  2. Add a new material to the plane
    1. Right-click the plane and select Assign New Material
    2. Choose Lambert from the new material window
    3. In the Attribute Editor, name the new material "hand_top_material"
  3. Assign the hand image to the material
    1. In the Attribute Editor for the hand_top_material, in the Color field, click the checkerboard button
    2. Choose File from the create render node window
    3. In the Image Name field, click the folder button to browse for hand_top.jpg
    4. Press 6 in the viewport to switch to texture view
  4. Move and rotate the plane so that it faces forward along the Z axis with the wrist at 0,0,0.
  5. Repeat these steps for the hand side image
  6. Align the planes to the top and side cameras, and move them a few units away from the origin
  7. Assign the planes to the reference display layer
    1. Select hand_top_plane and hand_side_plane
    2. Right-click "reference_lyr" and choose Add Selected Objects

Your scene should now look like this:

(Note: if one side of your plane is showing up black you can fix that in the pannel/Lighting menu, turn on Two Sided Lighting)

 

1.2 Create the index finger joint chain

  1. Switch to the side camera view - Panels -> Orthographic -> Side
  2. Activate the Create Joints tool
    1. Switch to the Rigging menu set
    2. Click Skeleton -> Create Joints
    3. Click and draw joints for the hand, kunckels and end joint
    4. Name the joints as follows

 

  1. Move and rotate the right_index_1_bind_joint to align with the top view

  1. Duplicate the index finger joint chain to create middle finger chain
    1. With right_index_1_bind_joint selected, press ctrl-d to duplicate
    2. Move and rotate the new joint chain to align with the middle finger. (Don't change the length yet)
    3. Rename the joint chain using Modify -> Search and Replace Names and use these settings

(Repeat these steps for ring and pinky fingers)

 

  1. Adjust the length of the finger joints
    1. With the Move Tool activated, open the Tool Settings located at the upper right corner of Maya
    2. Set Axis Orientation to Parent
    3. Move joints along the X axis only. This will keep the joints aligned co-planar.

 

  1. Duplicate the index finger again to make the thumb
    1. With right_index_1_bind_joint selected, press ctrl-d to duplicate
    2. Move and rotate the new joint chain to align with the thumb in both top and side views
    3. Rename the joint chain using Modify -> Search and Replace Names
  1. Test the rotations of the fingers and hands
    1. Shift-select all of the finger joints together and rotate them inward. They should touch when rotated all the way inward similar to how a real hand works.
    2. Shift-select all of the thumb joints and rotate them inward. The tip of the thumb should touch the pinky first joint.
    3. Make the necessary adjustments to the joint rotations and bone lengths so that the fingers fold inward naturally
  1. Finalize the hand skeleton
    1. Freeze transformations on the right_temp_hand_joint - Modify → Freeze Transformations Options
    2. Parent the temp hand joint to the actual hand joint
      1. If necessary, first unhide the character skeleton. Select center_root_bind_joint in the outliner and set visibility to 1.
      2. Select temp_right_hand_joint, and then shift-select right_hand_bind_joint
      3. Press "p" to parent it
    3. Zero out translations and rotations on the temp hand joint
      1. In the Channel Box with temp_right_hand_joint selected, set Translate to 0,0,0
      2. In the Attribute Editor (ctrl-a) with temp_right_hand_joint selected, set Joint Orient to 0,0,0
    4. Rotate the temp hand joint to align with the arm.
      1. Thumb should be pointing forward if the elbow is pointing backward
      2. (this example is set to Rotate X 90)
    5. Scale the hand to the desired size
      1. Select temp_right_hand_joint and press ctrl-g to group it
      2. With the group selected, press "r" for scale and set the desired size
      3. Freeze transformations on the group Modify → Freeze Transformations Options
      4. Ungroup - Edit -> Ungroup
    6. Parent all fingers and thumb joint chains to right_hand_bind_joint and delete temp_right_hand_joint

Be sure to save your scene!

 

 


 

Part 1.2, Orienting the skeleton for animation

 

Conventions for joint orientation

Axis

Orientation

Description

X

Points down toward the child

Maya auto-orients joints this way as a convention.  This minimizes gimbal lock problems when using the default rotate order.  However, there are a few special cases where joints in character rigs should be oriented differently.

Z

Primary axis of rotation

Using Z as the primary axis of rotation further reduces risk of gimbal lock. This helps IK work more reliably.

Y

Rotating the Y axis 90 degrees causes gimbal lock.  We try to minimize gimbal lock by orienting Y as the least used axis.

 

  1. Orient the chest orthogonal to world space.
    • Select center_spine_3_bind_joint and press "shift-p" to unparent it. Also unparent all of its children joints. 
    • With the joint still selected, press "ctrl-a" to bring up the Attribute Editor.
    • In the Joint Orient field, round off all values to multiples of 90.  
    • Parent the joint back into the hierarchy
      • Select center_spine_3_bind_joint, and then shift-click center_spine_2_bind_joint and press "p" to parent
  1. Orient the clavicle relative to the chest
    1. Unparent the shoulder from the clavicle
      1. Select right_upperarm_bind_joint and press shift-p to unparent
    2. Select right_clavicle_bind_joint
    3. Press “ctrl-a” to bring up the Attribute Editor
    4. Zero out all joint orient values
    5. Re-parent the shoulder to the clavicle
      1. Select right_upperarm_bind_joint, and then shift-select right_clavicle_bind_joint and press p to parent

  1. Orient the head orthogonal to world space.
    • Select center_head_1_bind_joint and press "shift-p" to unparent it.  
    • With the joint still selected, press "ctrl-a" to bring up the Attribute Editor.
    • In the Joint Orient field, round off all values to multiples of 90.
    • Parent the joint back into the hierarchy.
      • Select center_head_1_bind_joint and then shift-click  center_neck_2_bind_joint and press "p" to parent
  1. Orient the feet in world space
    1. Unparent the foot and ball joint
      • Select the right_foot_bind_joint
      • Press "shift-p"
      • Select the right_foot_ball_joint
      • Press "shift-p"
    2. With the foot joint selected, press "ctrl-a" to bring up the Attribute Editor.
    3. Zero out all of the joint orient values
    4. Parent the foot back to the knee
      • Select right_foot_bind_joint and then shift-select right_lowerleg_bind_joint and press "p" to parent
      • Select right_foot_ball_joint and then shift-select right_foot_bind_joint and press "p" to parent

Mirror the skeleton again and freeze transformations.

Save your scene as assignment_2_skeleton.ma - this will be turned in along with the rest of your assignment.

 


 


Part 2: Block Modeling

 

Save as "assignment_2_block_model"; file type .ma.

1. Block modeling the body

  1. Add block models to the spine joints

    1. Select center_root_bind_joint
    2. Shift select spine 1 through spine 3
    3. Press the block model button on the Character Design shelf:



  2. Model the blocks to match the silhouette of the body

    1. Switch to side camera view
    2. Select the chest block
      1. It might help to turn off joint selection so that the skeleton doesn't keep getting in the way of selecting the polygon block models.
      2. To do that, press the joint selection mask button on the toolbar at the top:

      3. Remember to turn joint selection masking back off when finished.

    3. Right-click the chest block and choose "Vertex".
    4. Select the vertices and move them out to match the chest in the side view drawing.
      1. It might help to switch to "world" move axis in the Move Tool settings.
      2. To do that, double-click the Move Tool in the Toolbox on the left:
      3. Click "World" in the "Move Axis" settings:


    5. Repeat steps 2 through 4 on the rest of the block in the body.
      1. It might help to use the scale tool when moving vertices so that the left and right sides can stay symmetrical.
      2. Select both left and right side vertices.
      3. Activate the Scale Tool by pressing the "r" hotkey or the button in the Toolbar:
      4. It will help keep the edge loops staright by setting the scale tool to "World" mode in the Scale Tool options (double-click the scale button in the Toolbar).

    6. Switch to front view and repeat steps 2 through 5 for the front of the body.

Your block model should now look something like this:


2. Block modeling the neck and head

Repeat steps 1A and 1B for the neck joint chain.

Your model should now look something like this:


3. Block modeling the legs

  1. Repeat steps 1A and 1B for the right leg joint chains.

  2. Mirror the right leg to the left side

    1. Select all of the blocks for the leg and foot
    2. Press "Shift-p" to unparent them from the skeleton
    3. Press "Ctrl-g" to group the blocks
    4. Press "Ctrl-d" to duplicate the group
    5. In the Channel Box set Scale X to -1 on the duplicate group

    6. Parent the right and left leg block models to the skeleton
      1. Select a block
      2. Shift-select the corresponding bone
      3. Press "p" to parent the block to the bone
      4. Repeat this step for all blocks on the legs and feet
      5. It might help when selecting the bones to turn on x-ray joints on the panel toolbar:

    7. Delete the temporary group nodes (These can be found in the Outliner)

Your model should now look something like this:


4. Block modeling the arms and hands

Repeat steps 1A and 1B for the right arm joint chain. When you get to the hand only add a block to the right_hand_bind_joint for now. We will be skipping the right_palm_bind_joint completely and adding blocks to the fingers later.

Repeat step 3B to mirror the right arm to the left side.

Your model should now look like this:

Save an iteration by clicking the button on the character design shelf. If you 've been doing this already then that's fine, too! The more often you save the better.

Additionally, save out a separate file with your progress up to this point as assignment3_checkpoint.ma and be sure to check in with one of the TAs during lab hours.


5. Refining the block model silhouette

  1. Add a vertical center edge loop to the chest

    1. Shift-right-click the chest block to bring up the polygon modeling marking menu, choose "Multi Cut Tool" option window.
    2. Press Slice Along Plane, YZ



    3. Select the faces on the sides of the chest and scale them down on the Z axis.



    4. Repeat this step for the rest of the blocks in the body, neck and head

  2. Refine the silhouette of the chest

    1. Shift right-click the geometry in object mode (right-click and select "Object Mode"). Choose "Insert Edge Loop Tool".
    2. Click on the center edge loop about one third of the way down from the top



    3. Scale and move the edge loop to match the silhouette of the drawing. You can also select and move vertices individually. Look through front and side camera views to make sure it lines up from all angles.



  3. Refine the silhouette of the pelvis

    1. Add a horizontal edge loop to the pelvis block
    2. Model it to match front and side views



  4. Refine the silhouette of the head

    1. Add two horizontal edge loops to the head
    2. Model the new edge loops to match the front and side views
      1. It might help to use the Fader tool so you can see the drawing through the transparent block model.
      2. Select the block model and press the Fader button on the custom shelf
    3. From the side view, add a vertical edge loop to the center
    4. Model all vertices on the head to look good from front, side and perspective views.



  5. Add vertical center edge loops to the side of the body and neck

    1. From the side view add vertical edge loops to the blocks on the body and neck
    2. Model the vertices to a rounded shape in the perspective view



  6. Refine the silhouette of the legs

    1. Delete the leg and foot block models on the left side
    2. Add two horizontal edge loops to the right upper and lower leg blocks
      • Model the vertices to match the silhouette of the drawings
    3. From the side view add vertical edge loops to the upper and lower leg blocks
    4. From the front view add vertical edge loops to the upper and lower leg blocks
      • Model the vertices of the right upper and lower legs to look rounded in perspective view
    5. Add edge loops to the foot and toe as shown in the screenshot below
    6. Repeat step 3B to mirror the right leg to the left



  7. Refine the silhouette of the arms

    1. Delete the arm and hand block models on the left side
    2. Add two horizontal edge loops to the right upper and lower arm blocks
      • Model the vertices to match the silhouette of the drawings
    3. From the side view add vertical edge loops to the upper and lower arm blocks
    4. From the front view add vertical edge loops to the upper and lower arm blocks
      • Model the vertices of the right upper and lower arms to look rounded in perspective view
    5. Add edge loops to the hand block as shown in the screenshot below



    6. Sculpt the hand block so that it follows the curve of the knuckles. Additionally, the hand block should slightly overlap the knuckles as pictured below.



    7. Select the finger joints and repeat steps 1A and 1B to create block models on them. The faces at the base of the finger blocks will need to be pushed down slightly since the hand block overlaps the knuckles.



    8. Repeat step 3B to mirror the right arm to the left side.

Remember to save your scene!


Part 3: Pose Testing

The next phase of block modeling is pose testing. This enables you to see if the proportions of your character work in 3D or not.

  1. Save a new copy of your block model file out as "assignment3_pose_testing"; file type .ma.
  2. Keyframe the skeleton in the model pose (The model pose is the pose that lines up with the front and side concept art, same as the above screenshots) .
    1. Select center_root_bind_joint
    2. Press the Select Skeleton button on the custom shelf.
    3. Hit the "s" hotkey to set a keyframe.
  3. Create poses for each of the following poses and keyframe the skeleton on every tenth frame: 0 (set a key for the initial model pose), 10, 20, 30, etc. Be sure to move the time slider forward to the next time value before posing the skeleton.

    Poses to create and filenames:
      1. Model Pose
        1. p01_model_pose.png
      2. Relaxed/Idle Pose
        1. p02_relaxed.png
      3. Crouch Pose
        1. p03_crouch.png
      4. Character personality pose of your own chosing #1
        1. p04_character1.png
      5. Character personality pose of your own chosing #2
        1. p05_character2.png



 

Grading Rubric

For this assignment we will be checking to make sure that the following elements of the assignment are present in your catalyst submission:

NOTE: 2 points will be subtracted for incorrect file names and formats

Criteria

Achievement Level

  Achievement Level 1 Achievement Level 2 Achievement Level 3 Achievement Level 4

Skeleton
format: Maya file
file name:
assignment_2_skeleton.ma

25 points: (0-1 incorrect)
Joints are named, parented and oriented correctly. Skeleton aligns with reference images (mostly).

23 points: (2-4 incorrect)
Joints are named, parented and oriented correctly. Skeleton aligns with reference images (mostly).
20 points: (5+ incorrect)
Joints are named, parented and oriented correctly. Skeleton aligns with reference images (mostly).
0 points:
files were missing
Block Model
format: Maya file
file name:
assignment_2_block_model.ma
25 points: (0-1 incorrect)
Block model is complete, is subdivided as instructed, has correct parenting and aligns with reference images (mostly).
23 points: (2-4 incorrect)
Block model is complete, is subdivided as instructed, has correct parenting and aligns with reference images (mostly).
20 points: (5+ incorrect)
Block model is complete, is subdivided as instructed, has correct parenting and aligns with reference images (mostly).
0 points:
files were missing
Poses (Maya file)
format: maya file
file name:
assignment_2_pose_testing.ma
25 points: (0-1 incorrect)
Poses are keyframed correctly and the block model moves with the skeleton as expected.
23 points:(2-4 incorrect)
Poses are keyframed correctly and the block model moves with the skeleton as expected.
20 points: (5+ incorrect)
Poses are keyframed correctly and the block model moves with the skeleton as expected.
0 points:
files were missing

Poses (screenshots)
format: Image file
(.jpg, .png, .bmp, .tif)
file names:
p01_model_pose.png
p02_relaxed.png
p03_crouch.png
p04_character1.png
p05_character2.png

25 points: (0-1 incorrect)
Screenshots show the correct pose and all poses are included.
23 points: (2-4 incorrect)
Screenshots show the correct pose and all poses are included.
20 points: (5+ incorrect)
Screenshots show the correct pose and all poses are included.
0 points:
ALL files were missing


Turning in your files

For turn-in we will be using Collect-It on catalyst. You can find it here. You will need to log in with your UWNetID. Each week you will be submitting your files to the appropriate assignment. For this assignment, you will be turning in the following:

  1. Finished skeleton with fingers and bone orientations
    1. assignment_2_skeleton.ma
  2. Finished block model from Part 2, no keyframes
    1. assignment_2_block_model.ma
  3. Pose file from Part 3 with keyframes
    1. assignment_2_pose_testing.ma
  4. One screenshot for each pose
    1. p01_model_pose.png
    2. p02_relaxed.png
    3. p03_crouch.png
    4. p04_character1.png
    5. p05_character2.png

Your files are due in by Thursday August 3, 2017 at 5:00 PM.

You will be required to check in with the TAs during office hours at least once.