GDC 2011 - Thursday
I started out the day by attending a session about creating great characters. It was presented by Matthew Lund from Pixar. The first part of the talk was about how to "find" the character. Matthew suggested that in order to create a good story, you first have to develop the character and define who he is. Once this is done, you can create a story around things that happen as a result of his personality traits. In the story, the character's fears and passions should be what drive his decisions, and supporting characters should be designed so that they help bring out the character traits in the main character. Over the course of the story, there should be an inner conflict in the character and an outer conflict which is the main plot. Matthew stressed that the crux of the story should be on the inner conflict rather than what's happening around the character. In the end. the way that the character is changed as a result of the inner and outer conflict is what illustrates the theme of the story. This was an amazing session and I was impressed by how well Matthew was able to boil down and define exactly what it is that creates a meaningful character and a strong story.
Next, I attended a talk by Jeremy Ernst on the facial rigs he developed for Gears of War 3. The facial rigs have several layers. The first is a low resolution cage mesh that roughly fits the shape of the character's face. Morph targets are created for this cage for each of the major muscle groups in the face. The next rig layer consists of helper points that are pinned to key locations on the cage mesh and move with it and it is deformed with the morphs. The next layer is called the offset rig. It's a set of control shapes that go along for the ride as the helps move with the morphs. This layer exists so that the animators can go in and fine-tune things after they've created the general pose with the morphs. Finally, the actual face bones that are used in the game are driven by the offset shapes. The powerful thing about this rig setup is that the whole system can be shared to any character by simply creating a new morph for each character that fits the face of this character. When that morph is dialed in, the rest of the rig goes right along with it and fits itself to the new character. Since the animation data is stored as curves on the morph targets, it can be easily transfered from one character to another.
After lunch, I attended a talk by Mike Flaven - a graphics/engine programmer at Volition. Mike talked about a new rendering technique they used for Red Faction: Armageddon called Infered Lighting. This technique is similar to deferred lighting. In the first pass, several textures are written to g-buffers including z-depth, normal, and specular power. In the second pass the lighting is created based on the light sources in the scene and the g-buffer data. Finally, in the third pass, non-light information is rendered, such as diffuse color, reflections, emissive, etc. The advantage of this technique is that lighting complexity is decoupled from scene complexity - so the system is able to handle over 100 light sources without issues. Mike also discussed some clever techniques they developed to render the lighting pass at a lower resolution to gain performance and also correctly handle several layers of transparent objects.
Next I attended a talk by John Bellomy from Naughty Dog about the structure and format of their animation blend trees and state graphs. The main interesting point that I gained from this talk is that they define a main motion graph for an NPC, but then on top of that, they're able to define a smaller set of override animations so that they can make an individual character look unique without having to create a whole new graph. Each character can have multiple override sets.
The last talk I attended was given by Donald and Geremy Mustard about the art that they created at Chair for Infinity Blade. It was pretty cool to see all of the little tricks they used to squeeze as much graphical polish as possible out of the iPhone and still maintain the frame rate. I was surprised to hear that the iPhone has a ton of graphics memory but is weak on draw calls and fill rate. This meant that the team had to be very careful about the number of objects on screen and particle counts had to be kept low, but they were free to make high res. textures and light maps.
I finished up the day by attending the speakers reception. It was create to meet several of the people who's talks I have really enjoyed or who's talks I'll be attending on Friday.