Crowd Animation

Overview

Crowd members can be animated in two ways

  • By setting animation sequences directly on the crowd member themselves

  • By using an Animation Blueprint (ABP)

These techniques can be used either together or in isolation.

If an animation sequence is specified directly on a crowd member it will take precedence over the ABP animation until the override is removed. The ABP will continue to update in the background however.

Animation Data Setup

Both animation inputs methods are configured via settings in the Skeletal Animated Crowd Data data asset type.

Example Skeletal Animated Crowd Data specifying ABP driven animations as well as named sequences

In the above example, an ABP is connected via the Crowd Anim Instance parameter and additionally a list of named sequences are supplied in the Anim Name to Sequence list.

In order to use an Animation Blueprint with the crowd it must first be configured to be compatible. More details on ABP setup can be found here.

Selecting An Animation Source On A Crowd Member

Animation setup for each crowd member is specified by configuring properties within its FAnimatedCrowdMemberState .

Animation selection is performed as follows

  1. If a crowd member has FAnimatedCrowdMemberState::AnimState specified

    • The named animation will be play back on that crowd member

    • If a name isn't specified (NAME_None) or it isn't found in the Anim Name to Sequence list, then we go to the next step and check the ABP

  2. If a crowd has an ABP specified

    • FAnimatedCrowdMemberState::AnimFloatParameters will be updated for the crowd member - these contain the anim vars used to drive things like ABP state logic

    • Crowd member will play back ABP driven animation

  3. If there was no animation sequence set directly and ABP wasn't present

    • Crowd member will be set to ref pose and will render, but not animate

Last updated

Was this helpful?