CSE 490 J - 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/2017/prefs/shelves/
  • Files in iconsDocuments/maya/2017/prefs/icons/
  • Files in scriptsDocuments/maya/2017/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

Students may optionally choose to build their own fingers skeleton using the instructions here: finger skeleton instructions

Otherwise, proceed with the following instructions to import a pre-made hand.
(Note: this choice does not affect how the assignment is graded)

 

1. Download the pre-made hand skeleton: assignment_2_hand.ma

2. Import the assignment_2_hand.ma into your Maya scene.
(this is starting from the finished Assignment 1 scene - remember to save as a new copy)

  1. File > Import [options]
  2. Set the import option Use namespaces to true
  3. Press Import and browse for the assignment_2_hand.ma file that was downloaded
    1. Note that the imported scene objects have namespaces. (The filename is prefixed to all imported nodes to prevent name clashes)
  4. Remove the namespace using the Namespace Editor - Windows > General Editors > Namespace Editor
    1. Delete the "assignment_2_hand" namespace
    2. In the pop-up dialog, press Merge with Root

3. Scale the hand to match your character's size

  1. Select the imported hand group called right_hand_grp
  2. Press "r" on the keyboard to activate the scale tool
  3. Drag the scale manipulator to resize the hands
  4. Freeze transformations (this will lock in your new size as scale value [1, 1, 1])
    1. With the right_hand_grp selected press Modify > Freeze Transformations

4. Parent the imported hand to the hand on your character skeleton

  1. Select the imported hand joint - right_hand_bind_joint
  2. Multi-select the same-named hand joint on your character skeleton
    1. Note: in the Outliner, holding down "ctrl" allows you to multi-select individual objects
  3. Press "p" to parent
  4. Align the imported hand to the character's hand
    1. With the right_hand_bind_joint selected, press ctrl-a to open the Attribute Editor
    2. Set Translate and JointOrient to 0, 0, 0
  5. Parent the imported fingers to your character's hand and delete the imported hand
    1. Shift-select the base finger joints in the Outliner
    2. Middle-click drag them onto your character's hand joint
    3. Select the imported right_hand_bind_joint and press Delete on the keyboard
  6. You can now delete the empty group: right_hand_grp

 


 

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 pelvis orthogonal to world space.
    • Select center_root_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.  
    • Re-parent the children joints to the root (spine and legs)

  2. 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. Select right_clavicle_bind_joint
    2. Unparent the shoulder from the clavicle
      1. Select right_upperarm_bind_joint and press shift-p to unparent
    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

 

Here is a review guide for joint orientation on character skeletons:

 

Joint

Orientation

Directions

Pelvis joint
center_root_bind_joint

Orthogonal to world space

Unparent the root joint from the skeleton and unparent its children.  In the Attribute Editor: Rotate should be 0, 0, 0 and Joint Orient should be zero or multiples of 90. When finished, parent the joint back into the skeleton

Chest joint
center_spine_3_bind_joint

Orthogonal to world space

[the same as above]

Head joint
center_head_1_bind_joint

Orthogonal to world space

[the same as above]

Elbows and Knees
right_lowerarm_bind_joint
, right_lowerleg_bind_joint

Coplanar to shoulder, wrist
Coplanar to hip, ankle

In the Attribute Editor: Translate should be 0 on Y and Z, but X can be non-zero.  Rotate and Joint Orient should be 0 on X and Y, but Z can be non-zero.

Hand joints
right_hand_bind_joint

Inline with lower arm

In the Attribute Editor: Translate should be 0 on Y and Z, but X can be non-zero.  Rotate and Joint Orient should be all zeros. 

Feet joints
right_foot_bind_joint

World space

After unparenting the foot, all Rotate and Joint Orient channels should be 0.

 

  1. Finalize the skeleton
    1. Mirror the skeleton
      1. Skeleton menu -> Mirror Joints [options] YZ, Behavior
    2. Freeze Transformations
      1. Modify menu -> 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 Canvas 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 Canvas. 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 July 26th, 2019 at 11:00 AM.

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