Navigation + Procedural Generated Static Meshes

I have created a grid of rooms that spawn from static mesh rooms I created from BSP and I was curious if there is some way to make it so that you can navigate them with the top-down starter content. Currently I have a 10x10 grid of rooms that spawns, but that I cannot navigate due to pathing not generating. While creating the staticmesh I did enable pathing in the options but it still doesn’t work.

Is it possible to create procedural during gameplay that will update pathing or does that have to be done completely in the editor?

Sorry if this is a bad or already answered question.

-Hakabane

that would be a good thing if it was possible :slight_smile: and maybe for first person? :-). Id like to see that too!

Did you try adding a navmesh bounds volume? That tells the engine where to build navigation, and I believe there is an option to build dynamically during the game (we use this in Fortnite for example). You can see an example of navmesh volume in the TopDown template.

James: based on what you said, I looked around and found an option under: project settings > Engine > Navigation Mesh > Run time > Rebuild at runtime, which was NOT checked by default. After checking this box I was able to run around my world just fine.

Since I know some people will want to use BPs to spawn a grid, here is how I set it up. It is very messy and probably can be done much better but hopefully it will help people get started.

The staticmesh I’m using is 2000x2000 so that’s why the variables looks so big. Ignore the string output, that was me testing things and I forgot to remove it.

Edit: X-Move also has its variable value set to X: 2000 y: 0 z:0

There is a value in project settings, that allow you to generate the navesh at runtime, that is exactly what you need. The property is called bRebuildAtRuntime

Where exactly do we set this so it will rebuild at runtime? I cant seem to get it to work for the content example project navigation level, see my comment here.

Would it be better to put a procedural map generator in construction script or in the event graph? Players will generate new maps from game setup…

I currently use event graph > beginplay since the map will spawn before a player has time to spawn and hit the ground. My purpose for this is related to a board game which has a set amount of tiles, generally between ~40-80 so it doesn’t take much power to create.

I didn’t like it in the construction script for 2 reasons: 1. If I moved the tile, it would regenerate the whole board which got annoying quickly. 2. I enjoy my custom created loops with delays in them so I can watch my level get created slowly.

-Haka

  1. Yeah, if you intend to manually position the set of procedural content I can see how that would get annoying. However, if you are talking about randomly placed procedurals, I found a tutorial recently that talked about “random from stream” nodes which lets you randomize it based on seed so that it doesn’t randomize when you move it.

  2. Yeah I noticed that about the delays as well, which kind of makes me thing making procedural content in construction script is not really for the players to initiate, but for the designers to use and then set in the world for the players. If that is the case, then I hope that moving my map generator over to the event graph is a straightforward cut and paste operation…