A Tag Definition describes a collection of Tags. These tags are keywords used for labeling fragments (and transitions). To see how you assign tags to fragments and transitions, see the Mannequin Fragment Browser and Mannequin Transition Browser respectively.
Tags can have priorities associated with them. Tag priorities are used for ranking TagStates.
Tags can optionally be grouped together within Tag Groups, which are lists of tags that are mutually exclusive. For example you can have a group called "Weapon" which contains "Rifle", "Pistol" and "NoWeapon" tags. In this example you can never have both "Rifle" and "Pistol" tags set at the same time, which makes sense if you can only use one weapon at a time in your game.
Tag definition files can include other tag definition files hierarchically.
You create Tag Definitions using the Mannequin Tag Definition Editor.
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 CRYENGINE V Manual. 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.