x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

What is the lightest way to use NavMesh in an open world environment?

Hey guys, we're working with a large map that represents a small city. We will have a truck that is automated to go from point A to B, navigating through the city blocks so that it only moves on the roads. The problem is all of the buildings have auto-generated collision boxes, and they're a mess. I figured it may be easier (considering this bug is rampant) to delete all collision boxes, and simply use the Nav Modifier Volume to block out the buildings. Would this be heavier on the build or should I stick to re-editing all collision boxes?

Product Version: UE 4.10
Tags:
more ▼

asked May 24 '16 at 07:01 PM in Using UE4

avatar image

chase2d
16 1 2 3

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

Hello,

I highly recommend using Navigation Invokers in this situation. Nav Invokers are components that you can add to a blueprint which will only generate Nav Mesh in the desired radius around the pawn. This saves a ton of performance and allows for some nice customization as far as the radius it is generated in, as well as how far away the pawn must be before the unnecessary Nav Mesh is removed.

Here's a quick run down of how to get this set up:

First thing's first, we're going to want to enable a few settings in the Project Settings. Go to Edit->Project Settings->Navigation System and enable the Generate Navigation Only Around Navigation Invokers setting. Then, go into Project Settings->Navigation Mesh and set the Runtime Generation to Dynamic.

Then, we'll need to place a Nav Mesh Bounds Volume in the level. Ensure that it covers the entire space that you'd like the Nav Mesh to be able to generate in, as this is required for the Invoker to be able to generate its section of Nav Mesh.

After you've done this, go into your character/pawn blueprint and add a Navigation Invoker component. Here, you can alter the Tile Generation Radius, which will control how big of an area around the Pawn the Nav Mesh is generated. You can also alter the Tile Removal Radius, which will determine how far away the pawn must get before the Nav Mesh begins to remove itself to keep performance at a decent level.

Let me know if you have any further questions regarding Nav Invokers.

Have a great day

more ▼

answered May 26 '16 at 07:03 PM

avatar image

Sean L ♦♦ STAFF
44k 485 149 438

avatar image chase2d May 26 '16 at 08:44 PM

Thanks Sean I'll give this a shot. I am still going to use the NavModifiers that I threw down in place of collision correct?

avatar image Sean L ♦♦ STAFF May 27 '16 at 12:50 PM

If you use the Nav Modifiers, it should still ignore that area when considering where to generate the Nav Mesh. Let me know if it does not.

avatar image Crazy Rabbits Dec 23 '18 at 09:40 AM

When the AI is not in the navigation area, it does not move in place, causing the FPS to drop seriously, and the FPS is restored after the navigation is resumed.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question