[UE_4.4][AI + Navmesh] Using NavLinkProxy's smart and simple links - only simple seems to work?

Hi,

I’m experiencing problems while trying to use smart links in AI navigation.

In my understanding Smart links are used for cases when you want to enable/disable them, opening up temp paths for AI to use, and turning it off when certain conditions appear - hence the “enable smart link” bool.

Problem I find is that if a simple link points are not present in a NavLinkProxy (with Smart Link set up for both ends + Use Smart Link on true) - AI stops using this proxy and cannot operate only on Smart Links.

Only after Simple links are set up, AI seems to use this proxy to travel between navmeshes.
In essence - smart link does nothing (no matter if its enabled or dissabled) apart from handling one event (“Smart link Reached”) .

Question:
Is there a way to use NavLinkProxy with ONLY smart link setup (without simple points) by AI or do I missunderstood the purpose of a Smart link (if so, can someone please explain?).
Unfortunately the documentation regarding this topic is almost non-existent…

I would greatly appreciate help.
Thanks
T

Ok so I found the reason this wasn’t working - I was using NavLinkProxy as I Child Actor in a blueprint and apparently there are some problems with using smart links there.

You can find relevant bug posted here:

https://answers.unrealengine.com/questions/92267/-bug-441-navlinkproxy-as-child-actor-smartlink-bug-1.html

Have you found any good way to use smart links within another blueprint? I’m having the same issue that I want to populate links in blueprints that will be in many places in my level, rather than having to populate each link individually.

Well not really, all I can do for now is sit and wait for 4.5 and keep my fingers crossed it will be fixed there :slight_smile:
But remember that my issue regards only smart links - simple ones work fine, so unless you want to enable/disable them I would just use simple links if I were you.
If simple links dont work for you as child actors, show me your blueprint settings and I can compare with mine.

I’ve had a strange occurrence, smart links on a NavLinkProxy derived class as a child actor are working for me now. My derived class uses the PointLinks data to populate the SmartLink, including the start/end points, direction, and NavArea. It also sets the NavigationRelevancy of the SmartLinkComp to true and empties the PointLink array.

Defaults for NavLink blueprint

Code for copying PointLink data to SmartLink

To be honest, I’m not exactly sure why this works, but just having the smart link data itself doesn’t.