Detour Crowd With multiple agent sizes

Is it possible to ise multiple agents (sizes I mean) while using detour crowd AI controller ?

I recently tried to use 2 different agents (both properly defined in navmeshsettings in editor)

They are working flawlessly with usual AIController

but only the biggest agent can move with detour

Any help please ?

*** Edit: ***

Inspecting the source code it seems that the NavMeshData is cached to MyNavData for crowd manager
that allows to make batch queries which makes a perfect sense for optimization!

However this design makes kittens sad when we need to use some outcast units which are bigger than the regular units (specifically my case)

I can have 90% of all my agents to operate on 1 navmeshdata - because their radius sizes are not that different from each other so they can use the bigger radius (size) of them, however the rest 10% are much bigger agents - that makes it problematic to scale the little agents to their size to be used with detour.

Question is it possible to do something to make CrowdManager be aware of both NavMeshes ? (I am not afraid of C++).

The straight forward approach would be to let all the agents to use the NavData of the biggest Agents, while path find them on the closest NavData to their size.

Any help would be highly appreciated!

@MieszkoZ could you assist please ?

Bump bump bump

BUMP! Mieszko :slight_smile:

I think they are not interested to help out with this :-).
I think it is doable by adding a proxy layer between Pathfollowing components
but this will require an engine modification, or redoing most of the Detour crowd manager (mostly copy paste the existing with slight changes, since the needed 5 methods are not virtual).

Hi @ColdSteel48 !
Did you ever find a good workaround for this issue, other than a custom engine modification?

There is no real workaround, in the end I implemented RVO2 with some tricks and own movement component. You can fork the detour/recast lib and integrate it to the engine on your own. Or switch to another engine that already implements it.

It’s really pity. And a shame.
I hope this feature will be added. I do not get the sense of limit such a feature to one agent size. A lot of project will word with “supported agents” and therefor different nav meshed.

Did anyone manage to implement a fix for this issue? It’s quite an issue for us that only 1 nav mesh is supported by the crowdmanager