NAV mesh bound limits?

I originally had a nav mesh generate over my whole level. But as the level grew in size, I noticed certain parts wouldn’t really get any nav mesh even though they were within nav mesh bounds. Here’s a picture of a fully “built” nav mesh that simply stops in the middle of my hill even though a bound covers it fully.

I thought this had something to do with the “Tile number hard limit” option under project settings-> Nav. mesh since I was generating around 160k nav mesh “points” (of whatever unit the building pop ups uses).
and I read somewhere (by some Epic staff if I remember correctly) that for larger maps you should use dynamic nav generation around the ai instead of covering the whole map since it was lighter on memory to only generate it around them in small radius vs covering the whole map.

However, I’m hitting the same issue after changing my whole system.

Basically, my nav mesh stops generating at around the same place as when I was generating a full navmesh over my whole level… even though I only do it dynamically now.

Here’s a screenshot Even though the currently generated navmesh is thousands of times smaller, it still cuts off where the red line is when I have the same nav mesh bounds.

Now when I delete (or scale down) my other nav mesh bounds… this “limit” disappears and the mesh will generate further up (but other parts will now be missing the navmesh since they won’t be covered by navmesh bounds anymore.)

Here’s a screenshot after I deleted (or shrunk) other nav mesh bounds. Now theres no cut like in the previous screenshot.

It looks like it’s not the size of the generated navmesh but rather the navmesh bounds that are causing it? Otherwise I guess an empty navmesh bound shouldn’t affect this at all, right? I find this a bit weird.

How can I make nav mesh able to generate anywhere on the whole map?

What am I doing incorrectly here?

I’ve tried using a single large Nav mesh bound, instead of multiple smaller ones but that has the same results. Above a certain scale size of a single bound, no nav mesh gets generated in it either.

I’m using the nav mesh invoker component in my AI character blueprint to generate the nav mesh in “3000” units around my ai.

I’ve tried changing “Tile Size UU” in the project settings up and down without much improvements. Larger numbers won’t cover or spread over more area, it’ll cut off around similar places even though the tiles seem smaller or larger depending on what number its set to.

Any help or tips are greatly appreciated. Thanks.

Ok. I’ve narrowed the problem a bit.

In a new file… create a large cube to cover the ground (3000x3000x10) for example. Then create another one and rotate it so it creates a upward slope.

Create a nav mesh bound that covers those boxes.

[Here’s a pic][1]

Then I place multiple nav invokers around to see if everything works…

They do until I reach a certain height of the slope.

In the following image: nothing is generated above the red line, even though the nav mesh bound volume covers the whole slope. You can see on the screenshot multiple green spots further down that generate fully around the invoker. However at the red line, nothings happening.

If I move the naw mesh bounds a bit upwards, it’ll move the deadzone upwards as well, however my if I raise it high enough, my flat plane won’t be covered.

What’s causing this? Is there a height limit in the nav mesh bounds/generation? How does this work exactly. Is this a bug? I’m using 4.9

[Here’s a video.][3] I have annotations and notes describing the problems.

Hello,

You can go into Edit->Project Settings->Navigation Mesh and adjust the values that are located under the Generation tab to fit your specific needs. This should allow you to get the results that you’re looking for.

If you’ve already adjusted these values and seen if you can get the desired results, also let me know.

Let me know if you need additional information regarding this issue.

Have a great day

Thank you for the reply! I appreciate it. However I haven’t found the solution to this yet.

Here are my generation settings.

I’ve tried playing with the “Tile size UU”, “Cell size”, as well as some other random settings, but none let me generate on the dead zone areas.

I explained them a bit in my previous comment, with a video link as well.

However to simplify, it seems like the nav mesh bound only support a certain height? That is, the nav mesh bound volume only seems to generate nav mesh within a certain height range within itself (IE only the middle of a slope with the top/bottom parts left out)

Can I increase this height range in the generation settings menu?

The deadzone is nearly always around the same place for some reason, no matter how big each tile is and it’ll move up/down as I move the nav mesh bound volume.

How can I let the navigation generate on slopes no matter what the height of the bound is?

Nav Mesh has a limit for the number of tiles that it can hold, and there are also limits as far as navigation polygons go. Adding multiple navigation meshes will not help, as they all apply to the same navigation instance which does contain a limit, albeit extremely large.

Take a look at this forum thread if you haven’t already: How to work with NavMesh and big Landscapes? - World Creation - Unreal Engine Forums

It contains some good information that could help you discover a solution for your issue.

Sean Flint, thanks. I’ve been through that thread (and many others). I’m sorry if I’m not explaining the issue efficiently enough and wasting your time. English isn’t my first language, but I’ll try to make it a bit clearer.

I’m aware that there are limits to the nav mesh tiles generated…

I’m correct in assuming that the limit won’t be hit within a empty nav mesh bound… right? You’ll only hit the limit once you’ve generated X number of nav mesh points… is that correctly assumed?

Because if so, I’m nowhere near that limit when I’m using dynamic nav mesh generation around a few invokers. I do not think that is the problem.

Here are 3 screenshot to explain the issue more clearly.

1- You can clearly see in this screenshot that the NAV MESH BOUND VOLUME covers my entire slope. However, at the top of my slope, nothing is being generated. I have around 10-15 small invokers spread around the whole slope (the green nav mesh splotches)… however they DO NOT under ANY CIRCUMSTANCES get generated NAV MESHES at the top of my white slope.

2 - Here I move the NAV MESH BOUND VOLUME a little bit downward… (I CHANGED NOTHING ELSE) and the BOUND VOLUME still covers my whole slope… yet absolutely no NAV MESH gets generated anywhere… not even the ones from the first screenshot which still exist on the slope and haven’t moved at all.

3 - Here I moved the NAV MESH BOUND VOLUME a bit upwards, but no matter how much I move it up… it will NOT generate at the top of the slope (inside the red-colored box) In this picture, I have multiple invokers near the top of the slope, yet none of them will show up.

Is there some hidden height limit going on here? I’m absolutely lost here. It seems like NAV MESH BOUNDS are very Z sensitive? But I just can’t understand why. Also making the NAV MESH BOUND VOL higher/taller won’t help at all either.

Thanks for the additional information. Could you do me a favor and zip up the project and upload it to Dropbox or Google Drive? Then, share the link with me via PM through the forums: https://forums.unrealengine.com/member.php?160394-Sean-Flint

That way I can take a look at the project itself and determine what the error could be.

Thank you. I have done so, and explained how to perform the problem in the message including the google drive share link.

EDIT: The nav mesh doesn’t appear by default it seems when opening the project for the first time.

The only way I know to re-build dynamic nav mesh in a newly opened project is to delete the nav mesh bounds volume and then undo the action so it appears again and then the nav mesh appears in the editor. You probably know of better ways though… mine might be messy.

So after looking at the project, it seems the extreme scale of the level itself is the issue. I’d recommend creating a level that is more to-scale. If you notice, the penguins on the flat surfaces, even at the higher areas of the map do generate a nav mesh, it’s just not on the correct surface. I’d recommend recreating the map to be smaller, or looking into level streaming if you need to create an extremely large level, as this is much better for performance.

Thank you.

That makes sense…

Yes, I did notice that the flat-area penguins generated nav mesh way below the “ground”. That wasn’t the case however on the slopes, simply nothing appeared there.

Is it possible to get them to generate nav meshes all the way on the correct locations, using level streaming?

Or will nav mesh simply never work perfectly in such large maps?

Unfortunately scaling the level down enough so that a nav mesh bound covers it all is simply too small for a mountain for a snowboarding/sliding/ski game.

I wanted AI’s navigating down the mountain as well, if this was only for players I wouldn’t care.

Anwyay, thank you greatly for the help. I will look into level streaming now and hopefully that’ll solve my problems :slight_smile: Have a wonderful day/weekend.

Streaming should solve your problem, as you can remove sections of the map as you pass them, since you’ll never be able to go back uphill in most cases. This will allow you to have much better performance in your game overall.

Thank you yet again.

I’ve read that during multiplayer, if a streamable level chunk gets loaded for one player, it’ll load for every other player as well.

Since my game does already have working multiplayer might the same nav mesh problem occur if players are spread out enough?

This will be my last question. Just thought I’d ask since that might require some design changes in some places.

I realize it’s been a while since this post, but I had the same issue (nav mesh not generating above a certain height). I finally realized that all I had to do was increase “cell height” which is right below “cell size” is the nav generation tab… so obvious I feel a little mental for taking so long to figure it out. I thought simply increasing the Z scale of the bounds box in the editor would account for height (just like the x and y account for length and width) which is probably why I didn’t realize there was even the cell height option to take into consideration… Hope I saved someone else some time.

yep thread is old , but I had same issue in a heightmap with sloped terrain and mountains , tried so many things , but enlarging the cell height worked. thanks

What did you bump your up to? my is defaulted to 10.

What did you bump your up to? my is defaulted to 10.