Motion
A Motion Behavior (beMotion) plays a Motion Clip on Entities. If several Motion Clips are running at the same time (in parallel through Motion or Locomotion Behaviors), they can be mixed according to different blend modes. See the Blending Motions tutorial for a more detailed explanation on how this blend modes work.
A Motion Behavior in the Behavior Editor
Creation
- Behavior Editor / Behavior
Library:
- Golaem Menu: Crowd Behaviors / Behaviors / CrowdBeMotion Node
- MEL command: glmCrowdBeMotionCmd;
Configuration
A Motion Behavior defines the following specific attributes. For common attributes see Behavior Common Attributes.
Motion Attributes
Motions Files (.gmo / .fbx / .usd / .bvh files) | Motion Clips to play when
this behavior is started. If several Motion Clips are specified, each
character will pick one when the behavior starts. The same chosen Motion
Clip will be played if the Motion Behavior loops (see below) or
restarts. |
Motion Id Random | If unchecked, Motion Clips will be assigned sequentially to Entities (first character will play the first motion...) else they will be assigned randomly |
Loop | If checked, the Motion Clip will loop automatically when it reaches the end. If not, the behavior will hold the last frame of the animation untill it is stopped |
Motion Id Attr | Name of the float Golaem Attribute or per-particle field of the relative particle system, containing the Motion Clip index value which will be played for this Character (For more explanation about how to use Golaem or PPAttributes, see here). If the index value is out of bounds it's moduloed and if the attribute does not exist, the regular behavior (sequential picking) is executed. |
Motion Mapping Attributes
Motion Mapping Mode / Motion Mapping File | This attribute allows a choice of four motion mapping mode: ![]()
|
Starting / Stopping Duration Attributes
The Starting / Stopping Duration value determines the time (in seconds) during which the animation goes from inactive to fully active (or vice versa). This time can be used to transition smoothly between two behaviors. When transiting from one Motion/Locomotion behavior to another, it is the average time between the Stopping Duration of the stopping behavior and the Starting Duration of the starting behavior which is used as transition time.
Starting / Stopping Duration Mode | This attribute allows a choice of two modes :
The Starting / Stopping Duration value is in seconds. |
Starting / Stopping Duration Min | See Random option of the Starting / Stopping Duration Mode
above Available only when the Starting / Stopping Duration Mode is set to "Random" |
Starting / Stopping Duration Max | See Random option of the Starting / Stopping Duration Mode
above Available only when the Starting / Stopping Duration Mode is set to "Random" |
Starting / Stopping Durationpp Name | Name of the float per-particle field of the relative particle
system, containing the Starting / Stopping Duration Mode value which
will be used (for more explanation about how to use ppAttributes, see ppAttributes Handling) Starting / Stopping Duration value is set to 0 if the ppAttribute name is empty or invalid Available only when the Starting / Stopping Duration Mode is set to "Per-Particle Attribute" |
When fine-tuning the transition between two consecutive Motion or Locomotion behaviors, it's advised to use the Animation Transitions, which will automatically fill the starting/stopping durations of the behavior.
Body Mask Attributes
By default, a motion is played on the entire body (as specified in the Motion Mapping File). But the Motion Mapping File configuration can be filtered by the body mask to replay the animation only on specified channels.
*
Body Mask Attributes of a Motion Behavior*
Pelvis | If this box is checked, the pelvis part of the motion will be played. The pelvis part includes the global position and orientation of the animation. If not checked, the animation will be played "in place" |
Spines | List of the spines nodes to play on the entity. Use the ![]() Star ( * ) wildcard is authorized at the beginning or/and end of names (i.e. spine*, *spine, etc.). Separate the channel names by comma ( , ), leading and trailing spaces will be ignored. Use the * wild card to use all limbs. Names are NOT case sensitive (compared as lowercase). |
Limb Channels | List of the limbs channels to play on the entity. Use the |
Effector Channels | List of the effectors channels to play on the entity. Use the ![]() Star ( * ) wildcard is authorized at the beginning or/and end of names (i.e. left*, *arm, etc.). Separate the channel names by comma ( , ), leading and trailing spaces will be ignored. Use the * wild card to use all effectors. If an effector channel is selected, the corresponding limb channel is automatically added also. Names are NOT case sensitive (compared as lowercase). |
Blind Data Groups | List of Blind Data Nodes
or Blend Shape Groups to play on the character. Use the |
Blind Data | List of Blind Data or Blend Shape to play on the character. Use the ![]() Star ( * ) wildcard is authorized at the beginning or/and end of names (i.e. mouth*, *eye, etc.). Separate the Blind Data / Blend Shape names by comma ( , ), leading and trailing spaces will be ignored. Use the * wild card to use all Blind Data / Blend Shape. Names are NOT case sensitive (compared as lowercase). |
Start Percent Attributes
The Start Percent value determines the percentage of the Motion at which the Motion is started. For instance, use value 0 to start at the beginning of the motion, or use value 0.5 to start at the middle of the motion ...
Start Percent Mode | This attribute allows a choice of two Start Percent modes :
|
Start Percent Random Min | See Random option of the Start Percent Mode above Available only when the Start Percent Mode is set to "Random" |
Start Percent Random Max | See Random option of the Start Percent Mode above Available only when the Start Percent Mode is set to "Random" |
Start Percentpp Name | Name of the float per-particle field of the relative particle
system, containing the Start Percent value which will be used on the
Motion (for more explanation about how to use ppAttributes, see ppAttributes Handling) |
Speed Ratio Attributes
The Speed Ratio is applied when playing the Motion. If set to 1, the Motion is played at its original speed.
Speed Ratio Attributes of a Motion Behavior
Speed Ratio Mode | This attribute allows a choice of four Speed Ratio modes :
|
Speed Ratio Random Min | See Random option of the Speed Ratio Mode above Available only when the Speed Ratio Mode is set to "Random" |
Speed Ratio Random Max | See Random option of the Speed Ratio Mode above Available only when the Speed Ratio Mode is set to "Random" |
Speed Ratio Attr Name | Name of the float per-particle field of the relative particle
system, containing the Speed Ratio value which will be used on the
Motion (for more explanation about how to use ppAttributes, see ppAttributes Handling) |
Use Velocity From Motion Clip | If checked, the input motion velocity will be computed from the Motion Clip; otherwise the Motion
Velocity will be set from the "Motion Velocity" field below Available only when the Speed Ratio Mode is set to "Automatic" |
Speed Ratio Random Max | See Use Velocity From Motion Clip above Available only when the Speed Ratio Mode is set to "Automatic" and if the "Use Velocity From Motion Clip" option is not checked |
Blending Attributes
If several Motion or Locomotion behaviors are played at the same time on the same part of the body, these attributes define how to mix the animation handled by each of those behaviors.
Blending Attributes of a Motion Behavior
Blend Mode | This attribute defines how the animation handled by the Motion
behavior is mixed with animations handled by other Motion or Locomotion
behaviors. Two blend modes are available (refer to the animation tutorials):
Caution:
Note that footprints are not taken into account when using one
of the additive modes. It's recommended to avoid animations that move
footprints with this option
|
Priority/Weight Attributes (Interpolated Blend Mode only)
If several Motion behaviors (setup in Interpolated blend mode) or Locomotion behaviors are played at the same time on the same part of the body, only the behaviors with the highest priority will be played. If several behaviors share the same priority, they will be blended together according to their weight normalized value (for instance, if two Motion behaviors share the same priority with a weight value of 1, they will be blended each at 50%).
See the Body Mask attribute to know how to apply a behavior on specific parts of the body
Priority/Weight Attributes of a Motion Behavior
Priority | Priority to affect to Motion Behavior |
Weight Mode | This attribute allows a choice of three Weight modes :
|
Weight Random Min | See Random option of the Weight Mode above Available only when the Weight Mode is set to "Random" |
Weight Random Max | See Random option of the Weight Mode above Available only when the Weight Mode is set to "Random" |
Weightpp Name | Name of the float per-particle field of the relative particle
system, containing the Weight value which will be used on the Motion
(for more explanation about how to use ppAttributes, see ppAttributes Handling) Weight value is set to 0.5 if the ppAttribute name is empty or invalid Available only when the Weight Mode is set to "Per-Particle Attribute" |
For a Motion Behavior setup in Interpolated Blend Mode, the weight computed for interpolation depends on the Priorities & Weights parameters setup for all the interpolated Motion Behavior currently running. Only the behavior with the highest priority value is used. If there are several behaviors with the highest priority, then an interpolation is made between them according to their normalized weights, in order to always obtain 100% of animation. So for a Motion Behavior with a weight value of 0.5:
- If it is the only interpolated Motion Behavior currently running, then 100% of its animation will be used in blend;
- If another interpolated Motion Behavior with a lowest priority starts, then 100% of the first animation will still be used in blend (the starting animation will not be used);
- If another interpolated Motion Behavior with the same priority and a weight value of 1.5 starts, then 25% of the first animation will still be used in blend, with 75% of the starting animation;
- If another interpolated Motion Behavior with a highest priority starts, then the first animation will not be used in blend anymore (100% of the starting animation will be used).
For more details, refer to the Priorities & Weights section in the Interpolated Blending Mode tutorial
Additive Blend Attributes (Additive Blend Mode only)
If several Motion behaviors (setup in Additive blend mode) are played at the same time on the same part of the body, each of these behaviors will be blend/added in a given amount according to the specified Additive Blend Ratio, divided by the number of running additive behaviors (for instance, if two Motion behaviors M1 and M2 are run in Additive Blend Mode in the same time respectively with additive blend ratio of 1.0 and 2.0, the resulting animation will be added an amount of 50% of M1 and 100% of M2).
Additive Blend Attributes of a Motion Behavior
Additive Blend Ratio Mode | This attribute allows a choice of two Additive Blend Ratio modes :
|
Additive Blend Ratio Random Min | See Random option of the Additive Blend Ratio Mode above Available only when the Additive Blend Ratio Mode is set to "Random" |
Additive Blend Ratio Random Max | See Random option of the Additive Blend Ratio Mode above Available only when the Additive Blend Ratio Mode is set to "Random" |
Additive Blend Ratiopp Name | Name of the float per-particle field of the relative particle
system, containing the Additive Blend Ratio value which will be used on
the Motion (for more explanation about how to use ppAttributes, see ppAttributes Handling) Additive Blend Ratio value is set to 1.0 if the ppAttribute name is empty or invalid Available only when the Additive Blend Ratio Mode is set to "Per-Particle Attribute" |
For a Motion Behavior setup in Additive Blend Mode, the amount of animation added is controlled by the Additive Blend Ratio parameters. Notice that this ratio is divided by the count of Motion Behaviors currently running in additive blend mode, so for a Motion Behavior with an additive animation ratio of 0.8:
- If it is the only additive Motion Behavior currently running, then 80% of the animation will be added;
- If another additive Motion Behavior starts, then the amount of animation added will lower to 40% (whatever is the value of the additive animation ratio applied to this other additive Motion Behavior).
For more details, refer to the Additive Ratios section in the Additive Blending Mode tutorial
Advanced Attributes
Interpolate Between Frames | If checked, the motions will interpolate postures between frames of the animation. This usually gives better results, but if your motions have a framerate superior to the Maya framerate, this option can be unchecked for performances purposes. |
IK plane roll from animation | This option should be checked when some specific animation produce a bad knee/elbow position on characters |
Particle/Skeleton Sync | This option defines how the animation and particle's positions are linked. You usually don't need to change the default setting unless using a very specific setup.
|
Visual Feedback Attributes
Defines the Motion Behavior Visual Feedback displayed in the Crowd Visual Feedback. For common Visual Feedback attributes see Behavior Common Attributes.
Notice that these attributes can also be configured in the Crowd Visual Feedback
Visual Feedback Attributes of a Motion Behavior
Motion | Show the Name of the Motion in use inside the Crowd Visual Feedback |
Motion Clip visual feedback for a Motion Behavior