Setting Up How Actors Avoid Collisions

 
 
 

When a collision with one or more other actors is imminent, the actor reacts according to what you define with the Acclerations parameters in the Initialize Collision Avoidance compound, as described in this section.

You can determine how much the actor slows down to avoid a collision, or how much the actor turns to avoid a collision. You can also create a buffer around each actor to prevent collisions. These parameter values are initialized when the particles are emitted, and then used by the Simulate Collision Avoidance compound during the particle simulation, as described in Anticipating Collisions in the Simulation.

To open the property editor for the Initialize Collision Avoidance compound, you can choose the CrowdFX Simulation Edit Inspect Init. Collision Avoidance command from the ICE toolbar.

Setting the Speed Limits

The Max Deceleration value in the Initialize Collision Avoidance compound is the maximum number of units per second that an actor can slow down to avoid a collision. For example, if the actor's maximum deceleration speed is not low enough, it might not be able to avoid collisions because it can't slow down enough.

In the image below, the deceleration value is not low enough, so some of the particles don't have time to avoid collision.

In the image below, the deceleration value is low, so the particles have time to avoid each other and move past each other easily.

The Max Acceleration value is the maximum number of units per second that an actor can speed up in order to reach the Target Speed value after avoiding a collision. This value is part of the calculation of the actor's speed.

See Controlling the Actor's Animation for more information.

Setting the Rotation Limits

The Angular Velocity at Slow Speed/Target Speed values in the Initialize Collision Avoidance compound determine how much an actor will turn away (in degrees per second) from another actor to avoid collision, either when he's going slowly or at target speed.

For example, when an actor slows down to avoid a collision, he can turn away using a large angle; if he detects a possible collision with another actor, he then has a larger range in which he can turn to get out of a "stalemate" with the other actor. When the actor speeds up to target speed, it means that he's not in danger of having a collision, so he could use a smaller angle.

In the image below, the angular velocity value at slow speed is high: if there is a collision, the particles can rotate enough to move around each other.

In the image below, the angular velocity value at slow speed is low: the particles stay in a stalemate because they can't rotate enough to move around each other.

Creating a Buffer Around the Actors

When particles are emitted, you can set several parameters the help prevent particles (actors) from being too close to each other upon emission (see Setting Up the Crowd Particle Emission).

Once they are emitted and move away from the emitter, you can keep a "safety buffer" around each particle (actor) to help prevent collisions when the actors are very close to each other. Creating a buffer takes into account the geometry of each actor instance's envelope, which is not considered by the particle emission.

To create a buffer, set the Actor Thickness value (units) in the Initialize Collision Avoidance compound, which is the radius around the geometry of each actor instance.

In the image below, the thickness value is low so that the particles can get quite close to each other. They can move around each other faster, but risk having a collision.

In the image below, the thickness value is high so that the particles have more space around them, but tend to get more congested when they meet in the middle.