I have an AI character, which should continuously follow player.
His behavior tree looks like:
Find player position
Project it on navigation
MoveTo that position.
The problem - when player changes his position to a new one, AI character still moves to previous player position, then stops, find and project new player position and so on. But I want this AI character to “correct” his MoveTo on execution.
I tried to move this branch into separate sequence with service, which checks previous and current player positions and aborts itself if they are not match, but result is the same - AI character still stops everytime.
So, is there any solution to make AI character follow player CONTINUOUSLY.
why not just set the move to target to be the player actor instead of their location. that way the only time they will stop is if blocked by walls, lack of nav mesh, or they accomplish in reaching the player. basically it will make them run to the player continuously.
Use "move to’ node in the behavior
tree and set the blackboard key to a
‘Target Actor’, and only allow
execution if the blackboard value
‘Target Actor’ is set.
Problem is - if player moves, AI moves to last player location, stops, and moves to new location. But I want it to move without any stops, and always to current player location.
Use "move to’ node in the behavior tree and set the blackboard key to a ‘Target Actor’, and only allow execution if the blackboard value ‘Target Actor’ is set. You could set and clear the ‘Target Actor’ from within the AI controller if you are using AI Perception.
Also you might want to put the ‘Default Focus’ service on the ‘move to’ if you want your AI to focus on your ‘Target Actor’, this will allow you to rotate the AI to face the ‘Target Actor’, or you could simple check the ‘Observe Blackboard Value Tolerance’ within the ‘move to’ node to check every so often if the ‘Target Actor’ has changed location.
Finally you can run a check by using a built in decorated called ‘Is At Location’, so you can do something when your AI reached the ‘Target Actor’.
Hmm ok thats wierd i’m not having that issue. It might be the way my ai works for my specific game.
Its been a while since I’ve done this project, i’ll try to dig more if I can figure some solution
Ok, I think there might be an issue with using a decorator for this functionality (I could be wrong). The way I set up my Bot is that I’m checking how far away I’m from the player → setting different bot states and based on the blackboard condition I’m activating different BTTasks. I think I had a similar issue when I tried using decorators. Here is a reference of how my Tree is set up. (Again this could be completely wrong).
Problem not in decorator, but, as I think, in MoveTo task. Once controller gets valid MoveTo location, it starts to execute until character reaches it. Only after that whole branch is restarted, controller gets new MoveTo location, and executes it again.
This works if AI character gets enemy location who stands on the same place. But if enemy location is changes continuously (so player trying to escape from this ai character), this not work. Ai character always stops in some intermediate locations while chasing his enemy.
Hello, sorry if I reactivate this post but I have the same problem and the solution is no longer visible. Would it be possible to put it back? Thank you very much