SmartLinks are removed during Dynamic navmesh regeneration

In 4.11 Preview, if the navmesh is set to Dynamic generation, any runtime regeneration of the navmesh will cause SmartLinks to be removed from the navigation data of that region. The PointLinks will remain, however.

This issue manifests differently in 4.10. When the navmesh is regenerated, the SmartLink remains visible in the pathfinding data and it remains active if the PointLink is present. If the NavLinkProxy has no PointLink, then the SmartLink will not be used in pathfinding after dynamic regeneration.

Hello,

I have attempted to reproduce your issue in the Content Examples NavMesh level, but I haven’t seen the same behavior you’re seeing.

Could you please explain in a bit more detail what you are doing when you are seeing the Smart Links being removed? What are the steps you are following?

Thank you.

Hi Sean,

Starting with the NavMesh level, there are two steps to reproduce the issue.

1.) Change the Project Settings | Navigation Mesh | Runtime Generation setting from Static to Dynamic
2.) Add an actor that will cause the NavMesh to update at runtime. I added a Sphere with Simulate Physics set to Enabled. I put the sphere in the second room, floating off the ground.

In the Editor, with Navigation visualization enabled, the SmartLink arrow is visible. At runtime, the SmartLink is initially visible, but then when the actor moves, and the navmesh update process can be seen, the SmartLink arrow disappears.

The SmartLink will be used initially (if relevant), then will be ignored after the NavMesh has updated and the link has disappeared.

After spending some time attempting to reproduce this issue, I noticed that if you just place a sphere without simulate physics and move it around manually, the Smart Link is not removed.

Is it possible that what you are seeing is that the NavMesh is not completely rebuilt yet because the sphere is still moving slightly based on the fact that it has simulate physics enabled? This would mean that the navmesh is continually rebuilding because the sphere is moving, as slightly as it may be.

I’m going to continue investigating the issue to determine the cause, but I just wanted to provide a brief update.

I see similar results moving things around in the Editor, but not in runtime (PIE or standalone). My testing has consistently resulted in the SmartLink being removed for the duration of the runtime session.

Case 1) I switched from a sphere to a box just to verify that it wasn’t that the sphere was never going to sleep.

Case 2) Turn off Simulate Physics. Move the actor through the scene using AddLocalOffset.

What I’m seeing in both cases is that the SmartLink disappears when the navmesh region begins updating (turning from green to red), then remains gone when the navmesh returns to green (and is presumably fully updated).

Thanks for the update!

Would it be possible for you to capture a video of what you are seeing on your end? I’d like to compare it to what I’m seeing so I can get a better understanding of exactly what is going on. If you could grab a video of what you see in 4.10 and what you see in 4.11, that would be extremely helpful.

I’ve posted a short video showing 4.11 behavior on this topic.

Here is the youtube link for the same video:

I’ve also posted a 4.10 video on youtube:

Note that in 4.10 there is a NavMesh update happening immediately that causes the SmartLink to disappear before it can be seen at runtime. This does not occur in PIE, but does in Standalone.

Thank you for the videos, and apologies for the delay. I am still unfortunately unable to reproduce this issue on my end. Did you enable any sort of setting before you started to see this issue?

That’s very strange. I did a fresh test in 4.11 Preview 5 and was easily able to reproduce the issue.

Here are the steps:

  1. Launch 4.11 Preview 5 (I haven’t tried Preview 6)
  2. Create a Blank project. This opens the Minimal_Default map.
  3. Add a Nav Mesh Bounds volume to the tiny scene
  4. Add a Nav Link Proxy to the scene
  5. Set “Smart Link Is Enabled” to true
  6. Turn on Navigation visualization and note that the Simple link and Smart Link are both visible
  7. Add a Sphere object and set “Simulate Physics” to true
  8. Simulate and note that both links remain present
  9. In Project Settings | Navmesh, change Runtime Generation to Dynamic
  10. Simulate again and note that the SmartLink disappears when the navmesh updates, whereas the SimpleLink remains.

Here’s a video of the final result:

Hello,

Thank you for providing your exact steps. I was able to reproduce this issue in a clean project, and have entered a bug report (UE-27377). I will provide updates on this issue as they become available.

Have a great day