Sync Groups

Sync Groups are to keep related animations that may have different lengths synchronized. For example, you may have a walk cycle and a run cycle that you would like to blend together so that the character can smoothly accelerate or decelerate. But what if these animations were different lengths, such as the walk being significantly longer than the run? In such a case, directly blending from one to the other would have unnatural results, an unsightly "beat" as the foot animation switches.

Sync Groups solve this problem by allowing one primary animation node to serve as the Leader, and all other related animations will simply scale their time length to match. Typically, the leader is the node with the greatest blend weight. As the weight blends and the follower's weight exceeds the leader, the follower becomes the leader. In this way, the two animations can work smoothly together offering a seamless transition from one motion to the next.

It should be noted, however, that since the time of the animations is shifting, certain animation considerations become apparent. For instance, in the example of blending between different walk and run cycles, you would want to make sure your animations all started and ended on the same foot. Establishing these standards early will help everything blend much more smoothly!

Group Roles: Leaders and Followers

Sync Groups work off the concept of group roles, in which one animation is the "leader" while all other animations are "followers".

Leader
  • Provides the master animation length that is used by all followers

  • Executes all of its Notifies

Follower
  • Scales its animation length to match the leader

  • Has its Notifies suppressed, deferring instead to Leader's Notifies

Leaders and followers are designated simply by which animation has the greater blend weight, as in the following example:

Image Description

diagram_RunAnimation.png

Run animation, original size, set to a Sync Group named WalkRun.

diagram_WalkAnimation.png

Walk animation, original size, also set to a Sync Group named WalkRun.

diagram_walkAnimationScaledDown.png

In this instance, the blend weight for the run animation would be greater than the walk animation. Since they are in the same Sync Group, the walk scales down to match the length of the run animation.

diagram_RunAnimationScaledUp.png

Here, the weighting has switched such that the walking animation is receiving a greater blend weight. This causes the run animation to scale up to match the length of the walk.

Setting a Sync Group

To set the Sync Group, select the animation node in the AnimGraph and look in the Details panel. You will see the Sync Group property.

AnimationSyncGroup.png

Property Description
Group Name This is where you enter the name for you Sync Group. Generally, you will want all related animations that are meant to blend together (such as body motions for sneak, walk, run, sprint) to all be in the same Sync Group.
Group Role This is where you set the type of membership in the group (potential leader, always follower, etc...)

Sync Groups can be set on AnimSequence and BlendSpace nodes within the AnimGraph, as well as inside State Machines.