UE5/UE4 ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)を作成する(BTDecorator_BlueprintBase、Perform Condition Check)
ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)を作成する方法です。
こちらを参考にさせていただきました。
・ビヘイビアツリー-Decorator
http://com04.sakura.ne.jp/unreal/wiki/index.php?%A5%D3%A5%D8%A5%A4%A5%D3%A5%A2%A5%C4%A5%EA%A1%BC-Decorator
・UE4 「ビヘイビアツリーのクイックスタートガイド」 を修正してみた。
https://siu3.hatenablog.com/entry/2015/03/29/100517
公式ドキュメントはこちら。
・ビヘイビアツリー
https://docs.unrealengine.com/5.0/ja/behavior-trees-in-unreal-engine/
ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)を作成するには
「BTDecorator_BlueprintBase」を継承したBPを作成します。

こんな感じのBP(BTD_Test)を作りました。

作成したBPを開いて「Perform Condition Check」関数を Override します。

デコレーター(Decorator)の条件はこの関数に記述することになります。
「Perform Condition Check」関数はこんな感じになります。

「Owner Actor」は「AI Controller」となります。
「Return Value」は条件の真偽を設定します。
基本的にはあとはどんな条件なのかを記述していくだけになります。簡単ですね。
あとは実際にビヘイビアツリー(Behavior Tree)に設定してみます。

こんな感じになりました。
基本的には条件を書いていくだけなのでわかりやすいのかなと思います。
あとは「Perform Condition Check」関数では「Owner Actor」として「AI Controller」が取得できます。
この「AI Controller」から「Get AI Controller」→「Get Controlled Pawn」とすることで
AI が適用されているキャラクターを取得することができます。

それと、ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)は変数を持つことができ、
ビヘイビアツリーでデコレーターを設定する際に個別に設定することができるようです。
試しに変数を追加してみました。

こんな感じで「Bool型」の変数を作ってみました。
※目のアイコンをクリックして公開設定にするのを忘れないようにしましょう。
これを実際にビヘイビアツリー(Behavior Tree)でデコレーター(Decorator)を作成してみるとこんな感じになります。

先ほど作成した変数「Is Check」が表示されているのがわかります。
このデコレーターの詳細設定から、先ほど作成した変数を変更することができます。

こちらもこんな感じで詳細に「Is Check」という設定項目が増えています。
といった感じで、デコレーター自体は普通のBPと同じような処理ができるので結構いろいろな条件が作れるんじゃないでしょうか。
こちらを参考にさせていただきました。
・ビヘイビアツリー-Decorator
http://com04.sakura.ne.jp/unreal/wiki/index.php?%A5%D3%A5%D8%A5%A4%A5%D3%A5%A2%A5%C4%A5%EA%A1%BC-Decorator
・UE4 「ビヘイビアツリーのクイックスタートガイド」 を修正してみた。
https://siu3.hatenablog.com/entry/2015/03/29/100517
公式ドキュメントはこちら。
・ビヘイビアツリー
https://docs.unrealengine.com/5.0/ja/behavior-trees-in-unreal-engine/
ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)を作成するには
「BTDecorator_BlueprintBase」を継承したBPを作成します。

こんな感じのBP(BTD_Test)を作りました。

作成したBPを開いて「Perform Condition Check」関数を Override します。

デコレーター(Decorator)の条件はこの関数に記述することになります。
「Perform Condition Check」関数はこんな感じになります。

「Owner Actor」は「AI Controller」となります。
「Return Value」は条件の真偽を設定します。
基本的にはあとはどんな条件なのかを記述していくだけになります。簡単ですね。
あとは実際にビヘイビアツリー(Behavior Tree)に設定してみます。

こんな感じになりました。
基本的には条件を書いていくだけなのでわかりやすいのかなと思います。
あとは「Perform Condition Check」関数では「Owner Actor」として「AI Controller」が取得できます。
この「AI Controller」から「Get AI Controller」→「Get Controlled Pawn」とすることで
AI が適用されているキャラクターを取得することができます。

それと、ビヘイビアツリー(Behavior Tree)のデコレーター(Decorator)は変数を持つことができ、
ビヘイビアツリーでデコレーターを設定する際に個別に設定することができるようです。
試しに変数を追加してみました。

こんな感じで「Bool型」の変数を作ってみました。
※目のアイコンをクリックして公開設定にするのを忘れないようにしましょう。
これを実際にビヘイビアツリー(Behavior Tree)でデコレーター(Decorator)を作成してみるとこんな感じになります。

先ほど作成した変数「Is Check」が表示されているのがわかります。
このデコレーターの詳細設定から、先ほど作成した変数を変更することができます。

こちらもこんな感じで詳細に「Is Check」という設定項目が増えています。
といった感じで、デコレーター自体は普通のBPと同じような処理ができるので結構いろいろな条件が作れるんじゃないでしょうか。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑