Nathan Shipley
Stucco's Mambo Documentation

3D Character and Environment
Modeling, Texturing, Lighting, Rigging, and Animation using Maya.

Post Production (Color correction, Titles, Compositing, Editing)
using Adobe After Effects, Premiere, and Final Cut Pro.

Sound Effects/Music
Production and Editing using Sound Forge.

 

This page documents the process that I went through to create Stucco's Mambo. This animation was created almost entirely without the help of any tutorials or books. I mainly used the online help documents provided with Maya and good, old-fashioned trial and error. Thus, the process that I went through to get to my finished product is rather long and winding. However, now that it is all over, I've learned a vast amount more about Maya than what I started out knowing.

Please view the finished animation at http://php.indiana.edu/~nshipley/pig/

Links to screen shots are provided to help explain the process.

> Paper Notes
>
Modeling
> Rigging
> Animation
> Rendering
> Sound Editing
> Post-Production
> Video Editing

 

 

Stucco's Mambo

1 - Pig Model Created in Rhino.

2 - Model brought in as polygons to Maya.

This, seemed to be working swimmingly, but eventually lead to a host of problems. These were not initially apparent, so I began the process of rigging the pig character with the intention of making finishing touches to the model afterwards.

Rigging
Skin Weights

However, once I began to do some test renders of the pig body in a pose, I saw that the polygons would not render correctly in Maya.

Bad Polygons

This was a problem all over the model, not just on the nose of the pig. After much finagling, I moved on.

3 - Model imported as NURBS to Maya.

This also had all sorts of problems due to Maya's problems with trim surfaces. Some surfaces did not display/render and others had nasty black seams that couldn't be stitched together.

Surface that wouldn't render.
Nasty black seam that wouldn't go away.

I've tried everything available, possible, logical, and illogical to get a model to transfer from Rhino to Maya without using polygons, but nothing seem to work. I even tried using Alias as an intermediary converter between the two programs, but it was also no help. So, I finally gave up on this, too.

4 - Nathan finally learns to model with Polygons in Maya!

To aid this process, I completed the world-renowned PolyShip:

Polyship 1
Polyship 2

5 - Create a polygon model of the pig to convert to subdivision surfaces in Maya!

I started by taking a screen shot of my viewports in Rhino to use my existing model as reference:

Rhino screen shot

I cut this image up in Photoshop and mapped the images to the viewports in Maya. I then started modeling with a simple polygonal sphere.

Step 1
Step 2
Close up of the ear

The polygonal modeling isn't finished yet, but here's what I've got so far:

View 1
View 2

6 - Convert the polygons to subdivision surfaces.

February 18

First I mirrored the geometry.

Unmirrored
Mirrored

Then I clicked Convert > Polys to Sub-D!

What I clicked...

And then the final result:

Render 1
Render 2
Render 3

 

 

 

Some paper I used when animating:

Comparison of human leg to animal legs that I used to help get the skeleton right.

My (very) rough timing chart for a 3 position walk cycle. This ended up not working at all, but it was part of my process in learning to do walk cycles.

A rough timing chart for the feet in a 4 position walk cycle. This was the basis for what I ended up using for Stucco's walk cycle.

Printout from a webpage about how to Mambo! I used this first to teach myself how to Mambo and then I applied it to Stucco. The most fun part of this entire project was probably watching the video tape I made of myself dancing the mambo on all fours in our hallway. It's quite priceless, but I charge top dollar to see the tape!

These are the default positions for some Stucco's inverse kinematics controllers. This sheet of paper proved invaluable when I was animating and needed to get Stucco back to his default position.

This is a typical page I would write out before attempting to animate a shot. I quickly learned that the animating process went much smoother if I visualize what needs to happen in my head (or physically act it out), then write it down, then actually start making keyframes in Maya.

Not only did I have to get the animation to look good, but I had to time the animation to music and sound effects. So, the best way I found to do this was to open my Wave files in a sound editing program and find out exactly where all of the accents and hits are for a shot. I would then write these times down. For example:

Timing chart for Stucco nudging and kicking the record player
Part of my timing chart for "Oink Oink Mambo"

Of course, what animator's monitor would be complete without a handy dandy 24 Frames Per Second to hundredths of a second conversion chart taped to the side of their monitor? This thing was invaluable. Basically it saved me the time of using a calculator to convert my seconds thinking mind into frames.

 

 

 

Feb. 26

Attempt adding eyes to the model.

Next, I tried creating different types of eyes on the model. First, I experimented with altering the polygonal geometry that the subdivision surface was created from.

However, I wasn't happy with how this looked.

March 5

Eyes and Mouth added.

I went back to my polygonal object and made changes to create eyes and a mouth. I split the polygons and moved some points around to create the recession for a smiling mouth. I also created some NURBS spheres for the eyes and grouped them with the pig's body.

Polygonal mouth cut-out
NURBS eyes
Side wireframe view of mouth and eyes

 

March 6

Tail, Skeleton, Binding, and Skin Weights... Mostly for naught.

I also extruded a semi-curly tail from the back of the pig.

Tail

Throughout this entire modeling process, I was constantly converting back and forth between Subdivision surfaces and polygons to see how my model would look smoothed. I didn't know about Polygon Proxy mode until later in the process. (However, using Polygon Proxy mode seems to make things run a little too slow to be as usabale as I would like)
Eventually, I got the model to a way I liked it and kept it in Subdivision surfaces.

Finished Model

Then I moved on to rigging the character. This was by FAR the most arduous part of the pre-animating phase of creating the finished product. If I went back and did the same things again, I'm sure the process would go much quicker now. However, not knowing what I was doing, I think I ended up painting the skin weights of the model alone about 10 times. (Try it sometime. Not fun at all.)
Here's my first IK chain for the model, which proved later to be inadequate.

First IK Chain
Close-up of Front Leg Bones
Hypergraph view of the Skeleton

I realized that I would not be able to use the default weighting that Maya's Smooth Bind created. The pig simply wasn't deforming correctly around the legs and head. Thus, I began the first of many times painting skin weights.

Skin Weight Painting

At this point, I naively thought that my character was ready to animate. So, I tried a walk cycle!

Cycling in the Graph Editor

Much to my dismay, it didn't work. Things just didn't look right. My cycle itself needed refining, but this wasn't the main problem. I was getting strange deformations with the legs and didn't have much control over the model.

Strange Deformations - Front View
Back View - Wireframe
Back View - Shaded

I tried repainting the skin weights in numerous different ways, moving and rotating the joints, and playing with the controls of the IK chain, but to no avail. I still got strange deformations. On top of this, the foot did not move correctly with the rest of the leg. There was no way to make it flat before it planted on the ground when the leg got to the front part of it's cycle in a walk.

 

March 15

New Skeleton, More Skin Weight Painting, Eyes

It quickly became apparent the the skeleton I had created was inadequate. So, I made a new one. This one has more bones for the legs, allowing the legs to stretch out. There is also a "foot" bone that lets me keep the foot flat on the ground if I need to.

New Skeleton (Wireframe, side view)
Hypergraph view of the Skeleton

Of course, I needed to repaint the skin weights for even more bones.

More Skin Weighting

I then realized that the way I had created the eyes was not going to work. They needed to be part of the rest of the body so they would move with rest of the head. The way they were set up as simple grouped objects does not work with the skeleton controling movement of Stucco. So, I discovered Polygon Proxy mode, and tried to edit the pigs control cage to make similar looking eyes appear.

Eyes that don't stay put
Polygon Proxy eye attempt

 

March 16

Redoing the Eyes and More Skin Weight Fiascos

The eyes created in Polygon Proxy mode just didn't look the same. I needed a way to use the spheres I had created. So, I attached the surfaces together so they are all one happy subdivision surface.

Subdivision eye spheres
The attached geometry

Of course, attaching the eyes to the surface created an entirely new surface that the bones would need to deform. And in order to attach the eyes in the first place, I needed to delete the history of Stucco's body. Which meant painting the skin weights again!

I thought I would try and save myself some time by copying the skin weights from the model I had just done before I attached the eyes because it took a very long time to get them right. First I tried exporting the skin weights from the old model and importing them on the new one after a fresh smooth bind. No luck.

Then I thought I would try the Copy Skin Weights function. I tried opening a scene with the old pig, copying, loading my new pig, and pasting. No luck. I then even tried importing the old model into the same scene and copying and pasting within one scene. No luck.

Attempting to copy weights

My will eventually gave it's death kick and I broke down and painted the skin weights. Again.

My Will Broken

I eventually got them right. I just had to be careful how I moved the back legs otherwise I could get some wierd deformations.

Wierd Deformations

From this point, I gave animating another walk cycle a try!

Beginnings of the new walk cycle

 

March 17

A Walk Cycle, the Trax Editor, and Some Texturing.

After considerable effort, I finished off a 20 frame walk cycle. I was able to loop it and adjust the timing using the Trax Editor.

The Feet Cycled
A shaded view of the feet moving.

Of course, walk cycles consist of more than just moving legs and feet. The head needed to bob and the spine needed to bend. I figured out the timing for these and added them to the cycle.

Trax Editor with Cycled Head Bob and Back Bend

I can also go in and adjust the curves for each instance of the cycles by changing one graph in the graph editor.

The Graph Editor curve for the basic Back Right foot movement.

I now experimented with some basic surface materials for the pig and his eyes.

Hardware Textured View

 

March 18

At this point, I began to think more about the environment that my pig would be dancing in. I did some renders on plain white floors. I also tried creating some straw with Paint Effects for Stucco to walk through.

I also experimented with using Poses in the Trax Editor. (However, I didn't understand how characters worked yet, so the poses didn't do me much good.)

 

March 20

On the 20th I tweaked the skin weights on the model yet again. Showing my animation of Stucco walking through the straw drew some complaints about the way his legs bent.

I also wanted to add some life to the ears and tail of the model, so I played with adding Jiggle Deformers to them. However, I ended up not using the Jiggle Deformers because they didn't look realistic. Even if I turned down their influence significantly, they didn't seem to be adding much to the animation.

Stucco with Jiggle Deformers on his Ears
A Jiggle Deformer for the Tail

 

March 21

Today I learned how to smoothly blend between clips in the Trax Editor. Again, I still didn't understand how to use the Character tools effectively, but I was able to use blend clips to make Stucco's head look left and right.

Because I couldn't figure out poses, I tried creating 1 Frame clips to blend between to create motion. This was somewhat successful, but didn't look very good.

March 24

Creating the Fisher Price Record Player

I had worked on the Record Player previously to the 24th, but the model I created wasn't working properly. eBay provided a plethora of pictures that I could use as reference for the record player.

I tried using Boolean Differences on a polygonal cube in Maya to get the look I wanted, and seemed to be having pretty good luck. The record player was taking shape. However, Maya didn't seem to be able to deal with the Boolean surfaces when I went to smooth the edges of the record player to get a softer look.

I tried everything I could think of to keep the shape that I had created. Deleting the history, merging verticies, converting to a subdivision surface, importing the polygons into Rhino and trying to filet the edges, etc, etc, etc... All was to no avail. I couldn't get the look I wanted. So I finally threw in the towel and re-modeled the whole record player from scratch in Rhino.

As usual, Rhino and it's superior NURBS modeling tools were there for me in a pinch. I was able to use boolean tools, lofting, and an entire gambit of goodies to get the Record Player looking just like the vintage Fisher Price that we all know and love. When I was finished, I simply exported and OBJ file from Rhino as Polygons and took 'er in to Maya!

At this point, I began working on the texture for the Record Player. After a couple of hours, it was looking almost like a real Fisher Price.

March 25

Eyebrows and Mouth Deformations

Today I created a wire deformer for the mouth to give Stucco a little more expression.

I also added Subdivision surface eyebrows. These were created from polygonal cubes that were rotated, scaled, and stretched about until they formed the rough shape I wanted. After converting them to SubD surfaces, they looked nice and smooth and ready to animate!

These eyebrows were grouped with the main pig group, but were not attached to the same surface. (I really didn't want to repaint the skin weights.) This was a bit of a problem and a bit of a blessing.

The problem was that, during animation setup, I would get all of the head movement, rotation, and stretching (basically, the things that give Stucco life) just right and then I would have to go back and match the eyebrows to move exactly with the head. This was a very tedious process going back through and adding the keyframes.

On the other side of the coin, having the eyebrows as separate objects and adding movement to them later allowed me to give them a little more character. If they moved exactly with the eyes they might not seem as realistic as how I moved them. For example, if Stucco is looking down then he looks up suddenly, the feeling of quick motion is emphasized by his eyebrows moving 2 or 3 frames behind the rest of his head. They have to "catch up" and tend to bounce about a bit. At first, I tried to create an Expression that would match the location of the eyebrows exactly with that of two points on the face. I had mild success with this method, but ended up being happier with creating keyframes. I also got fairly quick at it by the end of the animation.

 

March 26

The First Shot of Stucco and Progressive Saving

Using the walk cycle I had already created, I began working on the first shot of Stucco in the animation. As this was the first animation I did with Stucco (and the first complex character animation I had ever done), I was learning the process as I went. I ended up with 5 progressively saved scene files and approximately 5 hours of work.

Regarding what I refer to as "Progressively Saved" scene files... When I'm working on big projects, I like to save very often. I'm in the habit of hitting save without thinking about it every 5 or 10 minutes. What I also do is save the scene file with a new name after I have made substantial changes in the scene. Then I end up with a file listing like this:

C:\3D\PIG\March26\PigEntrance1.mb
C:\3D\PIG\March26\PigEntrance2.mb
C:\3D\PIG\March26\PigEntrance3(changedTexture).mb
C:\3D\PIG\March26\PigEntrance4(eyebrowWork).mb
C:\3D\PIG\March26\PigEntrance5.mb

Typical Directory of scene files

I'll try to put notes in the file name so I know whats different about the later scene files from the earlier ones. This is also useful if I need to go back and get something from an older scene file or see how something was before I changed it. Once a file is completely finished and ready to render, it goes in it's own directory... i.e.

C:\3D\PIG\READY\PigEntranceREADYTORENDER.mb

Screen shot of my "READYTORENDER" directory.

While this isn't anything complicated, it does help keep big project directories managable.

March 30

More work on the first shot of Stucco. (4 scene files, approximately 2 hours)

March 31

Still more work on the first shot. (12 scene files, 5.5 hours)

April 1

The first shot is finally finished after 3 more scene files and 2 more hours of work. In total, all of the animation of Stucco, his eyebrows, and the camera took more than 14 hours and I made 24 scene files as I went through. Luckily, I got much quicker at animating Stucco as I progressed from here.

April 3

A New Environment, Lighting, Faked Radiosity, Cacti, and More Animation

I did a render of the first shot with Stucco walking on a boring off-white floor. I wanted to create a good environment for him to exist in. The off-white floor certainly wasn't working.

Thus, I created a new environment in Rhino.

Next, I set up some area lights and played with some faked radiosity renders with rayDiffuse for Maya. However, with the evaluation version of rayDiffuse, I can't bake the lighting to the geometry. Too bad! It looks really good.

Then I did the final lighting that I would use for the room. This consisted of three large area lights and a multitude of small point lights with varying color, intensity, and fall-off values to create highlights and a much more realistic and appealing environment.

I also created a cactus that I thought I might use to spice up the environment in Rhino. (Okay, it's technically a succulent because I didn't have time to do spikes.)

I textured the cactus in Maya and added to a scene file to see how it looked.

In the end, however, I decided that I wouldn't use the cactus because I didn't like the way the colors combined with the rest of the scene. I played with numerous different colors for the cactus and tried to tone it down significantly, but eventually decided that it didn't really add anything too valuable to my scene.

Then I began working on the second shot of Stucco in the animation.

April 4 - April 9

From this point, I was working very hard animating all of the shots and rendering them by the 10th. The best way to see my progress through these days it to watch the finished animation ( http://php.indiana.edu/~nshipley/pig/ )

However, a brief timeline of my progress would look like this:

April 4

- Finish second shot of Stucco

April 5

- Finish shot of Stucco approaching, sniffing, and kicking the record player
- Shot of Stucco's reacting to the record player stopping
- Close up shot of Stucco's leg kicking the record player
- Begin working on the record player hitting the wall

April 6

- Finish shot of record player hitting the wall
- Shot of Stucco's "Uh-oh" reaction to the kick
- Shot of record player starting up again
- Learn how to use character in the Trax Editor, create Trax character for Stucco

April 7

- Experiment with adding a sombrero to Stucco for his dancing (including an attemt to use dynamics and soft-bodies to keep it on his head while dancing. There certainly wasn't enough time for me to complete this tangent before the 10th).
- Hours and hours spent on getting the timing just right for the Mambo.
- Animate a simple sphere moving around to simulate hits in the song for dancing.
- Video taped myself dancing the mambo on all fours... hehe
- Got Stucco to Mambo!
- Experimented with different ways to shatter Stucco
- Create the shot of the record player going crazy and catching on fire (got to use expressions for this one!)

April 8

- Rendered the still sequence for the ending

April 9

- Render the shattered Stucco
- Whip together a Money bag in Rhino and render the record player with it.

April 10

DONE!!!