SGX Runtime uses terminology originating from FaceFX. Some terms in the SGX Runtime documentation differ from the terminology used in previous SGX workflows. This section defines the most important FaceFX terms and explains how they relate to SGX characters and animation data.
Actor
In FaceFX terminology, an actor is a character. Whenever the documentation refers to an actor, it is referring to character data.
FaceFX actors are stored in .facefx files, which serve a similar role to SGX character control (.k) files. References to an actor file or a .facefx file therefore refer to FaceFX character data.
Face Graph
A FaceFX Face Graph is a directed acyclic graph made up of nodes and links. In a full FaceFX workflow, nodes can represent animation-driven values or poses, while links and link functions define relationships between those values.
During compilation, SGX Runtime creates a simplified Face Graph from the SGX character’s baked level. This Face Graph is generated automatically; you do not need to create or edit it.
The Face Graph generated for an SGX character:
-
Contains only the supported node types described below.
-
Contains no links between nodes.
-
Provides the mapping used to generate the character’s Runtime tracks.
The compiled Runtime data does not contain Face Graph nodes or links. Instead, it contains the animation tracks and keys generated from the simplified Face Graph.
Unless stated otherwise, references to the Face Graph in SGX Runtime documentation refer to this automatically generated, simplified representation rather than a full artist-authored FaceFX graph.
Bone Pose Nodes
Bone pose nodes represent position, rotation, and scale values for a set of bones. Each node represents a distinct skeletal pose.
During compilation, the compiler creates a bone pose node for each SGX muscle pose that contains bone data. Each bone pose node generates a corresponding Runtime track.
Morph Target Nodes
Morph target nodes represent the weight of a morph target, also called a blend shape. They do not contain morph target vertex data. Instead, the corresponding Runtime track supplies a value for a morph target of the same name in the game engine.
During compilation, the compiler creates a morph target node for each morph target referenced by the SGX character control (.k) file.
Generic Target Nodes
Generic target nodes represent values for named game-engine targets other than morph targets. For example, an Unreal Engine MetaHuman control is represented by a generic target node.
During compilation, the compiler creates a generic target node for each control referenced by the SGX character control (.k) file. Each generated node produces a corresponding Runtime track with the same name.
Tracks and Ranges
A track is the Runtime representation generated from a Face Graph node during compilation. Each track contains animation keys and has a name and valid value range.
A Runtime track uses the same name and valid range as the Face Graph node from which it was generated. Track values are clamped to this range during playback.
Negative Time
FaceFX supports negative time, meaning that animation keys can occur before time 0. This serves the same purpose as pre-roll in SGX workflows.
For details on how SGX Runtime handles pre-roll and negative time animation data, see SGX Runtime Conventions.
Compilation
Compilation is the process of transforming SGX source data—including character control (.k) files and .event files—into SGX Runtime data files.
During compilation, the compiler generates the simplified Face Graph described above, converts its nodes into Runtime tracks, extracts animation data from SGX event files, and produces optimized Runtime data for playback in the game engine.