fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

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を作成します。
ビヘイビアツリーデコレーター作成000

こんな感じのBP(BTD_Test)を作りました。
ビヘイビアツリーデコレーター作成001

作成したBPを開いて「Perform Condition Check」関数を Override します。
ビヘイビアツリーデコレーター作成002
デコレーター(Decorator)の条件はこの関数に記述することになります。

「Perform Condition Check」関数はこんな感じになります。
ビヘイビアツリーデコレーター作成003
「Owner Actor」は「AI Controller」となります。
「Return Value」は条件の真偽を設定します。

基本的にはあとはどんな条件なのかを記述していくだけになります。簡単ですね。

あとは実際にビヘイビアツリー(Behavior Tree)に設定してみます。
ビヘイビアツリーデコレーター作成005
こんな感じになりました。
基本的には条件を書いていくだけなのでわかりやすいのかなと思います。

あとは「Perform Condition Check」関数では「Owner Actor」として「AI Controller」が取得できます。
この「AI Controller」から「Get AI Controller」→「Get Controlled Pawn」とすることで
AI が適用されているキャラクターを取得
することができます。
ビヘイビアツリーデコレーター作成004

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

試しに変数を追加してみました。
ビヘイビアツリーデコレーター作成006
こんな感じで「Bool型」の変数を作ってみました。
目のアイコンをクリックして公開設定にするのを忘れないようにしましょう。

これを実際にビヘイビアツリー(Behavior Tree)でデコレーター(Decorator)を作成してみるとこんな感じになります。
ビヘイビアツリーデコレーター作成008
先ほど作成した変数「Is Check」が表示されているのがわかります。

このデコレーターの詳細設定から、先ほど作成した変数を変更することができます。
ビヘイビアツリーデコレーター作成007
こちらもこんな感じで詳細に「Is Check」という設定項目が増えています。

といった感じで、デコレーター自体は普通のBPと同じような処理ができるので結構いろいろな条件が作れるんじゃないでしょうか。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/673-9bd775b2

TRACKBACK

PREV | PAGE-SELECT | NEXT