Monday, August 27, 2007

Back into the fray

I've been on vacation the past few weeks, and before, as indicated, was mostly spent on my internship and Donkey Hoti. Well, it's nearly time to get back to work, and of course my production schedule is all shot to hell so I'm going to have to redo that as well. So in this entry I'd like to realistically redo my production schedule, as well as discuss the latest Maya book I read, the Sybex book Maya: Secrets of the Pros.

Sept 3 - modeling
Sept 10 - modeling
Sept 17 - texturing
Sept 24 - texturing

OCTOBER 1: HARD DEADLINE FOR FULLY MODELED AND TEXTURED CHARACTERS AND BACKGROUNDS

Oct 1 - rigging
Oct 8 - rigging
Oct 15 - animation
Oct 22 - animation
Oct 29 - animation

NOVEMBER 1: HARD DEADLINE FOR ALL CHARACTER ANIMATION

Nov 5 - lighting
Nov 12 - special effects
Nov 19 - special effects
Nov 26 - rendering

DECEMBER 1: HARD DEADLINE FOR COMPLETION OF ALL 3D WORK

Dec 3 - compositing and mastering
Dec 10 - cushion

Wow, I really have no time at all. That's good to know, I guess.

Okay, now on to Maya: Secrets of the Pros. In all honesty, it is an ancient book, published way back in 2002. I am of course referring to the first edition, which in my opinion is vastly, vastly superior in terms of content when compared to the second edition. I managed to read and more or less digest 8 out of 11 of the chapters in this book.

Chapter 1 is about preproduction for animation, and actually goes into storyboarding, modeling, texturing, and rigging. Eric Kunzendorf emphasizes the need for a great quantity of drawings to help gel your character designs. For modeling, he encourages the student to break out of the single-skin myth and model the character in several parts or several patches. His recommendation is to use NURBS patch modeling with global stitch to get the initial shape, then sculpt large details with polygons, and finally fine details with subdivisions. With texturing, his main point is to watch the seams. Edges at the seams should be about the same length as the corresponding edges of different shells. He spends the most time on his rigging analysis, and his biggest point is that one should have a rigging plan and stick to it. Unlike animation, in which it is quite common to "kill your baby" and delete all your keyframes and start over, you should not second guess the rig you are building, even if you decide the one you're building is no good. With careful planning, you should deduce what animations the character needs, and thus one rigging method should in theory not be any better than another. One mistake the beginners often make is to include too much in their rigs, creating attributes that they end up not using at all. Unless rigging is your focus, you should strive to be as simple as possible and still be able to get the motion you need for animation. Controls should be set up to be easily accessible and keyable. Most importantly, your rigging deadline should be one of the strictest in the entire pipeline, because technically it is still a preproduction phase. Finally, Kunzendorf goes into the process of rigging an arm, from creating the IK system to binding the arm, to using lattices to correct wrist rotation, and using a cluster with painted cluster weights to create a bicep flex.

I skipped chapter 2 which focuses on subdivision modeling, but I may go back to it when I start modeling my dragon.

Chapter 3 discusses Mark Jennings Smith's idea of organix, the replication of complex forms in nature using systematic (and often scripted) duplication of simple primitives. Using the various options in the Duplicate command, and careful hierarchal planning, one can create a kind of digital spirograph that animates in unexpected but beautifully symmetrical ways. He also shows how the same principle can be applied to paint effects through duplication of the stroke curves.

I skipped 4 and 5, which discuss mocap and lip-synching.

Chapter 6 demonstrates a workflow for a large crowd simulation. One of Emanuele D'Arrigo's main points is to always consider where the audience's focus will be. If the focus is not on the crowd, there is no need to micromanage the animation. Also, the emphasis of the set up should be a system that is easy to animate, but also easy to change and easy to scale up or down. Heroes, or main characters, are never part of a crowd sim and are handled separately. Controls need to work on the "crowd level" as well as the "individual level." Avoid using expressions in the final crowd sim, as they need to be updated every frame for every character, regardless of whether or not there is any motion. Use ascii files while working, but binary files for the final rigged models that will be referenced into a master file. The master file should also be an ascii file. Scripts should use an array of undeclared length to store the characters themselves, using the line: string $objList[]=`ls -sl -o -sn`; There should be verbose messaging that records the start time and end time of the evaluation. The GUI procedure should acquire arguments from the user and call the main, command-based procedure. D'Arrigo goes into great (almost exhaustive) detail into different algorithms for differentiating the characters, placing them in the scene, and then offsetting their animations.

Chapter 7 discusses rigid body dynamics. I was actually not very impressed by this chapter. The main points are to carefully plan what needs to be achieved, run the simulation on one machine only and bake or cache the particles, use photoshop if there are problems for just a few frames, avoid reality if it doesn't look good, use collision layers liberally, and always fake and cheat as much as you can. An example of cheating was they put a passive rigid body plane directly above pool balls on a pool table to prevent the balls from jumping up and off the table. They spent a lot of time discussing secondary shatter as key to the realism of a window breaking shot, only to conclude that it probably wasn't worth it and that students should probably stick to primary shatter only.

Chapters 8, 9, and 10 I will have to study again because they are more demonstrative than conceptual. I'll have to work through the examples myself some time in the lab. Chapter 8 discusses how ILM created photo-real waves for the movie The Perfect Storm, chapter 9 discusses how to create a GUI for an animation rig, and is kind of hard to follow without being able to test the actual code (which luckily is present on the CD). Chapter 10 discusses lighting, most of which I learned in Lighting and Rendering 1. A couple key points that I had not previously considered are using intensity curves to control the clipping effect and add character to the light source, using a ramp connected to dmap filter to create dissipating depth map shadows, and using a y-inverted, blurred render as an image plane against a slightly transparent wooden floor to quickly simulate blurry reflections.

Chapter 11 is about distributed rendering. It comes with the executable Socks which handles distributed rendering in a Windows environment. The algorithm is very similar to Smedge, using a master machine in conjunction with a whole bunch of client machines. They actually have code for the master and client processes, which for me was quite intimidating, but it was explained relatively well. I think I will stick to Smedge.

Okay, so at this point I basically have 4 days before my "real" production starts, and thus, in that space of time I want to finish my 3D animatic. That, and I'm sure Omri will be pestering me to finish up the Donkey project. But I like Omri and I like Donkey so I'll just have to make time.

Wish me luck.