Creating Faceposer gestures: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
 
 Note:These are for a sequence's keyvalues, not the model's $KeyValues.
Note:These are for a sequence's keyvalues, not the model's $KeyValues.
 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.
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.
		
	
| Le Glaconus (talk | contribs)  (formatting, clarification) | No edit summary Tag: Reverted | ||
| Line 80: | Line 80: | ||
| ;<code>eye_height <[[float]]|height></code> | ;<code>eye_height <[[float]]|height></code> | ||
| : {{todo}} | : {{todo}} | ||
Revision as of 18:01, 3 August 2025

 
 Faceposer can use any sequence in a model as a gesture, but timing tags (Apex, Accent, Loop and 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.
 Faceposer can use any sequence in a model as a gesture, but timing tags (Apex, Accent, Loop and 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.
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. 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.
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.
- entrytag <string|tag>
- Which of the tags specified in tagsshould be the "entry tag". Mostly always set toapex
- [exittag <string|tag>]
- Which of the tags specified in tagsshould be the "exit tag".
- endmatch <string|tag>
- Only for postures.
Loops are handled differently :
- tags { <stuff> }
- Timing tags and which frame they are located at. All tags should be subkeys.
- startloop <string|tag>
- Which of the tags specified in tagsshould the loop start. [confirm]
- endloop <string|tag>
- Which of the tags specified in tagsshould the loop end. [confirm]
- exittag <string|tag>
- Which of the tags specified in tagsshould be the "exit tag".
- thumbnail_frame <int|frame>
- Which frame of the animation should appear in  Faceposer's animation browser. It is best to set it to the Faceposer's animation browser. It is best to set it to theaccentorloopframe.
- eye_height <float|height>
- [Todo]























