UE5/UE4 ビヘイビアツリー(Behavior Tree)のタスク(Task)の基本的なイベント処理と変数について(Event Recieve Execute、Event Recieve Tick、Event Recieve Abort、Finish Execute、Get AI Controller、Get Controlled Pawn)
ビヘイビアツリー(Behavior Tree)のタスク(Task)の作成と基本的なイベント処理と変数についてのメモです。
こちらを参考にさせていただきました。
・ビヘイビアツリー-Task
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-Task
公式ドキュメントはこちら。
・ビヘイビアツリー
https://docs.unrealengine.com/5.0/ja/behavior-trees-in-unreal-engine/
ビヘイビアツリー(Behavior Tree)のタスク(Task)には以下の3つの基本的なイベントがあります。
・「Event Recieve Execute」

このタスクが実行される際に1度だけ呼び出されます。
1度だけの処理で終わる場合はここに記述するのがよさそうです。
「Owner Actor」は「AI Controller」となります。
・「Event Recieve Tick」

このタスクが実行される際に「Finish Execute」を呼ぶまで毎フレーム呼び出されます。
継続して行われる処理はここに記述するのがよさそうです。
「Owner Actor」は「AI Controller」となります。
・「Event Recieve Abort」

このタスクが実行中に中断された時に呼び出されるようです。
「Owner Actor」は「AI Controller」となります。
各イベントには「Owner Actor」として「AI Controller」が取得できます。
この「AI Controller」から「Get AI Controller」→「Get Controlled Pawn」とすることで
AI が適用されているキャラクターを取得することができます。

こんな感じですね。
上記を組み合わせて使うとこんな感じになります。

「Delay」によって3秒後に「Finish Execute」が実行されタスクが終了します。
終了売るまでの間「Add Actor World Rotation」によってキャラクターが回転し続けます。
ビヘイビアツリー(Behavior Tree)のタスク(Task)は変数を持つことができ、
ビヘイビアツリーでタスクを設定する際に個別に設定することができるようです。
試しに変数を追加してみました。

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

先ほど作成した変数「Time Rotation」が表示されているのがわかります。
このタスクの詳細設定から、先ほど作成した変数を変更することができます。

こちらもこんな感じで詳細に「Time Rotation」という設定項目が増えています。
といった感じで、タスク自体は普通のBPと同じような処理ができるので結構いろいろなタスクが作れるんじゃないでしょうか。
こちらを参考にさせていただきました。
・ビヘイビアツリー-Task
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-Task
公式ドキュメントはこちら。
・ビヘイビアツリー
https://docs.unrealengine.com/5.0/ja/behavior-trees-in-unreal-engine/
ビヘイビアツリー(Behavior Tree)のタスク(Task)には以下の3つの基本的なイベントがあります。
>Event Recieve Execute : このTaskに入った際に1度だけ呼び出される
Event Recieve Tick : このTaskに入った後、「FinishExecute」を呼ぶまで毎フレーム呼び出される
: このTaskが処理中に中断された時に呼び出される?
・「Event Recieve Execute」

このタスクが実行される際に1度だけ呼び出されます。
1度だけの処理で終わる場合はここに記述するのがよさそうです。
「Owner Actor」は「AI Controller」となります。
・「Event Recieve Tick」

このタスクが実行される際に「Finish Execute」を呼ぶまで毎フレーム呼び出されます。
継続して行われる処理はここに記述するのがよさそうです。
「Owner Actor」は「AI Controller」となります。
・「Event Recieve Abort」

このタスクが実行中に中断された時に呼び出されるようです。
「Owner Actor」は「AI Controller」となります。
各イベントには「Owner Actor」として「AI Controller」が取得できます。
この「AI Controller」から「Get AI Controller」→「Get Controlled Pawn」とすることで
AI が適用されているキャラクターを取得することができます。

こんな感じですね。
上記を組み合わせて使うとこんな感じになります。

「Delay」によって3秒後に「Finish Execute」が実行されタスクが終了します。
終了売るまでの間「Add Actor World Rotation」によってキャラクターが回転し続けます。
ビヘイビアツリー(Behavior Tree)のタスク(Task)は変数を持つことができ、
ビヘイビアツリーでタスクを設定する際に個別に設定することができるようです。
試しに変数を追加してみました。

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

先ほど作成した変数「Time Rotation」が表示されているのがわかります。
このタスクの詳細設定から、先ほど作成した変数を変更することができます。

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