UE5/UE4 ビヘイビアツリー(Behavior Tree)の「Run Behavior Dynamic」が正常に実行されない場合の対処方法(Blackboardの共通指定、Restart Logic後のSet Dynamic Subtree再設定)
ビヘイビアツリー(Behavior Tree)の「Run Behavior Dynamic」が正常に実行されない場合の対処方法についてです。
まずはこちらのツイートの設定になります。
元のビヘイビアツリーとサブツリーの「Blackboard」の指定は同じものにしないといけないようです。
「Root」ノードの詳細の「Blackboard Asset」を指定できます。

元のビヘイビアツリーとサブツリーの「Blackboard」を共通化したのが以下になります。

元となるビヘイビアツリー。

「Run Behavior Dynamic」で実行しようとするビヘイビアツリー。
「Root」ノードを見ると同じ「Blackboard」が指定されているのがわかると思います。
もう一つが「Set Dynamic Subtree」の再設定についてです。
「Run Behavior Dynamic」の中身を差し替える場合、以下のように「Set Dynamic Subtree」で指定をします。

「Run Behavior Tree」ノードの後に「Set Dynamic Subtree」で指定をする流れになると思います。
これで普通に動的に差し替わって「Run Behavior Dynamic」が正常に実行されるのですが
「Restart Logic」ノードを実行すると「Set Dynamic Subtree」で設定したものがリセットされるようです。

なので「Restart Logic」を実行した場合は、再度「Set Dynamic Subtree」で設定する必要があります。
「Restart Logic」で地味にはまりました…。
まずはこちらのツイートの設定になります。
ちなみにParentが同じBlackboardをサブツリーに設定してもダメでした。全く同じBlackboardアセットを使う必要があるみたい。
— にし (@N_cias) May 18, 2019
元のビヘイビアツリーとサブツリーの「Blackboard」の指定は同じものにしないといけないようです。
「Root」ノードの詳細の「Blackboard Asset」を指定できます。

元のビヘイビアツリーとサブツリーの「Blackboard」を共通化したのが以下になります。

元となるビヘイビアツリー。

「Run Behavior Dynamic」で実行しようとするビヘイビアツリー。
「Root」ノードを見ると同じ「Blackboard」が指定されているのがわかると思います。
もう一つが「Set Dynamic Subtree」の再設定についてです。
「Run Behavior Dynamic」の中身を差し替える場合、以下のように「Set Dynamic Subtree」で指定をします。

「Run Behavior Tree」ノードの後に「Set Dynamic Subtree」で指定をする流れになると思います。
これで普通に動的に差し替わって「Run Behavior Dynamic」が正常に実行されるのですが
「Restart Logic」ノードを実行すると「Set Dynamic Subtree」で設定したものがリセットされるようです。

なので「Restart Logic」を実行した場合は、再度「Set Dynamic Subtree」で設定する必要があります。
「Restart Logic」で地味にはまりました…。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑