This component allows applying particular facial expressions to a character.
This component uses Facial Activation Encoding System (FACS) as a notation system for possible facial movements - activation units (AUs). Each AU has a value that characterizes to which extent the motion should be performed, akin to blendshapes/morph targets.
The facial expressions, or poses, are saved in FACSExpressionsLibrary
, which maps an emotion of an enum type Emotions
to an array of FACS values FACSValue
.
FACSValue
itself is a structure which contains:
- an integer value denoting the AU number
- the value associated with the AU
-
FACSSidedness
Side, which represents the side of the AU on the face (left, right or both)
There are 8 basic emotions stored in FACSExpressionsLibrary
:
- Neutral
- Happiness
- Sadness
- Surprise
- Fear
- Anger
- Disgust
- Contempt
Additionally, there is also a Custom
emotion, which allows to manually override and add values to some specified AUs.
To pick an emotion, set SeletedEmotion
to appropriate emotion. This can be done in both blueprint and c++. Additionally, there are functions SetFACSActionUnit
, which uses Custom emotion to change a value of a given AU, and VHSetFACSValues
which adds an array of these AU values at once.
Important: this component requires a mapping PoseAsset Mapping
for according character model type: CC3
or MetaHuman
(for these two there are mappings provided: FacialExpressionsMetaPoseAsset
and FacialExpressionsCC3PoseAsset
).