Announcement

Collapse
No announcement yet.

Static NavMeshes and Level Streaming

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Static NavMeshes and Level Streaming

    Hi,

    I wanted to ask what the current state of streaming static NavMeshes from sublevels is.

    To me it seems that right now, I only have the following options:
    • Put the NavMeshBounds in the Persistent Level and have the entire NavMesh always in memory, even for unloaded levels. With a large world, that's a lot of wasted memory.
    • Set the NavMesh to Dynamic Mode, rebuilding it from scratch at runtime, whenever a level is loaded/unloaded. That's a lot of runtime overhead. Also, while the NavMesh is rebuilding, I can't query it reliably.


    Is there anything else I can do? Something that lets me dynamically "stitch" together NavMeshes from different sublevels, or similar stuff? I tried putting the NavMeshBounds in the sublevels and hoped it might create a separate NavMesh for each level, but that didn't seem to work.

    Any response is appreciated, even if it's just "there's currently no way to stream static NavMeshes".

    #2
    Hi,

    Static NavMesh does support streaming. You will need to place at least one NavMeshBounds in Persistent Level and other volumes in sub-levels. Volumes in sub-levels will cut part of navmesh and save that part in sub-level. At runtime when sub-level is loaded/unloaded it will dynamically attach/detach navmesh part to a main navmesh in P-level.
    NavMeshBounds in P-level is required to let navigation system know that it should not delete main navmesh actor in P-Level even when all sub-levels are unloaded.

    Comment


      #3
      [MENTION=1217]ddvlost[/MENTION] anything else need to be done to achieve static navmesh streaming?

      I did everything as you mentioned plus:
      - Fixed tile pool size: True,
      - Force Rebuild on load: True,
      - Runtime Generation: Static,

      And it won't load nav mesh data from sublevels - it's leaving data from persistent.

      Here's great example on how this isn't working right now using content example: https://forums.unrealengine.com/show...big-Landscapes
      Last edited by intoxicat3; 02-28-2017, 11:02 AM.
      How to create first person shooter game from scratch. Lots of tutorials: http://www.shootertutorial.com - celebrating 50th Tutorial!

      My Marketplace Assets

      Comment


        #4
        You're totally right, this still doesn't work. Have you found a workaround?? I see the only solution is dynamic navmesh, but I don't want to waste performance

        Comment


          #5
          Originally posted by ddvlost View Post
          Hi,

          Static NavMesh does support streaming. You will need to place at least one NavMeshBounds in Persistent Level and other volumes in sub-levels. Volumes in sub-levels will cut part of navmesh and save that part in sub-level. At runtime when sub-level is loaded/unloaded it will dynamically attach/detach navmesh part to a main navmesh in P-level.
          NavMeshBounds in P-level is required to let navigation system know that it should not delete main navmesh actor in P-Level even when all sub-levels are unloaded.
          Is it possible make p level static navmesh make current streaming level dynamic and save unload level navmesh static

          Comment


            #6
            Follow my answer without dynamics and automatics.

            Comment

            Working...
            X