Making Facial Animations

Posted Feb 12, 2012
Last Updated Jul 1, 2017

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 (those items with an asterisk are not needed when exporting to DMX):

  1. Set up a root model (like a face/head).
  2. Copy that model several times.
  3. Modify the copies so that each represents a pose or state (one being a smile, another being a lifted eyebrow, etc)
  4. Apply a Morpher modifier to the root model.
  5. Assign each copy as a target in the morpher's channels.
  6. *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.)
  7. Export the DMX or VTA file for this model (done by WWMT).
  8. *Create a flexfile that denotes which fames correspond to each pose (done by WWMT).
  9. *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. Steps 6, 8 and 9 are not required when exporting to DMX.

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!


First make sure that you have assigned a Morpher or Morph-O-Matic modifier to your mesh and assigned all the targets. Once done, you should then create all the morph targets and channels for your model. If exporting to VTA, continue reading. If using DMX, skip to the DMX section.

  • 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.

WW Morpher UI button

Creating Keyframes

When exporting to VTA, you need to create keyframes. For DMX, skip this section.

Once you have all the targets assigned, you can use the WW Morpher UI located in the Wall Worm > Wall Worm Model Tools menu.

  1. Select the Root Mesh
  2. Open the WW Morpher UI
  3. Click the button labeled Flex Prep Selected
  4. At this point, each channel will get a 100% weight in its own keyframe in the timeline.

A Prepared Model

Exporting the VTA

Once the keyframes are made, you can export the VTA File via WWMT. Just click the Export QC + Model button.

  • If the flexes do not export, 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 of WWMT.
  • You cannot export VTA data using Wall Worm if you are using the Cannonfodder plugins
  • When using the Wunderboy tools, 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.

WW VTA Export

Understanding how the WWMT VTA Exporter Organizes Everything

The chart below tries to explain the organization of everything. Here is what happens.

  1. 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
  2. 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.
  3. A flexcontroller called wwmt_flex_controller is created which defines a controller name from each morpher channel.
  4. 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.

WW Flex QCI Chart

DMX Flexes

If you own Wall Worm Pro, you can export your flex information to DMX files. This is essential if you wish to use features like Wrinklemaps. When exporting to DMX, it is not necessary to make keyframes for your morph channels. Moreoever, you have added benefits because the DMX exporter supports exporting progressive morphs--which allows multiple morph targets to affect a morph channel.

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.