It’s a pain to have to use the Blackboard when I want to reference values from a Pawn or Controller in a Behavior Tree.
Since the Controller, Pawn, and Behavior Tree are one-to-one relationships, it would be convenient to be able to cast them once and reference all the values directly.
This may be for abstraction reasons, but in most cases the Controller is likely to have a full reference to the Pawn, so this seems completely pointless.
The blackboard is useful if you want shared information between AI’s (Instance Synced). You can have parameters like an alert status or player position synced for every AI.
It also holds all of the AI’s state information in one place (think of it like a long term memory of sorts)
So who has the initiative to change the variables? If all AIs could access the same blackboard at the same time and change values, it would be incredibly chaotic.
I don’t think there’s any need to share values across the AI except in specific cases.