Difference between revisions of "Gesture Manipulation"

From Valve Developer Community
Jump to: navigation, search
(Created new article.)
 
m (Fixed corrupt characters)
Line 11: Line 11:
 
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.
 
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 in the Alyx model will be modified.
+
In this article, the gesture named "A_g_fingptfwd" in the Alyx model will be modified.
  
  
Line 25: Line 25:
 
==Creating the Scene==
 
==Creating the Scene==
  
Load the Alyx model and create a new scene. Name the actor and create two channels: one named and one named “Manipulated.In the Original channel, create a sequence event named , 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 ''(This will prevent the sequence and gesture from crossfading into each other.)'' In the same channel, create a gesture event named , 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:
+
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:
  
  
Line 36: Line 36:
 
==Altering Timing Tags==
 
==Altering Timing Tags==
  
Gestures generally consist of four timing tags: Apex, Accent, Loop, and End. Apex is the 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.
+
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 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:
+
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:
  
  
Line 55: Line 55:
  
  
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.
+
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."
  
  
Line 67: Line 67:
 
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.
 
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-gestures lack timing tags, but tags can be inserted into an event, as well as deleted.
+
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.
  
  

Revision as of 12:04, 24 November 2005

Suggested Reads for this Article


Introduction

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.


Overview

  • 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 layout of the current scene.


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:


Timing tag settings for the gesture event.


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:


Ramp settings for the gesture event.


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.


Reference Scene

The scene file used in this article is available here.