News Activity Product Learning red Event Contact
Devblog top img

開発ブログ

2018-09-28

Run Behavior Dynamicを使う

writer : yuto

 Run Behavior DynamicはBehavior Treeで使用するタスクの一つで、その名の通り動的に他のBehavior Treeを実行します。Behavior TreeからBehavior Treeを呼び出せるので処理を分割することができ、肥大化・複雑化しやすいBehavior Treeを綺麗にまとめることができます。この他にもRun Behaviorというノードがありますが、これは設定したSubtreeを変更することはできないのに対し、Run Behavior Dynamicは実行中にSubtreeを指定できるのが特徴です。ここではどのように外部からSubtreeを指定するのかについて解説します。

 

 

 

やり方

 

 

 

 外部からSubtreeを指定するにはSet Dynamic Subtreeを使います。しかし、ここからどのSubtreeにセットするか直接決定することはできません。その代わりにRun Behavior DynamicではGameplay Tagを用います。

Gameplay Tagはプロジェクト設定->GameplayTagsから作成することができます。詳しくは他のサイトを参照してください。

Run behavior DynamicのInjection TagにGameplayTagを設定します。

AIControllerなどからSet Dynamic Subtreeを呼び出します。Inject TagにはRun Behavior Dynamic で設定したGameplay Tagと同じものを設定して下さい。Set Dynamic SubtreeのターゲットはBehavior Tree Componentです。これはBrain Componentをキャストすることで得られます。Run Behavior Treeの後に実行すると良いと思います。

 

 

 

まとめ

 

 

 

 以上で外部からSubtreeを指定することができました。Gameplay Tagを使うことでSubtreeが複数あってもそれぞれBehavior Treeを指定することができます。ぜひご活用ください。