Motions
Motions are at the core of the Motion Controller. Think of motions as a mix of animator states + animations + code. Together, they allow us to do complex things like climb, attack, fly, and more.
Motion Tags
Motion Tags allow you to ‘tag’ motions by adding custom identifiers. For example, you could add the string ‘Foot IK’, ‘Combat’, or anything you want.
The reason you may want to do this is to run special code depending if the motion has the specified tag. For example, you may have foot IK code to help the foot position itself nicely on the terrain. However, you only want that foot IK to run when certain motions are active. After all, you don’t want it to run if you’re flying.
So, you can check the active motion to see if the ‘Foot IK’ tag exists. If so, you run your foot IK logic.

You can check the tag like this:
1
2
3
4
5 MotionController lMotionController = gameObject.GetComponent<MotionController>();
if (lMotionController.ActiveMotion.TagExists("Foot IK"))
{
// do foot IK
}
Tags are case insensitive.
Sub-Systems
In addition to the core Motion Controller component that manages animations, the Motion Controller asset includes several sub-systems to help you build your game. The following is a list of sub-systems you may find useful.
Basic Attributes
Attribute list for storing information about the character such as Strength, Intelligence, Wisdom, etc.
To learn more about Basic Attributes, go here.