Possible bug in "Move To" behavior tree task in 4.9

Hiya

I have a behavior tree that uses the “Move To” task. After upgrading to 4.9 that was still working fine. However, it broke after I rebuilt the navigation. Which seems like it would be a problem with the nav mesh so I tried all sorts of different fixes such as making it dynamic, forcing rebuild at run time etc. I also tried making nav meshes in the streaming levels instead of having one in the persistent level that covers all of the streaming levels. The only fix that worked was to use “Move Directly Toward” instead of “Move To”.

Is it possible there’s a bug in “Move To”?

Thanks!

Hello ,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed list of steps in order to reproduce this issue on our end?
  3. Could you provide screen shots of any blueprints involved with this issue?

And can you confirm that navmesh indeed exists then MoveTo fails? And both agent and goal are on the navmesh?

Here’s the persistent level with both streaming levels visible, and the navmesh which seems to be partially obstructed by the second streaming level (but its set as dynamic so should build when the streaming level loads).;

And this is the first streaming level thats loaded and where the move to function is now failing;

The goal is the player character, so it looks like both agent and goal are on the navmesh and there is a path from one to the other even if the navmesh has not been rebuilt

Hello ,

Could you please answer my first two questions, these will help narrow down what issue it is that you are experiencing?

Sure will do, just got back to the office, thanks

Hello ,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you.

Hi Rudy

I finally got round to doing a repro and unless I’ve screwed it up, I’ve got less functionality in the repro than in my project. I did the following;

  1. new third person C++ project.
  2. Two level script actors, C++ classes, one called persistent and one called streaming.
  3. Made a persistent level with the skydome in it and two streaming/sub levels with environment brushes, very simple from the example files. parented the persistent to persistent c++ class and sub levels to streaming C++ class. The sub levels occupy the same space.
  4. Made a navmesh bounds volume in the persistent level that overlaps both sub levels.
  5. Made an ai controller class and a bot character class. Made very simple blackboard and behavior tree. The tree just locates the player and then activates “move straight towards”. If that worked I was going to try “move to”, but it didnt.
  6. Placed third person start point and bot character in persistent level, and made an on begin play event in persistent level that loads the first sub level.

On pressing play I can see the behavior tree activated, on debugging I can see that its locating the player character and assigning it as a variable on the behavior tree blackboard. Move straight towards is activated but the bot doesnt move. I hit P and can see that the navmesh has been generated and covers the whole area.

Hello ,

After following your example I was unable to reproduce this issue. The Ai was able to navigate to the point that was given to it (after setting the nav mesh to dynamic) Could you submit the blank project that you are using to reproduce this issue on your end so that I could take a closer look?

Thanks…

I also have this problem, I think bug in “Move To”, sometimes a character goes to a point 0,0,0, sometimes does not move. In project version 4.9 - not repeat it, only converted project. Solve the problem - create a “task” with a movement to point (“AI Move To”) - it works instead “Move To”.

Not sure what you mean there deadiablo. Do you mean that you create your own custom version of “Move To”?

yes.
I fully repeated Quick Start Guide (https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/QuickStart/)
but MoveTo not work correctly.
I did another “Task” for move to point (as RapidMoveTo), but with Vector parameter. And it works.

also not work check “Is At Location” (instead Reached Move Goal) - the sequence executed in a circle: moveTo (targetLocation) - wait - moveTo (homeLocation) - moveTo (targetLocation) - wait - …

Sorry, my english is very bad =)

What is RapidMoveTo?

Ok got it, I’ll try that

and I had an old project (converted to 4.9), in new 4.9 all worked.