fc2ブログ

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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットをサブツリー(Subtree)として実行する(Run Behavior)

ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットをサブツリー(Subtree)として実行する方法です。

公式ドキュメントはこちら。

・Behavior Tree ノードのリファレンス:タスク
https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeNodeReference/BehaviorTreeNodeReferenceTasks/

・ビヘイビアツリーの概要(Behavior Tree Overview)
https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreesOverview/

・ビヘイビアツリーのクイックスタートガイド
https://docs.unrealengine.com/5.0/ja/behavior-tree-in-unreal-engine---quick-start-guide/

ビヘイビアツリー(Behavior Tree)の中で異なるビヘイビアツリー(Behavior Tree)アセットを実行するには
「Run Behavior」ノード
を使います。
RunBehavior001.jpg

Run Behavior Task ノードを使用すると、
サブツリーを実行スタックにプッシュすることで別のビヘイビアツリーを実行することができます。
ただし、サブツリー アセットは実行時に変更できないという制限があります。
この制限は、親ツリーに挿入されるサブツリーの Root レベル デコレーターのサポートによって発生します。
また、実行中のツリーの構造は実行時に変更できません。


設定は簡単で「詳細」にある「Behavior Asset」を指定するだけになります。
RunBehavior003.jpg
ここを設定するだけで、ビヘイビアツリー内で他のビヘイビアツリーを実行することができます。

例えばこんな感じのビヘイビアツリーを作成します。
RunBehavior000.jpg
「Run Behavior」にはまだ何も設定していない状態です。
このノードに他のビヘイビアツリーを設定してあげます。

するとこんな感じで他のビヘイビアツリーアセットがサブツリーとして実行されます。
RunBehavior004.jpg
設定したアセット名がノードに表示されるようになりました。

ちなみにこの「Run Behavior」ノードによるサブツリーの実行ですが、
実行するビヘイビアツリーの「Root」ノードの直下にデコレーターが設定されていると正常に動作しないようです。
RunBehavior002.jpg
こんな警告のようなメッセージがでます。

気になったので試しにやってみました。
まずはこんな感じの「Root」直下にデコレーターが設定してあるビヘイビアツリーを用意しました。
RunBehavior006.jpg

これを「Run Behavior」に設定してみるとこんな感じになりました。
RunBehavior005.jpg
サブツリーの「Root」直下のデコレーターが自動で「Run Behavior」にもくっつくので正常に動作する。
ということなんでしょうか…。
てっきりエラーになると思っていたのでちょっと謎です…。

とまあ、「Run Behavior」ノードは処理の切り分けや、
同じような動作をさせる場合の関数みたいな使い方もできるので結構使っていけるんじゃないかなと思います。

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

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/867-7c3657e6

TRACKBACK

PREV | PAGE-SELECT | NEXT