NavAgent \ Pathfinding issue

I have pawns that are different in size, for each type ive created an entry in Project Systems → Navigation Systems and Navigation Mesh.

These pawns are able to move and everything seemed to be fine but when ive gotten to the point of testing their interaction I’ve got a wierd behavior from smaller pawns towards the big ones ( they are like 2x big than the small ones).

Small pawns ignore moving towards the Big pawns (for just moving or attacking). But the Big pawns on the other hand can move for the small pawns.

Reducing the size of the capsule componenet fixes it but thats not right.

I would really appreciate any help!

Hi there,

Do you have crowd simulation or RVO enabled?

But the Big pawns on the other hand can move for the small pawns.

I’m not sure what you mean here.

Screenshots would help.

–mieszko

Hello MieszkoZ,
yes i do have RVO enabled and ive set some big numbers.

Heres a screenshot of the situation.

I have my pawns( characters that i can select and move around).
Ive set that theres 2 types of there pawns friendly and enemy, they are parented to either one class or another.
Ive made a AI search and destroy logic via events and sensing component. So basicly if the enemy is in sight friendly see and attack and vice versa for the enemy pawns.

Among these units there a giant pawn version (displayed on the screenshot). And the enemy pawns ignore it, first i thought it was something with collision but than ive done some simle test with the level blueprint and found that simple “move to actor” or “move to location” isnt working if i plug this pawn to the goal. this behaviour is the same for enemy or friendly units towards this “giant” pawn.

However if do the “move to location/actor” between the giant pawns everything works. So im betting its the navigation.
Hope this clears something for you.

Another random thing is that ive using 1u=2uu.

I found the problem, its the “Move to Actor” node, I’ve unchecked the “Use pathfinding” and the enemy pawn started walking towards the giant pawn. Im not sure how bad the pathfinding is withouth the “Use pathfinding” feature.

My guess is that those smaller pawns dont move becouse, as ive posted earlier screenshots, that in the Engine -Navigation System the giant pawn (trow) is associated to another nav. group and each group has their own nav.mesh recast object.

If you disable “Use pathfinding” you don’t need any navmesh since there’ll be no pathfinding performed at all, just straight-line movements.

My guess would be you need a bigger Z value for small pawns’ DefaultQueryExtent.

–mieszko

I don’t know how MoveToActor works internally, but does it work if you use MoveToLocation? And does it work if you use MoveToLocation adjusting the the target Z value? Because the pawns actual location is in the middle of their bodies, which is elevated from the ground.

Moving to the bigger pawns might not be working because their location is more elevated from the ground.

yes that was it, but can you please explain what doesnt DefaultQueryExtent mean, so that i would know how to properly set the values!

Short answer is: DefaultQueryExtent defines a box used to find locations on navigation that are closes to specified world location. If giant’s pelvis location (which is usually the “actor location”) is more above the navmesh than DefaultQueryExtent.Z then no corresponding navmesh location will be found and pathfinding will instantly fail.

The longer answer is the simple one plus the following: It should work even with out-of-the-box DefaultQueryExtent value, but you need to set Pawn.BaseEyeHeight to proper value since it’s used to calculate “feet location” (pelvis location - BaseEyeHeight). Or just override APawn::GetNavAgentLocation to make feet location whatever you want.

I suggest you did what the longer version says :wink:

–mieszko

Thank you verry much!!! And everything works!