Making Facial Animations
This page explains how to export your facial animations into Source. Facial animations are done using a different procedure than most animations in Source. Most of the animations you see are controlled by bones that are skinned to a mesh. Facial animations are much more fine-tuned and subtle... not to mention take more effort to make.
Generally speaking, this is the process of making the facial animations inside Max:
- Set up a root model (like a face/head).
- Copy that model several times.
- Modify the copies so that each represents a pose or state (one being a smile, another being a lifted eyebrow, etc)
- Apply a Morpher modifier to the root model.
- Assign each copy as a target in the morpher's channels.
- Make a keyframe for each channel where that channel is set to 100% and all other channels are set to 0% (this is a step that is automated with the WW Morpher UI function.)
- Export the VTA file for this model (done by WWMT with the internal WWMT VTA Exporter or the Wunderboy VTA Exporter).
- Create a flexfile that denotes which fames correspond to each pose (done by WWMT).
- Create a flexcontroller and define the controls (done by WWMT).
Steps 1-5 are ones you have to do as part of the design process. The remainder of the steps are handled by Wall Worm Model Tools. Please note that at this moment, VTA Exporting in WWMT is only available when using theinternal WWMT VTA Exporter or the Wunderboy VTA Exporter (which also requires the Wunderboy SMD Exporter if using WWMT). Cannonfodder had been working on some VTA updates to work with WWMT, but I have not heard from him in some time now and suspect he may have given up on that.
Please note: in the examples below, I started with a model that had a channel named "No name" that I later removed in the final screen shot... please be aware of that as it is why the starting images are not the same as the final... and I did not take the time to go back and remake the images properly!
Preparation
First make sure that you have assigned a Morpher* modifier to your mesh and assigned all the targets.
- WWMT will work when using either a Morpher modifier or the commercial 3rd-Party plugin Morph-O-Matic from Di-O-Matic. The screen shots here are using the Morph-O-Matic plugin.
Creating Keyframes
Once you have all the targets assigned, you can use the WW Morpher UI located in the Wall Worm > Wall Worm Utilities menu. (If you do not see that, you will need to open the WW Settings floater and click the Add to Menu button.
- Select the Root Mesh
- Open the WW Morpher UI
- Click the button labeled Flex Prep Selected
- At this point, each channel will get a 100% weight in its own keyframe in the timeline.
Exporting the VTA
Once the keyframes are made, you can export the VTA File via WWMT. Note that you need the Wunderboy VTA Exporter!
First, you should make sure that your WWMT UI has the check button called Morphs As VTAs enabled. It is enabled by default and is located in the Utilities Rollout.
Now, when you export your model it will export VTAs along with the SMDs. Please note: the current version of the VTA Exporter does not have a Maxscript interface yet that allows WWMT to control the frame numbers/range. As such, you will see a pop up (see below) that asks you to enter the frames. You must enter 0-the last frame animated in your Morpher modifier.
Understanding how the WWMT VTA Exporter Organizes Everything
The chart below tries to explain the organization of everything. Here is what happens.
- When you export a model with WWMT that has a valid morpher modifier, it adds a line of code in the QC file that looks like this:
$model myModelName "myModelName.smd" { flexfile "myModelName_flex" { $include "myModelName_wwmt_flex.qci" $include "myModelName_wwmt_flex_custom.qci" } flexcontroller wwmt_flex_controller "MopherChannel1Name" "MopherChannel2Name" [...] %MopherChannel1Name = MopherChannel1Name %MopherChannel2Name = MopherChannel2Name [etc] } - Two new files are created that include information about the flex data. The first one will be named myModelName_wwmt_flex.qci where "myModelName" comes from the name of the model. That file will always be generated at export and will always map the channel names from the morpher to their keyframes. The second file will be called "myModelName_wwmt_flex_custom.qci" but will only be generated once... if it already exists, you can edit it and WWMT will not over-write it.
- A flexcontroller called wwmt_flex_controller is created which defines a controller name from each morpher channel.
- The VTA Exporter will create a VTA file will all the VTA information. It will always be named like "myModelName_flex.vta" where myModelName is determined by the name of the model.
Finishing the Process
At this point, you will need to finish the process as you would otherwise using Face Poser in the Source SDK menu and adding to/editing the flex files. The WWMT tools for flex animations are just optmization tools to get you to the end faster.
Reference
- Using WWMT
Articles on using the Wall Worm Model Tools.
- Related Topics


