To delimit our NavMesh we are using NavModifierVolumes (seems the recommanded approach). With “Static” Runtime Generation we are able to preprocess the NavMesh for best performance.
But we would also need NavModifierVolumes to toggle some specific area (for doors or for dialogue area) to block the NavMesh. For this reason we would need to use “Dynamic Modifiers Only” Runtime Generation.
The problem we face then is that all NavModifierVolumes trigger recomputing of the NavMesh cells and we lose the possibility to use preprocessed NavMesh area.
We are streaming different part of the world, and that triggers a lot of heavy NavMesh recomputing then.
What we would expect is a set of efficient preprocessed NavMesh streamed (delimited with static NavModifierVolumes), and on top of that a few dynamic NavModifierVolumes to locally cut out the NavMesh for obstacles. So only those cell would be recomputed then.
How would typical UE4 games (with streaming + dynamically blocked nav area) handle this ?
(Note: We don’t think dynamic navigation invokers are a good solution neither. I could explain why.)