What is the purpose of the NavModifier component?

Just tried this out. With modifier volumes, it works well. However, it’s broken for Blueprint use.

I added a box manually and increased its extents on x. It affected both the x and y axis. That’s not too bad, because the zones in my case are perfect squares. However, I then tried to add a second box. It affected the area in the same, broken way. But, it ignored the box’s position; the area was centered at the object’s origin. I removed the second box and moved the first to see if it also only extended from the origin. It did. This also applies to colliders added in a construction script. And, spawning volumes isn’t possible.

Overall, using nav modifier volumes works exactly as I want it to. However, managing them manually is a nightmare. So, the best solution I’ve come up with that works is to

  1. Manually add a bunch of Nav Modifier Volumes to the level
  2. Add an editable volumes array to the grid spawner BP
  3. Individually add each modifier volume to the array
  4. In the grid’s construction script, move and scale (volume extents isn’t editable, but scale is) each volume to position them in a grid pattern.
  5. Select all volumes in the viewport and wiggle them a bit to update the navmesh; building paths doesn’t work.

This method isn’t ideal, but it does work. AI agents take jagged paths to their goal, only entering when necessary.

Setting the heuristic scale to 0.1 is pretty much identical to the default value of 0.999, but higher values are definitely more jagged and roundabout. So, I’ll at least stick with something below 1 for now. Although I may have to implement something custom eventually, I’d say this is good enough for now.

If you have any more suggestions, I’ll take 'em. Otherwise, I have my working (if somewhat flawed) solution. I only suggest more precise modifier support for blueprints, which would improve procedural generation. My thanks to you, good sir.