Blackboard correct usage

I’m just trying to figure out the correct use of the blackboard, expecially for AI with behavior trees.

the current situation is: I took the third person character from the relative project preset, and made it an NPC with its AI controller; i also made a custom blackboard blueprint, and a couple of behavior trees that use my blackboard.

The problem is: I’m trying to set up the correct way to build my game, and I decided to put in my AI controller everything is AI related, and since behavior trees are relate to decision making, i would like to access my blackboard directly by the controller but i stil need to pass trough the possessed pawn to get the blackboard data.

Also, I do not have any Blackboard Component in my NPC blueprint, so i suppose it is inherited, or something similar.

Next step is: blackboard variables can’t be initialized directly by the blackboard blueprint editor, so i think i need to do this (for example) with a custom BlackboardInit() function in my controller, before start running any behavior tree.

Moreover, since blackboards can’t hold arrays, I ended up keeping my array in the controller, and loading in the blackboard just one item at a time, but if i had to do this in a behavior tree task i have to get the Ai controller and cast it to my custom AI controller, and at last get my array.

Maybe that’s just me not understang the correct way to do stuff in Unreal, but any help will be very appreciated, thanks.