When you have different groups of actors who you want to act together, you can create different social groups within the crowd. This makes actors "ignore" each other in terms of collision avoidance so that they get very close to each other without slowing down or turning away to avoid collisions. Of course, normal collision avoidance behavior is still in effect for actors who are in different social groups.
For example, when actors are following a path (see Following a Path), they will detect the actors in front of them and start to slow down and turn away from the path. If you put these actors in the same social group, they will ignore the actor in front of them in terms of collision avoidance behavior, and stay on the path.
In the image below, the actors are in the same social group based on their emitter ID.
The actors in the same social group don't consider each other for collision avoidance, but avoid the actors in the other social group that are coming toward them.
Set the Social Group Index value in the Initialize Collision Avoidance compound that's in the simulation point cloud's Emit ICE tree.
You must create some type of logic to assign the actors to a particular social group. For example, the social group can be assigned according to the emitter's ID, as shown here.
Get an Ignore Neighbors in Same Social Group compound and plug it into the Execute Before Avoidance Solver port on the Simulate Collision Avoidance compound in the Particle Simulation ICE tree.
Set the Factor value for this compound, which lets you reduce the level of collision avoidance that is used for actors within the same social group.
A value of 1 means that collisions are computed when the actors in the same social group are very close to each other, but the collision avoidance is not used so the actors don't slow down or turn away from each other.
You may need to lower this value if actors in the same social group are colliding with each other too frequently or too obviously.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License