Crowd Agent *Custom* Avoidance

   1668   3   0
User Avatar
Member
10 posts
Joined: Aug. 2018
Offline
Hi guys!

I've made some real progress with my herding simulation, but now we need to fix the avoidance problem.

The Crowd Solver has the built in avoidance based on pscale; but since my characters are longer than they are wide it doesn't really work for avoiding one another.



Does anyone have a technique to help space characters apart (AND keep them apart) based on their bounding area or something similar?

As always, a big thanks for any help!
Edited by Totheroo1 - Oct. 26, 2018 19:50:02

Attachments:
avoidance1.PNG (156.5 KB)

User Avatar
Member
10 posts
Joined: Aug. 2018
Offline
I should add that I have Left and Right turn animations that I can use with triggers/fuzzy logic to help drive the cows more elegantly away from each other.
User Avatar
Member
44 posts
Joined:
Offline
I'm running into that same issue too. What I've done for now is have them do a pcopen lookup of their neighbors and slow down if they are within a certain distance and if there is a certain amount of neighbors near them. Also, I have a flow field that they follow. It helps but there are still issues. Still, I hope to hear if anyone else has a solution to this.
User Avatar
Member
10 posts
Joined: Aug. 2018
Offline
If we tried simplifying the concept to this:
  1. every agent has a bounding box
  2. see if this bbox intersects (or is going to intersect) another bbox (find the neighbors!)
  3. if it does, push the agent particle away from it's intersecting neighbor

The POP Steer Avoid, POP Steer Cohesion, and POP Steer Separate forces work somewhat in this manner, but they're mostly limited to a spherical/radial distance from the agent source point/particle. Though, I really dig the Field of View option, it's not working for me.

primfind() was suggested to me for this task; but I don't think it works on packed agents/primitives?
  • Quick Links