Simple transitions

Simple transitions are the simplest way to sequence two motions.

During a simple transition between two motions, Golaem will automatically blend the two motions together during a given duration so that the animation is continuous, even if the motions do not perfectly match. 

Of course these transitions could be designed manually by animators, but this is time consuming and would only allow transitions at some given points in time which makes creating diversity in behaviors complicated. Being able to automatically compute a transition from one motion to another at any time is what enable to start motions with random offsets, or trigger them at any time.

Although simple transitions seems like magic, they will not create motions for you. If you need to create a transition from a sit character to a standing one, providing only a sit and a stand motion will lead to a poor result. However they will enable you to easily transition from your sit motion to a stand-up motion with bothering about when you do this transition. See the example below.

How to create a simple transition

Note: in this example we will use Motion Behavior, but it works the same way with Locomotion Behaviors or SyncMotion Behaviors.

1. Place the first Motion Behavior and double-click on it to load a .gmo file

2. Drag and drop a second Motion Behavior on the arrow just after the first behavior, and double-click on it to load your other .gmo file

Do not forget to set a Stop Trigger on your first motion, otherwise it will loop or play its last frame infinitely (depending if its loop attribute is checked or not). See steps 3 and 4 below

3. Double-click on the little arrow at the right of the first motion and drag and drop a trigger from the trigger library (here we use a Frame trigger)

4. Configure your trigger from the Maya Attribute Editor (here we say we want the Stop Trigger to be activated at frame 12)


Sequence between a sit motion and a sit-to-stand motion. A Stop Trigger is set on the sit motion to let transition happen (here at frame 12)

Considering the following input animations


Sit animation

Sit to Stand victory animation

Golaem will blend these animations together at any point in time, based for example on an external event (goal!!! or mexican wave) or like in our example at a given frame.


Result of the sequence setup above

NB: for the blend to happen correctly and the root of your character effectively moving up, all conditions for a correct ground adaptation must be met.

Fine Tuning Simple Transitions

A simple transition will alway start when the first motion Stop Trigger is activated (provided the second motion Start Trigger is true). To choose exactly when the transition will happen regardless of when the Stop Trigger is activated, you need to use a Custom Transition

However the blending duration can be customized using each Motion Behavior Starting/Stopping Duration attributes

The blending duration is ( Motion 1 stop duration + Motion 2 start duration) / 2

For example:

Behavior Time Triggers & Blending

As you can see from the above cases, a Motion / Locomotion / Sync Behavior is still active during the stopping duration after the stop trigger is activated.

It means that if you want to play a motion exactly once, setting a Motion Time Trigger to 100% and keeping the default stopping duration (0.4s) will not work. It will actually play the motion 100% + 0.4s.

If the Behavior is not set to loop, the last posture will be played for 0.4s.
However if the Behavior is set to loop, it will loop back to the beginning of your motion and play it for 0.4s. It could cause a discontinuity in your animation if the motion has not been created to loop.

There are different solutions:

  • (recommended) using a Custom Transition with a trigger before the actual transition (it can even be true) and the custom transition setup to happen at the end of your animation
     
  • disabling Loop on the Behavior. The last posture will still be played, but depending on your use case it may not be a problem.
     
  • setting the stopping duration to 0. The Behavior will stop at once (but as no blending will happen the transition can be harsh)
     
  • setting the Behavior Time trigger to 100% -0.4s (depending on the stop duration) in order to activate the stop trigger while a part of the motion is still available to be played during blending

​​