Creating Faceposer Gestures
Faceposer can use any sequence in a model as a gesture, but timing tags (Apex, Accent, Loop, End), thumbnail frames, classification as a posture, etc. must be specified through a sequence's own keyvalues. This page is for creating new gestures or postures designed to be used in Faceposer. If you want to know how to place an existing gesture into a choreography scene, see Creating skeletal animation events.
Note:These are for a sequence's keyvalues, not the model's
$KeyValues
.Example
An example of a gesture with Faceposer options. This was found in models/male_gestures.mdl
. The rest of the sequence has been removed for easier reading.
$sequence "b_head_back" { ... keyvalues { faceposer { "type" "gesture" "tags" { "apex" "10" "extreme" "42" "loop" "43" "end" "44" } "entrytag" "apex" "thumbnail_frame" "42" } } }
Options
type <choices>
- What Faceposer should classify this animation as.
gesture
- Classifies the animation as a gesture, putting it in the "Gestures" category and behaving like a gesture during playback.
posture
- Classifies the animation as a posture, putting it in the "Postures" category and behaving like a posture during playback.
Note:Time tag names are not tied to anything at all, meaning you could name them anything you want. The tags listed are just those found in Valve's gestures.
tags { [stuff] }
- Timing tags and which frame they are located at. All tags should be subkeys.
apex <frame>
accent <frame>
loop <frame>
end <frame>
entrytag <tag>
- Which of the tags specified in
tags
should be the "entry tag".
exittag <tag>
- Which of the tags specified in
tags
should be the "exit tag".
startloop <tag>
- Which of the tags specified in
tags
should the loop start. [confirm]
endloop <tag>
- Which of the tags specified in
tags
should the loop end. [confirm]
thumbnail_frame <frame>
- Which frame of the animation should appear in Faceposer's animation browser.
eye_height <float>
- [Todo]