Monday, August 3, 2009
Sly & Beaker
This is the story of two goblins and the incredible journey they underwent from concept to 3D realization. As of this writing, they are still a work in progress, as they don't have facial rigs yet, but I thought I'd take a moment to share part of the character pipeline in Ballad of Sinister with you.
Sly and Beaker are two "crowd goblins" in the story, inspired by the above image from the storyboard. They are "B" characters that only appear briefly in two shots, and only from the waist up. For this reason, I decided to use the same body for both of them to cut down on production time (I have over 50 distinct characters to create, so anywhere a shortcut can be taken, I take it). I begin to rough in the shape by creating large extruded polygon blocks in Maya. Here it is after a couple hours work:
...and after four hours:
..and at five hours, the basic form is in place.
Next I begin the surfacing process, which is the most labor intensive, as surface characteristics carry most of the detail in any 3D model through a combination of color maps, displacement/bump maps and specular/gloss maps. Whereas the overall silhouette is carried by the model, surfacing provides the visual cues that convey its material properties. I use a variety of tools for surfacing, usually following this workflow:
Maya --> UV Layout --> Maya --> ZBrush --> Maya --> Photoshop --> Maya.
First I export an OBJ file from Maya (a basic 3D model file that has become a popular file exchange format). I load this into Headus UV Layout to utilize their superior UV tools. UVs are a method of mapping 2D surface coordinates to 3D objects in preparation for applying texture maps. Here is a UV snapshot after unfolding all the surfaces in UV Layout:
Not the greatest example, because these UVs are in too many pieces and not optimized, but since Sly and Beaker are B characters I am only concerned that there are no overlaps (which ZBrush abhors).
I import the newly UV'd OBJ into Maya and clean it up, then export again for ZBrush. Here it is in ZBrush:
I use ZBrush mainly to generate normal maps, for surface features too small to model (wrinkles and folds and bumps), preferring to wait to do the color maps in Photoshop (which has a much better toolset for the other types of maps). To sculpt the normal maps, I need to divide my model about 4 or 5 times (higher resolution=more polygons=more detail). Here it is divided but not sculpted:
Using a variety of brushes (but in this case mainly the Rake, Elastic and Clay Tubes brushes) I add surface features:
Upon exporting from ZBrush, the models look like this:
But what is exported back into Maya isn't the model, but a "normal map," which is a 2D representation of 3D data that will distort the surface of the model in Maya. The map looks like this:
...but when applied to the model in Maya it looks like this:
Remember, this is the same low-rez model we saw before, but it looks much more detailed thanks to the miracle of surface normal perturbation. (Don't worry what that means.)
I then rough-in a color map using Maya's own 3D paint tools - basic color is what I'm after. I'll refine it later in Photoshop.
Next I set up basic shaders in Mental Ray. I use the sss_fast_skin shader in Mental Ray because it is a good balance between fast and full-featured subsurface scattering (the scattering of light in a translucent material creating an interior "glow" when backlit). I throw some lights in the scene to try it out and test render:
See the subtle translucency in the skinny parts of the body? You can include indirect lighting (Final Gather) in the subsurface scattering evaluation, for an over-the top effect:
Great for 3D gummy bears.
Now I export an OBJ for Photoshop CS4, which can import 3D objects (and in CS4 you can paint right on them!) This is the best place to do map tweaks since you can use layers and masks and all the other goodness Photoshop is known for. Hooray for CS4. (One catch -it has to be the very expensive "Extended" edition of CS4.) Also in CS4, I paint and export maps for specularity/glossiness and any other maps I need - very easy to do by duplicating then modifying layers in Photoshop and saving them out accordingly.
Back in Maya, I hook up all the maps and then turn my attention to rigging. I use a cobbled-together library of rigging scripts to automate the body rig procedure, doing the overall biped first and then linking in various appendages such as ears and tails.
I always put off facial till last since it takes the longest and I can go ahead and start blocking out my scenes with the basic body rig. I do some quick skin weighting and then a quick animation to test things out. If it's a go, I can start referencing this guy into shots of the movie at this point. I do most of the layout of the movie with the characters at this stage, with the idea that I will add facial later, after lighting but before animation.
So that's a rundown of the basic character creation pipeline for Ballad of Sinister. Here they are in all their ready-for-3D-layout glory: