Suggested Reads for this Article
FacePoser has the ability to modify the playback of model animations within Source. By using the Gesture tool, scene designers can modify certain aspects of a model’s animation sequence(s) without having to use a 3D modeling application.
In this article, the gesture named "A_g_fingptfwd" in the Alyx model will be modified.
- Create a scene with (null) gesture events
- Alter the timing tags of a gesture
- Change the Ramp of a gesture (optional)
- Play back and tweak the choreography
- Conclusion and Tips
Creating the Scene
Load the Alyx model and create a new scene. Name the actor and create two channels: one named "Original" and one named "Manipulated." In the Original channel, create a sequence event named "Before", select the A_g_fingptfwd animation, set the start time at 0 seconds, uncheck the end time box, and push OK (The blank end time field lets the event occupy the same time span of the intended animation, instead of stretching or compressing it.) In the Manipulated channel, create a null gesture. Enter in values for the start and end time fields that would have the event occur somewhere within the timespan of "Before" (This will prevent the sequence and gesture from crossfading into each other.) In the same channel, create a gesture event named "After", select the A_g_fingptfwd gesture, enter in a value in the start time field that would have After occur after Before, uncheck the end time box, and push OK. The scene should look somewhat like this:
The scene has now been created. The A_g_fingptfwd animation consists of the character raising its right arm to form a pointing pose. This pointing pose is extended for about a second, and then is gradually faded out. This article will change the animation into the right arm sluggishly being raised into the pointing pose. The pointing pose will then be held for about half of a second. Another half second will be left for the end of the event, resulting in a quick fade out.
Altering Timing Tags
Gestures generally consist of four timing tags: Apex, Accent, Loop, and End. Apex is the "peak" of the gesture, Accent is the pose that will essentially be held by Loop, and End will fade out the gesture until the event ends. The Gesture tool allows these tags to be shifted to a different point in time, thus altering the way the animation is played back in-game.
Select "After" and double click on the Gesture tab to open up the Gesture tool. Enable time sample snapping if needed, and move the tags to modify the animation. The timing tags were altered to this:
This resulted in the animation looking similar to the intended description.
Changing the Ramp
Optionally, the ramp of the event can be changed. Changing the ramp allows for the strength of the event to be modified, giving even more customization over the playback of the animation. The ramp of the event was changed to this:
These Ramp settings changed the event in that the arm raising was made event more sluggish, the direction of the index finger was lowered and moved towards the character’s right, and the fade out was "smoothened out."
Playing Back and Tweaking the New Animation
Play back the choreography to compare the original animation to the new one. Tweak the timing tag placement and ramp of the events if desired. Consider playing back the .vcd in the engine to see what the animation would truly look like.
Conclusion and Tips
With timing tag alteration, scene designers can have more leeway in what animations would look like in the Source engine. This prevents the need to make modifications to a model in a 3D modeling program for suiting minor discrepancies in an intended animation.
Another method of adding animations to a scene is by double clicking on the Animations tab and dragging a thumbnail into a channel. A popup box will show up, asking the user whether the event to be created will be a sequence or gesture event. When choosing a certain animation on the creation of gesture events, one is not restricted to the selection in the drop down menu, as hinted by the box previously mentioned. Any animation for a certain model can be used in the Gesture tool. Usually, "non-intended" gestures lack timing tags, but tags can be inserted into an event, as well as deleted.
The scene file used in this article is available here.