A Sequence File contains a sequence of requests for animation, mimicking how the game requests animation from the system. For example it can contain a sequence of weapon fragmentIDs (select/reloading/fire/deselect) to test a weapon setup. They are created either in the mannequin editor or by recording actual gameplay.
Sequence files are stored in the folder pointed to by the mn_sequence_path cvar. By default this is Animations/Mannequin/FragmentSequences/.
Their filename ends in .xml.
Creating Sequence Files
Sequence files are created either:
- by saving a sequence using the Mannequin Previewer.
- by recording gameplay using the mn_dump console command. See Mannequin Debugging.
Editing Sequence Files
Sequence files are edited in the Mannequin Previewer.
This is an example sequence file:
The History element is the root element, and contains the range of time this sequence represents as StartTime and EndTime.
It contains a list of Item elements that record mannequin changes at certain Times:
- Pushing a Fragment:
- FragmentID attribute: The FragmentID requested from mannequin.
- ScopeMask attribute: The scopemask requested from mannequin. This typically can be left empty. Scopes are assigned to the fragmentID by the definitions in the Controller Definition File (xxxControllerDefs.xml).
- OptionIdx attribute: The option index requested from mannequin. Typically a random number during gameplay, but you can pick a specific option index if you wish.
- TagState attribute: (optional) The FragmentID-specific Tags (fragtags) used during the request.
- Trump attribute: (optional) Set to 1 to enable Mannequin Trumping.
- Global TagState changes:
- TagState attribute: The new global tagstate.
- Parameter changes:
- ParamName attribute: Contains the name of the Mannequin Parameter.
- Type attribute: Deprecated, not used.
- Value element: The 'x', 'y', 'z', 'qx', 'qy', 'qz', 'qw' attributes store the value of the Mannequin Parameter. There are enough attributes to encode an offset and a quaternion, so it can be used to describe a location (eg. typical usage of the "TargetPos" parameter). Not all values are necessarily used (eg. Motion parameters only use the 'x' attribute).
In code these sequences are represented by a list of SMannHistoryItem structures in the game and a list of CFragmentHistory::SHistoryItem structures in the editor.