Flexes with 3DS Max

From Valve Developer Community
Revision as of 12:25, 18 July 2008 by Snotball (talk | contribs)
Jump to: navigation, search

This article contains supplemental notes to Cannonfodder's tutorial on how to create facial animations with VTA files using 3DS Max.

Cannonfodder's tutorial

For the procedure of creating the morph targets, follow Cannonfodder's step-by-step tutorial on HL2World.com. Also, as this article focuses on using 3DS Max for modeling, you are going to need Cannonfodder's 3DS Max Tools.


Cannonfodder's tutorial will take you through the steps of creating the morph targets, exporting them to VTA files and setting up the .QC file of the model. But when going through his tutorial I have noticed a pair of limitations/oddities that the tutorial reader should keep in mind:


Remember to keep whatever you want to flex animate at a reasonable size. For some reason the vertex animation will not work properly with meshes over a certain size; it will only randomly crumble the mesh. I do not know exactly at what mesh size this occurs, but my guess is that the safest mesh size is that of a human head fitting Valve's scale of a human being 72 units tall in 3DS Max.

Smoothing groups

For some reason, any flex animated mesh also has its smoothing groups reset when compiled, resulting in an all-smooth mesh. This means that you cannot have multiple smoothing groups on a mesh that uses vertex animation. It is possible, however, to divide your entire mesh into multiple seperate meshes that all use the same bones in the Skin modifier and still export it as a single .SMD reference.

In short

Separate a humanoid's head from its body, so they are both kept as individual objects/meshes still assigned to the same bones. It is then possible to add smoothing groups to the body, while only the head's smoothing groups will be reset and limited to one. This will obviously cut the head of a humanoid from its body, so these cut seams should be concealed wherever possible (for instance by the collar of a shirt).