Creating Tag Definitions
You create Tag Definitions using the Mannequin Tag Definition Editor.
Editing Tag Definitions
You edit Tag Definitions using the Mannequin Tag Definition Editor.
However, you cannot edit the hierarchical inclusion of other tag definition files in this editor. For this, you will need to manually edit the XML file. See the Tag Definition File (xxxTags.xml).
Each individual tag must have a unique name within a Tag Definition.
Casing of tags is ignored. So for example "rifle", "Rifle" and "RIFLE" are all seen as the same tag.
And even if tags are in different groups, they cannot be given the same name.
Tag definitions are stored in a Tag Definition File (xxxTags.xml).
In code, Tag Definitions are represented by a Mannequin CTagDefinition.
A tagstate is a combination of tags from a tag definition. Tagstates can be represented by a list of tags separated by "+" characters. For example "crouching+pistol" defines a tagstate combining the tags "crouching" and "pistol".
There are many different places where sets of tags like this come up. Here are the most used ones and how they are typically called:
At any time the game can set global tags describing the current state of the character. These are called the global tagstate. They typically contain global state information like stance ("standing", "swimming" etc...), character type, which weapon is equipped, etc...
For programmers: the global tagstate is the tags member of the actioncontroller's SAnimationContext, which you can find with IActionController::GetContext().
Each fragment gets labeled with tags in the Mannequin Fragment Browser. Those can be either global tags or FragmentID-specific Tags (fragtags).
They are used to find fragments during fragment selection.
The tags associated with a scope, are configured in the Controller Definition File (xxxControllerDefs.xml). All fragments that play on this scope require these tags to be set. Typically this contains only one tag. It is recommended to use a specific naming convention for scope tags as opposed to other tags, for example prefixing them with the word "Scope".
See also Fragment Selection Process.