Formations
Every move order is a formation order. When you call SetAgentsTarget(members, point),
the simulation lays out one slot per member, arranged behind the destination and
deepening toward where the group is coming from, then walks each agent to its own slot. This
is what makes a selection move as a coherent block instead of a single-file line or a pile.
A single-unit order (SetAgentTarget) is just a formation of one - it walks straight to the
point.
Shapes
Set the Formation → Shape property:
A tight, round, hex-packed clump. The default - compact and natural-looking for most groups.
A roughly square block. Good for ordered, drilled-looking formations.
A solid triangle with its apex on the destination. Reads as an arrowhead / charge formation.
Tuning
Settling
When an agent reaches its slot (within SettleRadius) its settle latch flips on and
OnAgentsReachedGoal fires once for it. You can read the latched state at
any time:
TArray<bool> Settled = Crowd->GetAgentSettled({}); // parallel to GetAgentPositions
Settled agents still step aside for passers-by (governed by Settle Push, see
Avoidance) and then drift back, so a standing formation stays tidy as
others move through it.
TIP
Issuing a new SetAgentsTarget for agents that already have an unfinished order replaces it
and fires OnAgentsOrdersCanceled for them. This is exactly what you want
for re-pathing stuck units or redirecting a group mid-march.
Reading the formation
All are parallel to GetAgentPositions and accept the same optional index mask.