DEEP SIX

Workshop - Practical Applications

Fast Character Development
by Paul D. Lewis

  Character Development  
  Outline -  
 

o Developing a 3D character from image reference
o Flexible character setup fast - change character, change skeleton, change geometry - all underway
o Skip over image loading into the camera plane
o Skip over image calibration and alignment
o Re-proportion existing skeleton (talk a little about skeleton pit-falls in Maya) to images
o Setup motion (range animation) on skeleton
o Basic Blob model as volumetric reference (2D becomes 3D)
o Playback of motion with blob model parented to joints to check joint placement
o Tweak
o Create low-res poly geometry to Blob model reference (import different geometry as illustration)
o Auto bind skin - play back with motion
o Recap
o Questions

Focus:

Real-world example of approach to creating a character - scratch to something that works in a real production pipeline FAST.

Points:

Skeleton comes first - and can be changed if a couple of things are considered.

Blob model as intermediate step - better idea of mass of character and exact feedback of where the joints are supposed to be to get the most out of the skin.

Motion can be applied to the skeleton immediately without impact to geometry

Geometry and Texture can be developed in parallel.

Placeholder character that is mathematically correct, can be given to programming immediately to clear up pipeline problems before they start.

Comments:

The future of 3D characters is less and less a poly by poly issue. Muscle systems are THE way to go for real-time, ESPECIALLY in facial animation. This approach supports current techniques and provides a different angle on future characters.

 
  Blow by Blow -  
 

Change as a reality -

Start out with this project being done in Maya 3.0.1 - a frequent project problem; having an application change versions in the middle of a project. The export plug-in's only work in 3.0, so that's were I start.


 

Important setup -

Which came first? Well, my reality is that the skeleton exists already and what I need is to FIRST load it - then the image(s). Once the images are actually in Maya, there's the tedious reality of 'calibrating'. This is changing the image size / position so that they match up. I find it easier to do with the skeleton loaded, because I can put joints in locations that can be visualized from multiple views.

Images are brought in, and adjusted for position - as well as is possible. Then the skeleton is positioned (joint rotation ONLY) to match the photo pose - as well as possible. A keyframe is saved for each view. i.e. Frame 1 is the skeleton zero pose, Frame 3 is Front view pose, Frame 5 is the bind pose, Frame 7 is the Side view...

For presentation speed - actual image plane setup and tweaking are omitted.


 

Working Joints -

First, I need to bring up a 'gotcha' to look out for....

Now setting up the joint positions is a matter of changing bone lengths. Of course, it's the easiest to start at the root and work out. You can change the pose rotations as you go to better match your target image - but avoid moving the image. You may have to move the image plane when you switch to a different view - that's normal, but only work on one view at a time. Periodically, you should check on a perspective view to make sure the joint rotation is what you're thinking of.

Once I have a joint position I like - I lock the translation limits.

Work on one dominant side - then mirror the dimensions. A script is best for this.

Here's an image download from the web that I'm using as proportion reference for an existing biped skeleton. I change only the bone lengths to get approximate size.


 

Range of Motion -

This isn't intended to be nice looking motion - it's just to test your character. Poses I like to use:

  • At attention
  • Classic da Vinci pose
  • Squat
  • Jump Up

Once the skeleton has been given a 'general proportion' - I do these simple poses as different keyframe's. Here's the proportioned female skeleton in the da Vinci pose:

Don't spend time making the motion pretty - this is just to test your joint setup later.


 

Blob Modeling -

This silly looking creation is an important step.

Go to your 'At Attention' pose.

Place ONE NURB sphere on each 'bone' or joint segment (half of the character) to approximate your characters' mass - and then parent that sphere to it's joint.

Now, go to your image view (Frame 3 for front in my example) and adjust the size of the sphere's (SCALE ONLY) to approximate your character's size / shape.

Go to your 'Da Vinci' pose and duplicate / move (translate) spheres to get a better overall shape. Avoid spending time here.

Okay, I spent too much time - the first pass should be ONE sphere per bone - here's about three spheres per bone (the head a LOT more) to get general shape. Again, the spheres are PARENTED to the related joint.


 

Joint Tuning -

Now play through your range of motions - see if your 'blobs' break up, or if you have big gaps that occur. Shoulders and hips/butt are are a pain.

At this point, you can move joint locations (bone lengths) and then offset there blobs to get a better looking move. Once you've got this working - you're almost home.

This next image is the proportioned skeleton that has been keyframed into the pose I think the actual person was in when the image was taken (no adjustment for lens, etc.). With the NURB outlines visible - you can see that size, proportion and mass are a close match.


 

Time for Geometry -

Create a skin however you prefer. At this point you can:

  • Give programming a REAL skeleton that shouldn't change dramatically for the rest of the production.
  • Give the modeling team the blob model in the Da Vinci pose
  • Give the animation team the skeleton with the blob geometry

Example of shrink-wrap low poly geometry to Blob model reference.

This poly geometry was a cube. Half the character is done against the blob model in the da Vinci pose - then the geometry is mirrored. KEEP THE GEOMETRY AS LOW RESOLUTION as you can stand. Use the NURB geometry as reference to help keep you in the ballpark.


 

The following is the same geometry with a simple texture in three poses. The vertex weighting has not been touched at all - this is default binding.

Changes at any point in the process are easily done - and recreated. This allows an extremely fast character prototype to be not just drawn - but interacted with to see if everything the character needs to do is covered in the design and implementation.

 
For AVI - Click Here

© 1996-2007 Deep Six L.L.C.
All rights reserved. Reproduction in whole or in part without permission is prohibited.