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.
Animation Data Setup
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.
Both animation inputs methods are configured via setting the AnimNameToSequence
map.
This can be done in one of two ways:
Via the render target pawn
Where possible, the animated crowd obtains data from the LOD0 render target actor class, e.g. the skeleton and the anim instance. We also enable it to provide the AnimNameToSequence
map, so it can specify what anim sequences it needs to support.
If your LOD0 class implements the CrowdAnimationProviderInterface
(this is done automatically for children of the M2_CharacterBase
), then it will expose a GetAnimNameToSequenceMap
function, which can provide the list of anim sequences.

BP_M2Example_PlayerCharacter
. It provides the CrowdAnimNameMap
, mapping e.g. the name Clap
to a "clapping" anim sequence. This list enables our Emotes animations.Via the Crowd Data
If your animated crowd provides a Skeletal Animated Crowd Data
data asset, you can fill in the AnimNameToSequence
map there.

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.
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
If a crowd member has
FAnimatedCrowdMemberState::AnimState
specifiedThe named animation will be play back on that crowd member
If a name isn't specified (
NAME_None
) or it isn't found in theAnim Name to Sequence list
, then we go to the next step and check the ABP
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 logicCrowd member will play back ABP driven animation
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?