Choosing between Motion / Locomotion / SyncMotion Behaviors
Golaem offers several behaviors for playing animation.
|Motion Behavior||Replay a motion as-is|
|Locomotion Behavior||Blend over a set of motions depending on the character speed and orientation|
|SyncMotion Behavior||Replay a motion in a given location, or with a transform constraint|
These behaviors target different use cases and users are sometimes confused about which one they should use.
Here is a quick overview about when and why one behavior should be preferred to others depending on the use case.
When playing a static motion (e.g. spectators sit in a stadium)
- When the motion should be controlling the character position without constraints (i.e. the particle is not controlled by GoTo/Navigation Behavior or Maya field and you do not want to ensure any constraint on the character position/orientation)
Getting variety in a stadium using Motion Behaviors. See Stadium Behaviors
Do not use it:
if you use a Motion Behavior on top of a GoTo/Navigation behavior, (at least with default settings) the translation from this motion will be added on top the translation from GoTo behavior, resulting in characters colliding with each others or with obstacles. See Locomotion.
- if you want a row of characters to simply walk forward, but need to randomize motion start time. If you just use a Motion behavior for this, their orientation when starting can be different and they will end up colliding. Use a SyncMotion Behavior or a Locomotion Behavior instead.
Result of applying a Motion behavior with random start percent between 0 and 1, see the right solution below
When you need a complex blending of motions depending on characters speed/orientation (typically a character walking or a bird flying)
- When controlling the character position with another behavior (GoTo/Navigation) or method (Maya fields, particle goals...)
The usual Locomotion + GoTo/Navigation behaviors setup, see Populating City Streets for more details
- (even with only one motion) To precisely follow a trajectory
Do not use it:
if nothing else is controlling the character position (at least with default settings, if the particle do not move, the Locomotion Behavior will only play the rest motion)
- To control the position/orientation (all or only part of it) where a motion will be played
Same situation as above, made with a SyncMotion Behavior. See the Playing Motions Straight Ahead with Random Start
- To play a motion keeping the same offset to scene origin when it was recorded
Synchronized Close Combat action using the SyncMotion Behavior. See this tutorial
Do not use it:
- To simply animate the position/orientation of a character with a locator (use AdaptPosition / AdaptOrientation instead)
Animating characters' position using a polygon. See Keep Formation using and AdaptPosition Behavior