Problem with AI implementation

Hi,

I have problem with implementing Behavior Tree based AI Enemy. AI bot does not patrol nor chase the
player as it is expected. It looks like when my player controller gets closer to enemy, enemyWaypoint is not updated and nextRoute is not chosen. I am using UE 4.7.0 Preview 8.

As mentioned earlier I suspect problem in BTD_EnemyUpdateRoute and BTT_EnemyNextRoute.

Here is my blueprints implementation:

I can upload some source for easier debugging if needed.

Here is what I get when player enters enemy line of sight(still patrol branch triggers->attack branch does not trigger properly):

BTS_EnemyDetectPlayer blueprint:

I ask for any kind of response. Any tip or information would be great.

Since this sound rather urgent I will try to help. But keep in mind that this is a rather large amount of nodes and BPs working together and not too many people work with AI so it’s quite likely not too many people do know how to help at all!

As first step I would suggest adding a few breakpoints and observing the variables to find where it actually breaks. Is the variable valid? Does it set the blackboard variable? Does it read it properly?

It is rather hard to just look at this BP and try to find some mistake without any kind of tools from unreal to check what is actually happening which is why I can’t directly give any suggestion besides that.

Thanks for response. I have following problem with debugging AI, when I am debugging whole process links are getting highlighted between called nodes only in Behavior Tree view (links does not highlight in particular BT component source). Because of that breakpoints set in decorator, service and task Blueprints does not seem to support normal debugging process so I cannot track which node is actually running. Maybe there is another way to debug Behavior Tree components…

Breakpoints should always trigger… Sometimes the actor using it is not in focus. That happens to me all the time when working on a character. Not quite sure how BTs handle this.

I mean you can always just use printstring… which is rather dirty.

Print String seems like the only option except triggers in this case. From the other hand, the most concerning thing is about BTD_EnemyUpdateRoute, I am not 100% sure how to call PerformConditionCheck function from Decorator itself (I have attached in main post, screenhot from PerformConditionCheck function, not from decorator because I am not sure if (and how) I need to call PerformConditionCheck in BTD_EnemyUpdateRoute. PerformConditionCheck is function permanently defined in Decorators from 4.7.0 engine version. I am afraid that because I am not calling this, enemy ai cannot update route in order to move to waypoint