Tagging is not essential for your first attempt at motion matching but it is vital to get a polished, production ready result (especially if you are using Mocap). Basically tags allow the user to mark up sections of animations that should be treated differently during pre-processing.
Note: If this is your first time creating a motion matching character. Skip to the next page on Pre-Processing and come back to tagging later.
There are several kinds of tags that ship with Motion Symphony:
Action Markers (Experimental)
Distance Matching (Experimental)
It is also possible to create your own custom tag types with blueprint but that is an advanced topic which will be covered later in this manual.
Note: Tags may look like animation notifies but they are not. They only run logic during the pre-process phase in the editor and do not tick at runtime. For runtime animation logic, please use animation notifies on the source animations. The motion matching node will trigger any notifies that you have added to those animations.
How to Add Tag Tracks
Before adding tags, you first need to add at least one tag track to place them on. Add a tack track by clicking the ‘Track’ dropdown on the timeline and choose ‘Add Tag Track’ and name the track whatever you like.
Once the tag track has been created you are ready to add tags to it. You can add multiple tag tracks if you desire but this has no impact on the data, it is only for organizing your tags in a clean way.
Note: You can add multiple tracks to help organize your timeline and so it doesn’t get too crowded. However, be aware that this is only cosmetic and does not effect the data.
How to Add Tags
Once you have a tag track, simply right click on the track in the timeline area. You will be prompted with two options:
Add Tag - Add a tag that sits at a single time point in the track
Add Tag Section - Add a tag that covers a range in the track
Select your desired tag type and then choose a tag to create. After clicking on the desired tag it will show up in on the track.
Once the tag has been created you can select it by clicking on it, move it by clicking and dragging it and resize it (for Tag Sections Only) by clicking on the tags handles and dragging them.
Some tags have data that can be edited. To edit this data simply select the tag by clicking on it. Its details panel will show up in the contextual details panel to the bottom left of the editor. Please see the relevant tag types for more information on tag details.
Note: The tag details panel is shared with the animation details panel. To edit animation details again simply select the relevant animation in your animation list.
Any pose or section of animation marked up as ‘DoNotUse’ will filtered out of the pose search at runtime. These poses can never be chosen by the motion matching algorithm. Use this tag to “curate” your animation set, remove ugly transitions you don’t like and reduce excessive redundancy.
Note: Redundant animation in motion matching is good to a certain degree but if there is too much redundancy then that animation database becomes messy and un-necessarily bloated. Results can become muddy.
A few good use cases of the DoNotUse tag include:
Marking out sections of animation you don’t like
Marking out the redundant looping animations (i.e. the loops between transitions)
Marking out excessive and redundant stop animation (e.g. in a RunStartStop take)
Trait tags allow users to assign a set of traits to an animation or to a section of the animation. This could be anything from movement speeds (i.e. walk, run, sprint) to stances (i.e. normal, combat) to physical states (i.e. Fresh, Tired, Injured). At runtime, the user can specify the current traits that are ‘required’ and the motion matching node will only play animations that have the specified traits.
This effectively allows the motion matching node to have some form of ‘state’ within itself without ever actually changing states in the animation graph.
To edit the trait on a specific tag, select the tag and type in the name of the trait in the contextual details panel:
Trait Name - The name of the trait to apply to all poses within the tag range
Note: The trait name must match EXACTLY with a trait name that you have specified in your project settings. For more information see the advanced topic on Traits (Traits Advanced Topic)
Cost Multiplier Tags
Cost multiplier tags allow the user to specify sections of the animation that should have a cost multiplier applied at runtime to make the poses within either less likely (>1.0) or more likely (<1.0) to be chosen by the motion matching search algorithm. Common Use cases include:
Loops (e.g. RunFwdLoop) - A cost multiplier between 0.8 - 0.9 ensures that loops are played more smoothly and chosen more often over redundant cycles elsewhere in your animation data.
Rare animations - A cost multiplier > 1.0 can ensure that some animations only happen rarely. Use this when a specific animation is triggering too often in certain situations but you still want it to trigger sometimes.
Favorite Animations - if you have animations you would like to favour and play more often, consider giving them a cost multiplier < 1.0 to ensure they play more often.
To set the cost multiplier value, select the Cost Multiplier tag and edit the cost multiplier value in the contextual details panel:
Cost Multiplier - The cost multiplier to apply to all the poses within the tag range.
Override - If this is checked, the cost multiplier will override any cost multiplier applied to the animation as a whole. If override is not checked then the cost multiplier will be ‘multiplicative’ with the ‘whole of animation’ cost multiplier.
Distance Matching Tags (Experimental)
Note: Distance matching within motion matching is an advanced topic and an experimental feature of Motion Symphony. It may not function correctly in the current release and is not production ready.
In order to perform distance matching, a distance curve is required adjacent to a point within an animation. To enable the pre-processor to create these curves automatically and define ‘Distance Matching Sections’ a tag is required to specify the time in the animation we are matching distance to (or from).
Distance Match Type - The type of distance matching that this tag is for
None - Distance matching is disabled
Backward - Distance matching backward to a point (i.e. moving away from it). Used for ‘start’ type animations
Forward - Distance matching toward a point (i.e. moving towards it). Use for ‘stop’ type animations
Both - Distance matching both toward a point and then back to it. Used for ‘plant’ type animations
Distance Match Basis - Is the distance matching positional or roational
Positional - Distance is measured by a distance between two locations
Rotational - Distance is measured by an angle
Lead - Length of the distance curve prior to the tag (in seconds)
Tail - Length of the distance curve following the tag (in seconds)
For more information on distance matching, how it works and how to use it please see the relevant sections of this user manual.
Custom Tag Blueprints
It is possible to create your own custom tag blueprints and run your own logic during pre-processing. However, this is a very advanced topic and knowledge of the inner workings of Motion Symphony is required.
Please see the advanced topic on ‘Custom Pre-Process Tags’ for more details.