AI Acceptance Radius Still Used On Partial Path

I don’t think this has always been the case, but it is in 4.12 and I’m pretty sure was in 4.11 too. It feels like a bug to me, or at least something that should/could easily be handled better.

Using the AI MoveTo or MoveTo actions on an AIController will still use the specified Acceptance Radius on partial paths. So, for instance, if NPC can’t get to his Destination because of a cliff edge, he will stop moving once he’s within AcceptanceRadius of the cliff edge, not at the edge itself. Surely the expected behaviour would be for an NPC to go as far as he could toward the destination, only stopping if his path runs out or he’s within AcceptanceRadius of his actual destination?

Also, it would be extremely helpful to have a way to identify when the AI has finished the move but had a partial path. Right now, “finishing” a move with a partial path returns “already at goal” or “success”; there seems to be no good way to identify the situation of finishing a partial path.

1 Like

Hey Joe,

I don’t believe I’m seeing the same behavior on the acceptance radius part of your report, however I could use some clarification just to be sure. Could you post a screenshot of exactly what you are seeing?

In my results the AI runs to the edge of the navmesh and the acceptance radius isn’t taken into account.

As far as the partial path issue, I can see how this would be problematic. I have entered feature request [JIRA UE-34441][2].

Hi Joe,

We haven’t heard back from you in a few days, so we are marking this post as resolved for tracking purposes. If you’re still experiencing this issue, please feel free to post back here with additional information to reopen the post.

Cheers,

TJ

Hi TJ,
Here’s a link to a video showing the result I’m getting along with my blueprint graph.

The “Follow If Valid” function is hooked right up to tick. As you can see, the isvalid fails at first because the NPC has no valid FollowedActor. Once I ask the NPC to follow me, that passes. We’re simply going “Move To Actor” every tick, with an AcceptanceRadius of 500. This works as intended while I’m somewhere the NPC can reach me. Once I’m not, you can see how he refuses to step any closer to the edge than AcceptanceRadius.

It’s not in the video, but if I set AcceptanceRadius to 0, he will walk all the way to the edge - staying AcceptanceRadius away from the end of his path is definitely what he’s doing.

Hope this helps! Been bugging me for a while.

Hey Joe,

I’ve taken a look into this, and I haven’t been able to reproduce it on my end. In my setup, the AI Character is moving right up to the edge, just as TJ suggested in the above post.

Are you able to recreate this setup in a simplified test project that you could provide? It could simply be that I’m missing a setting that you are using which is causing this behavior.

Hey Sean, thanks for looking into it.
I had no trouble repro-ing it in a new empty project. 4.12, based on the third person template. Download link: http://impromptugames.com/ue4/sharex/AIMoveRepro.7z

Open the only level in the project (ThirdPersonExampleMap or whatever) and walk off the edge of the block. The NPC (same pawn as you are with a very basic AIController) will follow you with an acceptance radius of 1000, and will stop 1000cm away from the edge, even when you’re way farther than 1000cm away yourself.

Even if this is fixed, it’d still be nice to have an option that would cause him to always walk to the end of his path if it’s partial, regardless of whether he’s within acceptanceradius - ie, he walks to the edge even if his acceptanceradius is 1000 and we’re 500 apart but on different levels. Just an idea.

Hey Joe,

After looking into the issue further, I’ve decided to enter a bug report, which you can track the status of here: Unreal Engine Issues and Bug Tracker (UE-35153)

Have a great day!

Thank you!