Creating a Locomotion Set

A Locomotion Set is the set of motions that are loaded in the Locomotion Behavior.

This page describes the best practices to obtain the best possible locomotion animation. Additional guidelines can be found in the Locomotion FAQ, you should also read them after reading this page.

To start with, you can check the Golaem Live! video about Creating Your Own Locomotion Set

Motions to be used in a Locomotion Set should be cyclic and contain one and only one support phase per channel in order to be synchronized with other motion.
Motion with more than one support phase will still be used in the Locomotion, but will not be synchronized with other motions.

Notice that the provided motions need to define a root translation and/or delta orientation (used to compute the original velocity of the motion). Using in-place motions will not work with the locomotion behavior. See the Motion Tab of the Character Maker or the Motion Clip attributes to see how to edit root translation/delta orientation.

As explained in the algorithm part of the locomotion, it uses a two-dimensional parametric space:

  • linear velocity on one dimension;
  • angular velocity on the other.
Abstract representation of the two-dimensional parametric space containing the motions: each blue dot represent the linear and angular speeds of a motion

By blending motions in the two-dimensional parametric space, the available linear and angular velocities are all contained in the convex hull formed by these motions (in green in the following illustration)

Abstract representation of all the available linear/angular velocities with a given motion set

To get the best of the locomotion system, it is advised to fill this two-dimensional parametric space with motion at regular positions.

The linear and angular velocities of the motions can be seen in the Motion Tab of the Character Maker:

As all motion within the locomotion can be blended together, it is recommended to add only motions that have the same style (for instance, no motion with arms up and others with arms down).

In such a case, two different Locomotion Behavior (one for arms up, the other one for arms down) should be created, and the switch between the two made when desired by using a trigger.

Set the neutral motion

The neutral motion should be unique, and in same style than the other animations because it may be blended with other motions to slow them down.

Motion set with only the neutral motion Two-dimensional parametric space

If no neutral motion is available, the Locomotion Behavior can create a neutral posture and use it instead (make sure the correct option is checked)

Add walking/running motion(s)

Same style, running animation is not mandatory if the entities are not going to go faster than the fastest walking animation.

Walking animation is not mandatory if the entities are not going to go slower than the lower running animation.

Motion set with idle + walk and run motions Two-dimensional parametric space

It is possible to set replay ratio on some motions to extend the reachable space when there is not enough motions (for instance using the walk animation once with a replay ratio of 1, and a second time with a replay ratio of 2 instead of using a running motion)

Add turning motion(s)

At this step, only motions with null angular velocities were added in the set. The locomotion is already usable, but turning animation may looks unrealistic.

It is advised to add turning-walking motions to increase the reachable two-dimensional space.

Motion set with walk, run + turn motions Two-dimensional parametric space

It is possible to set some motions as mirrored in the Locomotion Behavior when left-turn and right-turn animations are not both available (for instance each turn-motion in the illustration was used twice to populate the space: once normal and once mirrored)

The sample motions provided by Golaem are turn motions for 45 / 90 / 135 / 180 degrees per second. Note that you could totally use different angular speeds provided the range of provided speeds is large enough to cover the trajectories which your characters need to follow.

Also remember that because of Locomotion Behavior requirements, all motions really need to include only one footstep per foot. But, for example, speaking about a 135 degrees per second motion, it does not mean that your character needs to make a 135 degrees turn in one footstep. If your animation last 0.5s, it only needs to turn 135 x 0.5 = 67.5 degrees.

Starting motion(s)

The reachable two-dimensional space is already well shaped for the locomotion behavior. The next step to improve it is to add motions that can be used at the beginning of the animation:.

Motion set with walk, run and turn motions + idle turn motions Two-dimensional parametric space
The Locomotion Behavior automatically uses motions that have a null linear speed to improve the starting animation:

With turning null linear speed motion

Without turning null linear speed motion