Tuesday, November 27, 2012

The Blitzkrieg Animated Filmmaking Method

 The main conceits of this method are interrelated and codependent:
  • holistic thinking - focus on the entire play, not the individual components
  • iteration - work in wide rough passes toward selective refinement
  • momentum - due to the sheer complexity of animated filmmaking, a fairly quick accomplishment/fulfillment feedback loop is necessary to avoid burnout

What follows is an introduction to the general philosophy of the guerrilla filmmaking approach to my zero-budget animated short The Ballad of Sinister. This is concerned with production; pre-production has already taken place. That is, this presupposes that script and storyboard are airtight; scratch-track for dialog and editing of animatic are finished; timing is essentially locked. From the animatic, a Master Element List is derived; this is an attempt to list every individual model or effect on a shot-by-shot basis. The Master Element List should reveal groups of variant assets (rocks, trees) that can be organized into small libraries of "variants" for reuse in many shots. These, as well as "hero" objects and characters, should be the focus of phase 1.

The Phases of Production

1. The Modeling Blitz – This kicks off asset production. Rough out all key assets for use in the animatic sprint. Block out the major characters and props. Little or no textures; try to keep everything simple lambert shaders. Sets and set dressing are created as part of the next phase, but to allow that phase to keep momentum we do this first, creating a library of characters and major props to quickly populate our shots. Give yourself a time limit on this, or it could go on indefinitely.

2. The Animatic Sprint – kicks off scene layout. Replace all storyboard frames with their likeness in 3D by any means necessary. Shortcuts will be invented, but you will be surprised what shortcuts end up being “good enough” for the final cut and save lots of time. Sets are built on the fly through a variety of techniques, even using the storyboard frame as a matte painting, separating it into layers placed on 2D proxy cards in 3D space. From these more refined mattes can be derived during the next phase. Each finished shot should end this phase with
  • the soundtrack queued and imported into the shot
  • the camera animation roughed out
  • all animated objects in the scene blocked out, at least with proxy objects
  • set defined with simple geometry (build on-the-fly from a camera POV)
  • simple set dressing to set the mood
  • simple lighting consisting of a keylight and a general ambiance provided by final gather or a GI-type rig of fill lights. Special lighting conditions can be roughed in (for silhouettes, etc)
  • render settings set up for low-resolution sequence renders to generate work reel dailies
  • sequence data folders set up. Shots within sequences can be individual Maya files or an entire sequence can be one Maya file with multiple cameras to switch between. A rough file referencing hierarchy is established.

3. Asset Refinement - successive phases of refinement are applied to scene assets and characters. The file referencing hierarchy allows for objects to be worked on in the context of a shot so that effort can be placed primarily on the camera-facing parts. During this process, a weekly “build” - a complete rendering of the work reel -  should be processed and reviewed, to assess progress and motivate continuous refinement.

·         Character development – characters are modeled, UV’d and rigged with careful attention to (nearly) quad-based geometry and proper surface deformation. Blend shapes are also modeled. R&D is done for special-case rigging challenges, such as long hair and loose cloth.

·         Effects development – special effects are created using the rough scenes from the Animatic Sprint – fluids, foliage, etc. R&D is held to the rule that simplest solutions are tried first and complexity enters the equation only as necessary.

·         Set model and shader development – set dressing and sets are refined in passes of increasing complexity until a satisfactory look from camera POV is reached. Shaders are introduced whenever necessary to describe the shape of an object or the look of the sequence.

4. Animation – the scene is animated. This includes character animation, prop animation, refinement of camera animation, and integration of any kinetic-type effects (atmospheric effects can be integrated at phase 5, next).

5. Lighting/Rendering setup – render passes are set up. As part of the beauty pass, any remaining textures are painted. Object shader parameters are tweaked along with light parameters to achieve the correct per-object look. Any remaining matte paintings or sky dome textures are inserted. Environmental effects are created, simulations cached. Render layers are created for at least these passes:
  • beauty – textured objects with all direct light sources (i.e. lights)
  • depth – the depth pass is for post-production depth-of-field
  • ambient occlusion (or final gather) – darkens corners and contact shadows; all-white surface shaders are used so pass can be additively comped
  • mattes – every render layer should have a mask to allow for separate composite handling
6. Comp and Post – a compositor like After Effects is used for compositing, motion blur and depth of field. Any 2D effects are inserted here.

7. Editorial – final frames in work reel. As a final pass, titles and transitions are inserted. Final dialog and sound effects are created and added. Score is finalized.

Result: Maximize Efficiency and Keep Momentum

The general conceit of this method is that you focus always on the big picture – the whole film – and avoid getting caught in the details until the final passes. This allows for the whittling down of an uber-complex project into manageable stages. It also avoids the common pitfall of focusing on one detail at a time until the whole project grinds down (or gets shelved) from a perceived lack of progress. Also, by organizing things into sprints of one kind of activity, it allows small-team multitaskers to keep focus on one thing at a time. 

The Stages of Pre-Production

This technique presupposes a long time spent in pre-production, resulting in a fairly complete storyboard of at least one frame per static shot, and multiple frames describing the extremes of action within a moving shot. Also, the story itself is “locked” – most editorial decisions have been made in cutting the story reel and the story team have come to a consensus that it is ready to move into 3D. At least as much time should go into pre-production as production.
The stages of pre-production are roughly:
  • Story development – which could encompass an Outline expanded to a Treatment expanded to a Script developed into a rough storyboard and then a presentation storyboard. Put this into an edited work reel cut to a temp score & scratch track dialog.
  • Project development – budget and milestones drawn up, technical resources gathered (like computers and software and personnel) and a contract written up (if independently-produced, this contract can be symbolic)
  • Visual development – research, practice with the tools, scrapbooking and gathering of reference material, character and environment design, and finally key art created for each character and each sequence. These constitute a Style Guide or Production Design Bible, the main reference point throughout production.

Sunday, November 25, 2012

The Sinister Foliage Method

This goes way, way back to the conception of Sinister ... I knew I wanted to use the (then) brand-new medium of computer animation, and I was looking for analogues in traditional media. That's when I first discovered Eyvind Earle, best known as the production designer for Disney's Sleeping Beauty.

His style was meant to evoke tapestry art, in high fairy tale tradition. He played geometric and organic forms against each other and used solid areas of color. I felt this would be a suitable visual target for the computer graphics of the time. (A little history - I first started Sinister in 1999, so graphic capabilities were primitive by today's standards, and I was searching for a look that was achievable without compromise.)

One thing Eyvind discovered was that complexity can be visually inferred by starting with a dark mass and building toward lighter values with successive layers of pattern.

Even with today's computer graphic capabilities, there is a lesson here about economy and process approach for environment artists who deal daily with complexity issues, especially when depicting foliage and other organic forms. I decided the abstract look of Sinister would be one of simple layering of repeated patterns. I would start with a dark base - representing the inner shadowed core - and around that build one or two more layers of successively brighter elements, representing the outer illuminated layers. The benefit of this approach: you can handle the dark inner layers in very low resolution, saving the processing cost of higher-res elements for the outer shell where detail will be noticed. Here's a simple example based on Sinister's "target tree" - the tree he uses for target practice.

First, I build a lowpoly mesh in Maya by extruding polygons. I usually block things out according to storyboards frames such as those above, and then export individual meshes to their own referenced files. Here's the base mesh for the target tree in Maya:

Next I export this in .obj format to ZBrush, where I first build up the trunk.

After the trunk begins to stabilize and I do a couple test exports of the normal map (FlipG and FlipV!), I focus on the foliage. Switching to the subtool representing the topiary shape of the foliage canopy, I dial in some noise using the Tool>Deformation menu.

Under the Fibermesh menu, I click Preview. At first, it looks like a bunch of hair. But with careful tweaking, we can make Fibermesh "leaves" to model convincing foliage (at least for the inner layers).

Adjust Fibermesh settings: Turn Maxfibers way down, Length way down, Slim, Twist and Revolve low or off, raise Coverage. Add a positive Imbed value to set leaves "into" the base mesh shape. This is good for the inner leaves. Keep Segments low (3) and adjust Width Profile for leaf-shape. Make the color black at the base, dark green at the tip. Hit Accept to generate foliage mesh subtool. Under BPR Settings, turn off Fast Preview and lower Sides to 2.

With the fiber subtool selected, go to Tool>UV Map and click FiberUV with map size 256 or 512. Under Texture Map click New from Polypaint

This will make every leaf share the same UV map, and write a simple gradient texture from base to tip based on the fiber color values. You can later open this texture in Photoshop to create a leaf texture that will be applied to every leaf at once!

Hit GoZ and send this inner canopy to Maya. Save it out as a .ma file and close Maya.

Go back to the original canopy shape subtool and repeat each of these steps for the outer canopy, but adjust Imbed to a negative value (so leaves will rest above the base mesh, outside of the dark inner canopy), lighten tip color to a light green, and consider lowering Maxfibers for sparser leaves and/or raising Segments for higher-resolution leaves.

After you've got all this assembled by importing trunk, inner, and outer canopy into a composite Maya scene, you should be able to do a Mental Ray render that looks pretty similar to your ZBrush master file. The poly count is reasonable, and provides good interaction.

Now, if you want to do something fancier, you can model any leaf-shape as a separate piece of geometry. Then instance it to all of your Fibermesh fibers. Custom leaf shapes! Geometry>Modify Topology>Micromesh>select mesh to use as leaves. BPR will render each fiber as the Micromesh (custom leaf) shape. To create permanent geometry out of the Micromesh (to export to Maya, for example), Geometry>Convert BPR to Geo.