Search public documentation:


Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > FaceFX Facial Animation > FaceFX Commands

FaceFX Commands


Most operations performed in FaceFX Studio are executed via the command system. This file documents Unreal Engine 3 specific commands. Documentation for other commands can be found in the FaceFX.chm file. (In version 1.7.2 and later, hitting F1 while working in FaceFX will bring up the help.)



The analyze command is listed in the FaceFX documentation, but it has some slightly different parameters for UE3. Rather than specifying the -audio and -directory arguments, you specify -soundcue, -soundnodewave, or -package. Also there is no -recurse flag in UE3.

So the commands for analyzing inside FaceFX Studio in UE3 are essentially the same as the stand-alone version, but here are some examples:

analyze -package "MatineeTest_Resources";
That analyzes the first USoundNodeWave object in all USoundCue objects in the MatineeTest_Resources package, creating an animation group called MatineeTest_Resources if it doesn't exist, using the SpokenText in each USoundNodeWave object if it is valid, naming each animation the name of the corresponding USoundNodeWave object, and not overwriting any animations in that group with those names that already exist.
analyze -package "MatineeTest_Resources" -group "Default" -notext -overwrite;
Same as above, but puts all animations in the "Default" group, forces the system to NOT use text even if the SpokenText property is valid, and overwriting any animations in the "Default" group that already exist with those names.
analyze -soundcue "MatineeTest_Resources.welcomeCue" -soundnodewave "welcome";
Does the same thing as the batch case, but for a single USoundNodeWave object. You can use the same flags as the batch case if you want (though by default here if no -group is specified everything goes in the "Default" group). Also, you can force a particular animation name with the -anim flag, like this (along with an example of some of the other flags):


The ue3 command is used to redirect FaceFX animations to link to different soundcues and soundnodewave objects.

ue3 -link -group "Default" -anim "Welcome" -soundcuepath "NewPackage.welcomeCue" -soundnodewavename "welcome";
Will link the Welcome animation in the Default group with the welcome soundnodewave object in the NewPackage.welcomeCue soundcue object.

You can also 'batch' those:

ue3 -link -group "Default" -package "NewPackage";
That will go through all animations in the Default group and simply replace each animation's soundcuepath with "NewPackage.oldCueName". This assumes that the soundCueName and soundNodeWaveName are the same between the old package and the new package (i.e., the only thing that changes is the package it looks for that data in).
ue3 -updatesoundcues
That will go through all of the facefx anims in the current animset and then find the referenced soundcue. It will then update that soundcue to point back at the facefx anim. If you have multiple anims using the same soundcue (which is not allowed) then the "last updatesoundcue" run will be authoritative.

NOTE: All of the UE3 commands are implemented in FxUE3Command.cpp so check that out if you want to see what they actually do.

Executing Commands

Commands can be entered manually into the FaceFX command line shown above, or they can be embedded into an into an .fxl file to be executed as a batch via the 'exec' command as follows:

exec -f "C:\MyFaceFXCommands.fxl"

In addition, FaceFX Studio will search for several specific FXL files in the Binaries\FaceFX folder names at various execution points. For example, if you place an autoexec.fxl file in Binaries\FaceFX, any commands inside will be executed each time FaceFX Studio is opened. Other filenames like preloadactor.fxl, presaveactor.fxl, postloadactor.fxl, postsaveactor.fxl are also searched for. If you want commands to be issued only for a particular actor, create one of the following, replacing the "ActorNameofFXA" with the actor name you want to trigger the commands.

  • ActorNameofFXA_PreLoad.fxl
  • ActorNameofFXA_PostLoad.fxl
  • ActorNameofFXA_PreSave.fxl
  • ActorNameofFXA_PostSave.fxl

This format is slightly different than the FileNameOfFXA_PostLoad.fxl format described in the FaceFX documentation because there are no corresponding files in the UE3 integration.