Move To LocationOrActor / OnMove Finished not called

Hi there,

i have a small Problem with my Enemy-BP.

I use Move to Location or Actor to move the Enemy from left to right. In my Blueprint i created two variables as my Waypoint-Actor. I set one Bool (tryed it with two) that indicates if one side is reached.

My Enemy walk to the first side. Then it walk to the other side. On the first side the “On Move finished” is called and all is fine. But if the enemy reached the other side, nothing happens. The “On move finished” pin is not called.

I searched for it and find out, that if i duplicate the Waypoint Actor, only two works. If i duplicate the actor again to three or four actors, then the second one, that is picked are not working.
Meaning, only the first two created waypoints are working.

What’s wrong?

Your setup looks alright to me, but let’s try simplifying things a bit as there’s latent nodes (Move To), etc involved here.

  1. Create just one variable called “Goal” of Actor type
  2. Initialize this with waypoint A
  3. Use just one single “Move To” node with your Goal variable plugged into it.
  4. When it finishes, just switch the Goal (a simple FlipFlop node connected to “Set Goal - Waypoint A” and “Set Goal - Waypoint B” should do the trick).

This may or may not solve your immediate problem, but by simplifying the setup there’s less room for error.

Some other ideas:

  • Is the Acceptance Radius same on both your Move To nodes? If the enemy actor reaches close to the second waypoint and starts wobbling very near it this may indicate an issue with your Acceptance Radius. This is one of the reasons for simplifying your design with just one Move To. We can ensure consistency between the code used by both waypoints and rule out any problem there.

  • You said that duplicating the actor has an effect on this issue. Did you try dragging and dropping the second waypoint Actor from your Content Browser instead of duplicating it to see if that makes a difference? I have seen duplicated actors exhibit strange behavior when custom logic in the Construction Script is involved.

Hope this helps.

PS: If you’re comfortable with C++ dropping a breakpoint in AITask_MoveTo.cpp, Activate() Line 112 (for 4.10) should help you see why your AI Controller thinks the goal is not reached. Something called EPathFollowingRequestResult (an enum) is returned from AIController.cpp 's MoveTo(MoveRequest) function - this is what the Move To node uses to determine when to call your Blueprint’s “OnMoveFinished” execution pin.

Hiho,

thanks for the detailed answer. But it was a very easy Problem. ■■■■, after three hours of try and error i got it.
Nothing was wrong with my blueprints. The Problem was, that the waypoint was made correctly and the actor moved to it correctly, but i moved the waypoints a Little bit in the air. The actor never reached that Point.

Since i place the waypoint almost on the floor, then it work. Wierd.

But thanks for your help. Sometimes it’s to easy to find the Problem.