Behavior Tree and Blackboard Hierarchies

I’m building an AI system where common tasks are placed in a hierarchy of shared base “classes.” For blackboards, I use parenting, for behaviour trees “run behaviour.” The variable mapping between the parent blackboards and the corresponding subtrees is fixed.

Because all subtrees have to share the same blackboard as the root tree, each “leaf” in the AI hierarchy has to be associated with a set of subtree copies. Is there a way to avoid this or a better way to build such system?

Edit: Creating the copies is not a problem but maintaining them is. If a change is made to a subtree, then you need to manually update all the copies. I don’t think it’s manageable for say, 50 AI models.

Is there a way to handle this better in C++?

Edit 2: Essentially the same question as this one here: https://answers.unrealengine.com/questions/238875/subclassing-behavior-tree.html

Otherwise everything works great, thanks Epic!

If anyone encounters the same situation, here’s what I did: blackboard is used only for the state variables and everything else goes inside the controller, which supports inheritance hierarchies.