We have a pretty large open world, and we sometimes have to create multiple landscape actors (like for caves or cliffs, etc.) The issue is that once a NavMesh Invoker (NPC) gets close to an area where there are multiple landscapes (like at the entrance of a cave, where we have the main landscape actor, and the cave landscape actor) in PIE, the engine crashes. If we remove one of the landscape actors, the crashes no longer occur.
This is holding back progress on our project quite a bit, as we have to find workarounds, and potentially change entire areas to allow the AI to work.
This relates to another issue we have with NavMeshes and landscape actors: Engine crashes if NavMesh Volumes and Landscape Holes occupy the same area - AI - Unreal Engine Forums
I’ve attempted to reproduce this issue, and I’m not seeing the same results. In my level, I have 2 landscapes, one with a hole (sort of like a cave entrance). I have a nav mesh bounds volume that is set to only generate the nav mesh around invokers, and then an AI pawn that is moving around that has a nav invoker attached to it.
Do you have any more information you can provide about your setup that could help reproduce the crash?
Thank you for getting back to me so quick, Sean.
It’s actually quite good to hear that it is indeed not a bug with the engine. At least it rules that out, and means we should be able to fix it on our end. I’ll try to provide as much information as I can:
- We have a large landmass, using World Composition to split it into multiple proxy landscapes.
- The NavMesh Volumes are in the Persistent Level, while the landscape proxies are in their own levels. The two intersecting landscapes are in the same level, along with the invoker.
- The Invoker is a BP NPC (not entirely sure how this is set up, so I will provide more information on that once I hear back from the team).
- PIE runs fine until the NPC moves close enough to the intersection of landscapes that the generated navmeshes touches it.
The red circle is where the invoker is. He walks down the stairs, and a little bit along the path, and then it freezes for a few seconds, before it crashes.
The red line is where the two landscapes intersect. I tried editing them so that they didn’t touch, in case that was the issue, but that did not fix it. The only thing that did was to remove that landscape actor altogether.
The log from the crash:
Full log from PIE: http://pastebin.com/kggm5xsf
We have found the solution(?).
We had the Navigation System Data Gathering Mode set to Lazy, as that was the recommended setting for a large world (per the Kite Demo details). Setting this to Instant fixed both our issues (landscape holes and multiple landscapes).
Now, I would assume this has some detrimental effect though. It still only generates NavMeshes around invokers, but can you tell us anything about the side effects of having this set to Instant instead of Lazy?
Glad to hear you fixed the issue. Take a look at the thread linked below. It might give you some more information depending on what your setup looks like:
Let me know if that helps at all