Upcoming Events
Southwest Gaming Expo
11/20 - 11/22 @ Dallas, TX

Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

Global Game Jam
1/29 - 1/31  

More events...


Quick Stats
6641 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   
Autodesk 3ds Max 9: Advanced Techniques for Next-Gen Pipelines
Posted March 14 7:01 PM by Kelly Murdock
On Tuesday, Laurent M. Abecassis presented a full-day session entitled, “Autodesk 3ds Max 9: Advanced Techniques for Next-Gen Pipelines.” Laurent has many years of experience and has worked for multiple studios including Microids, Fly Studio, Production Pascal, and Digital Dimension. He current works at Di-O-Matic, a plug-in company he help to found. This presentation presented a vast array of examples specific to game development pipelines.

Laurent began the session with a discussion of how 3ds Max has evolved over time to its current state. Some of the highlights that are particularly important to the games industry include the Skin Wrap modifier, the ability to render to textures, normal maps, XRefs, Point Cache, the Vault system for collaboration, and a 64-bit version. He also highlighted the acquisition of Alias which resulted in better interoperability between 3ds Max, Maya and MotionBuilder and the FBX file format.

Another key contributor to the software’s evolution are the many diverse plug-ins that 3ds Max has been able to integrate including reactor, Character Studio, ClothFX, Shave and Haircut, mental ray and ProBooleans. The amazing part of this evolution is that the price for 3ds Max has stayed constant despite the inclusion of new and better tools.

The presentation was split into five different parts. The first part covered dynamic animations using reactor, ProCutter and ClothFX. The second part covered facial rigging showing an adaptive facial morphing technique and a method for rapidly creating lip synching morph targets. The third part focused on facial surfacing using 3ds Max’s built-in shaders such as the mental ray SSS shader for skin. The fourth part presented body animation retargeting techniques using biped, reactor, and motion capture. The final part demonstrated an efficient referencing pipeline that uses XRef, point cache and the FBX file format.

Dynamic Animations
The first example of the presentation showed how the new ProCutter tool can be used along with reactor to realistically explode a bridge into pieces. The bridge was constructed using a loft that ran the span of the bridge, but being a solid single piece would require a lot of work to separate it into multiple pieces for a destruction sequence. Instead, Laurent divided the bridge into multiple pieces by drawing and extruding several line segments that defined where the bridge was to be cut. The ProCutter tool was then used to cut the bridge at the locations where the extruded lines intersected the bridge.

Once the bridge was divided into several separate pieces, the pieces were all selected and added into a reactor rigid body collection where you could set the mass and friction of the pieces. Under the effect of gravity, the bridge falls into pieces when previewed in the reactor window. If you’re happy with the effect, you can export out the keyframes. The process of exporting out the keyframes cannot be undone, but if you select and delete all the exported keyframes, then you can change the scene properties and export the keyframes again.

Laurent’s next example used the ClothFX plug-in. He discussed how each cloth simulation is unique and often you end up with good results at the start of one simulation and in the end of another simulation. By using 3ds Max’s morphing feature, you can get the best results from several simulations.

It also helps to understand the ClothFX controls. The Simulate Local option runs the simulation in real-time. You can use the Erase Sim and Reset State buttons to get your simulation back to its original state. It is often helpful to define a pre-roll setting by changing the Start Frame to -5. This lets the cloth settle before the simulation starts. Another technique is to exaggerate the gravity effect to cause the cloth to drop quicker. The Subsample value is the number of calculations made each frame, so higher values will take longer to calculate, but will result in more accurate cloth motions. Also, since you can’t undo the Create Keys action, use the Hold and Fetch features to recall the scene before creating keys.

To use the morphing feature, run a simulation and create the keys with the Create Keys button. This adds the keys to the Editable Mesh object stored in the base level. Then, save the selected cloth object and fetch the scene before the keys were saved and create another simulation using different properties. Once several cloth objects are saved with simulation keys, you can create a Morpher object using an unanimated copy of the cloth object. The saved cloth examples can be used as morph targets and you can blend between the different simulation settings to create the final cloth motions.

Facial Rigging
In the area of facial rigging, Laurent showed how facial rigs and morph targets can be repurposed using a technique called Adaptive Propagation. Morph targets provide a common method for controlling the motion of a head, but morph targets require that each of the morph targets have an equal number of vertices. This means that the morph targets created for one head can’t be re-used on another head.

Adaptive Propagation is a method that lets you re-create morph targets between different heads with a different number of vertices. To prepare the heads for this propagation, modify the head so the mouth is slightly open and the eyes are half closed. Then align the two heads and use the Projector modifier to project between the two heads. Then apply the Skin Wrap modifier to push the vertices of the first head to the other. You can then use the created morph targets on the new head.

Laurent’s next example dealt with lip synching. In general, there are two approaches for lip synching characters, one approach uses morph targets and the other uses a bone-based rig. Both approaches rely on visemes and phonemes. Visemes are the visual shape of the head used to create certain sounds. Phonemes are the actual sounds made possible by configuring the mouth, tongue and teeth to produce speech. Although 40 phonemes are recognized, good speech can be produced using 22 morph targets. A single viseme could be used to represent several phonemes. For example, the phonemes for the F and V sounds use the same viseme. The difference is that the F phoneme is created by inhaling and the V is created by exhaling.

The minimum number of visemes that are required for lip synching include the A, [E, I], O, and [U,W,Q] vowels and the [F,V], L, [M,B,P], [T,TH,D,N,Z], and [S,C,CH] consonants. Even with this minimum number of visemes, it can be quite a bit of work to create the morph targets for each of these visemes.

If created correctly, you can create all the needed visemes by combining three key targets. The three original morph targets include a open mouth target, a puckered target and a smile target. To create the combined targets, you’ll need to be able to apply negative morph values. You can enable negative morph values by disabling the Use Limits option.

The open mouth target can create the A viseme by simply dropping the jaw a slight amount and the smile target can be used the E viseme. The U viseme is created by combining the open target (roughly 29%) with the puckered target (about 8%) and the smile target (about 7%). The O viseme, likewise, can be created by combining each of the targets at roughly 33%, 101% and 45% respectively. The M viseme is created using combinations of -4%, 0% and -11%.

Some visemes, such as the L target, require the inclusion of the tongue and/or teeth. To position the tongue, use the Soft Selection feature with the Edge Distribution option enabled to select and position the end of the tongue.

Laurent next demonstrated the Voice-a-Matic plug-in created by his company. Using this plug-in, you can associate phonemes to specific morph targets, then after loading a sound file, the plug-in automatically blends the various targets to follow the loaded speech file. The system provides a good start for blocking out a lip synching sequence.

To finish the facial rigging portion of the presentation, Laurent showed a number of controls used to control the blinking of a character’s eyelid. This technique closes the eyelid by path constraining the eyelids to a line that runs parallel to the eyeball. Constraining an object to a path automatically creates keyframes, but you can delete the final keyframe and then wire an eyelid controller to the constraint’s Percent along Path value to give you control over the eyelid.

Facial Surfacing
When pelt mapping a surface, the UVs are typically stretched at an odd angle which can make it harder to paint the texture map, but you can manipulate and mirror the stretchers used to create the pelt map and align them before stretching. This results in a map that is symmetrical about its midline making it much easier to paint. There is also an option in the Display menu that will show any edge distortion in the pelt map.

For good scene lighting, it is best to combine both direct and indirect lighting sources. The Skylight with Final Gather enabled is a good example of this that results in realistic lighting.

For skin surfaces, the SSS shader is an excellent choice, but it is only available if mental ray is enabled. Although there are four different SSS shaders in the Material Editor, the SSS Fast Skin is the best choice for standard skin. This shader lets you specify the width of the layers between the skin, the flesh and the bone. By adjusting the weight value, which corresponds to the width of each layer, you can make the skin easier or harder to see through.

The results of the SSS shader aren’t visible in the viewport, but if you load a DirectX FX shader, then you can see a similar result in the viewport. If you use the Shell material, you can configure the FX skin shader to be displayed in the viewports and the SSS shader to be rendered.

3ds Max includes a version of Shave and Haircut plug-in, which works the same in Maya as it does in 3ds Max. It also integrates with mental ray. To render hair using mental ray, be sure to select the mrprim material type, which stands for mental ray primitive. The buffer option renders the object and then the hair on top of it, but the mrprim is much faster. One cool feature of the hair plug-in is the live dynamic hair. If you enable the display to show only guide hairs, the feedback is close to immediate. There is even a freeze feature that you can access by pressing the Escape key while moving the object with hair around in the viewport.

After describing the benefits of the hair plug-in, Laurent showed an example of how you can paint hair on a character using Vertex Paint modifier. The trick is to apply the Hair modifier followed by the Vertex Paint modifier. You can then paint the hair’s position using the brush interface. Then drag the Vertex Color map from the Material Editor and drop it on the Hair Density value. You’ll need to invert the Vertex Color map so the hair grows where the painted areas are. Since the hair density is defined by the painted vertex color, the hair appears in only the painted areas. A similar effect can be used to control the hair length and color. Be aware that when styling the hair, the guide hairs appear over the entire surface and not just in the painted regions.

Body Animation Retargeting
Character Studio was one of the first plug-ins to work with 3ds Max and has been around since version 1. As of version 7, the plug-in was integrated into 3ds Max. Biped is included as a module in Character Studio and by itself is very helpful for animating characters.

Another technique that uses Biped is to use it create a bone-based system. If you create a biped and unhide all its helpers, then you can use the Snapshot tool to create a copy of all the biped bones. Then after deleting the original biped, you’re left with a set of bones that looks just like the original biped. The bone system can then be rigged as desired.

As the final example in this section, Laurent showed how motion capture data can be loaded and combined with ragdoll sequences. By combining these two animation sources, you can get a resulting sequence that is more realistic that individual animation data sources.

Referencing Pipeline
Although 3ds Max includes both XRef Objects and XRef Scene, the XRef Scene feature should never be used. 3ds Max’s XRef features include support for referencing objects, cameras, lights, materials, controllers and bipeds. Referencing helps produce small file sizes and insures that you always have the latest version. If you’re having trouble with large file sizes, you can enable the Compress on Save preference. One good trick for referenced scenes is to always use XRef on live action cameras to prevent them from being accidentally moved.

When using biped objects to animate a mesh, there is a lot of overhead, but if you use the point cache feature, then you can bake the animation keys into the mesh. This can result in a huge increase in the frame rate and in the example that Laurent showed, a character was displayed at 23 frames per second without point cache and this was increased to 58 frames per second in the viewport when point cache was used.

Applying point cache to all objects in the scene can be automated using MAXScript. Point cache can also use an offset value that can be used to animate a row of flags by applying a different offset to each flag. Point cache is also available within Maya with the FBX format. One tip for using point cache is to apply it before applying TurboSmooth.

Finally, the FBX format was originally developed by Kaydara. It is now supported by all major 3D applications. It can be used to save geometry, morphing, materials, lights, UVs, constraints and animation keys. There is also a free SDK for FBX available at autodesk.com/FBX.

 
 
Menu
 Back to GDC 2007
 See more Visual Arts
 Discuss this article