CrowdFollowingComponent No Avoidance & Jittering

Hello!

I’m developing a top-down RPG where crowd avoidance is very important for navigation.

I’ve recently used the ‘UCrowdFollowingComponent’, extended it and created my own ‘RPGCrowdFollowingComponent’. I’m using the following high quality setup in the constructor:

bRotateToVelocity = false;
bUpdateDirectMoveVelocity = false;
bEnableSeparation = true;
bEnablePathOffset = true;
bEnableOptimizeVisibility = false;
bEnableOptimizeTopology = false;
	
// Attempt to set the quality
AvoidanceQuality = ECrowdAvoidanceQuality::High;
	
SeparationWeight = 50.0f;  // Was 2
CollisionQueryRange = 600.0f; // Was 400
bUseBlockDetection = false;

The problems are:

  1. While for characters with high velocity the query range is ok, for character with a small velocity the query range is tiny causing awful jittering when close to the target. (attached 2 images on with a good hero query range an one with a bad troll monster range). Why is the sampling query range dependent upon the character’s speed rather than used from the settings?

2 Characters get stuck on each other, their velocity is set to almost zero and they seem to get stuck on each other without real avoidance. That slowing down is horrible, I want a smooth navigation between NPC’s

My questions are:

  1. Is the ‘UCrowdFollowingComponent’ ready for production? What are the unreal guys using in their games for their NPC’s? Since with many setup’s that I’ve tried it works worst than games from the 99’
  2. Should I look for another solution if the crowd thing is not production ready? What else should I try?
  3. How can I improve the avoidance quality? (or q2 answers this?). Where is a complete lack on resources on how to tackle this problem. What are the work-arounds?
  4. Can I somehow use simple path following components instead of the crowd ones and somehow simulate the avoidance? Those seem to work quite nice (except having doors or other monsters).

Thanks a lot for all the help!

1 Like

As a workaround for the problem, I’ve moved on to RVO avoidance that seems to work a lot better than the ‘CrowdsManager’. It is not an ideal solution but at the moment the DetrourCrowds are out of the question.

Maybe this will help someone else in their decision of dynamic obstacle avoidance.

from 4 years later, have you solved the problem?
I think I just meet the same problem

Nope, used RVO. But I might give it a new try for our sequel.