FragmentID Definition File (xxxActions.xml)

Description

A FragmentID Definition File contains a FragmentID definition, which is basically a collection of names for FragmentIDs. They are used to define which FragmentIDs a mannequin character can use.

FragmentID definition files are referenced by the Controller Definition File and any Animation Database File. Or they can be included hierarchically in other FragmentID definition files. See the overview picture on the page about Mannequin Files.

FragmentID definition files can refer to Tag Definition Files to define FragmentID-specific Tags (fragtags).

Creating a FragmentID Definition File

FragmentID Definition files have to be created manually. See the FileFormat section.

FragmentID Definition files are stored in the Animations/Mannequin/ADB/ folder. This is not an absolute requirement for the engine though.

The filename typically ends with Actions.xml, at least in the provided examples. But this is not a requirement at all. To prevent confusion it's better to use something like "FragmentID" in the name.

Editing a FragmentID Definition File

FragmentID Definition files are edited indirectly by adding/removing/renaming FragmentIDs using the Mannequin Fragment Browser and editing their settings using the Mannequin FragmentID Editor.

File Format

This is an example of the current format (version 2)

<TagDefinition version="2">
 <Imports>
  <Import filename="Animations/Mannequin/ADB/itemActions.xml"/>
 </Imports>
 <Tags>
  <Tag name="MotionIdle"/>
  <Tag name="MotionMovement"/>
  <Tag name="LedgeGrab" subTagDef="Animations/Mannequin/ADB/LedgeGrabTags.xml"/>
  <Tag name="Interact" subTagDef="Animations/Mannequin/ADB/InteractiveActionTags.xml"/>
 </Tags>
</TagDefinition>

The root element is TagDefinition (NOT FragmentIDDefinition which you might expect) and should contain the proper version number. The current version is 2.

The Imports element contains a list of other included fragmentID definition files. These are merged together during loading. (similar to an #include statement in C code) In this example we refer to a shared itemActions.xml fragmentID definition which could contain fragmentIDs related to item handling, which are shared between multiple character types.

The Tags element contains the list of individual FragmentIDs in Tag elements. Each individual FragmentID can have a Tag Definition assigned to it containing FragmentID-specific Tags (fragtags). This is done by specifying a Tag Definition File (xxxTags.xml) in the subTagDef attribute.

The FragmentID Definition file uses a similar format as the Tag Definition File (xxxTags.xml), as it uses the same underlying code, the Mannequin CTagDefinition.