Behavior Treeを動的にインスタンスしたい

カルネージハート(Welcome to Carnage Heart ! - YouTube)のようなゲームが作りたいのですが、
AIの動きをゲーム内でプレイヤーが作成するにあたり、Behavior Tree(AIの動きのパーツのクラス)を動的にインスタンスして実現したいのですが、具体的にどのような操作をすれば良いのでしょうか?

BehaviorTreeを動的に構築する方法の1つとしてSubtreeを使用する方法が考えられます。
これはUBehaviorTreeComponent::SetDynamicSubtreeから必要なSubtreeを設定し、
1つのBehaviorTreeInstanceとして構築することを目的としています。
BehaviorTreeComponentはBP非公開のComponentであるためC++を使用してwrapするか、
独自のManagementClassを経由してアクセスしWidgetから設定を行うことでUIとの連携を行います。
この構想は実際に構築、動作確認を行っていませんが(実装するにあたり十分な時間とAIに関する知識を要するため)1つの案として提案します。
上記に記載した内容は既存機能でできるかもしれない可能性の1つではありますが、動画の内容を実現する場合は独自にシステムを組んで頂いた方が早いかもしれません。
宜しくお願いします。

なるほど、ありがとうございます。
確かに、わざわざbehavior treeを使うのは帰って遠回りなのかもしれません。

もしBehavior Treeを実装せず、独自に有限状態機械のクラスを作成しそれを動的に呼び出す場合は、それをWidgetから設定するという手順でよろしいのでしょうか?

必ずしもWidgetである必要はありません。
動画のように動的にAIを構築する場合のスタートとゴールを明確にするために、Widgetを使ってUIからの設定を行い(スタート)、BehaviorTreeComponentでAIを構築する(ゴール)という記載をしました。混乱するような書き方となってしまっていましたら申し訳ございませんでした。

UIからの設定をWidget(HUD、Slateなど)で構築し、設定した内容の管理や、AIの呼び出しはAIControllerや独自のManagementClassで行うようにすることを想定しておりました。