• 追加された行はこの色です。
  • 削除された行はこの色です。
UE4.8.1

[[ビヘイビアツリー]]
#contents


* はじめに [#ldcd325c]
ビヘイビアツリー内で、処理を分岐したりする。

* Selector [#ue4bd5ed]

- 子ノードが「FinishExecute」ノードで「Success」でtrueを返すと評価終了。子ノードの評価はそこで終了する。「Selector」ノード自体はtrueを返す。
- falseを返すと、次の子ノードの評価に遷移する。
- 子ノード全てがfalseを返すと、「Selector」ノード自体がfalseを返す。
- 「or」演算なイメージ

&ref(ue4-behavior_composites_selector_01.png);
- 処理順(ノード右下の赤字番号)
1 - Root



3 - falseを返す。次の兄弟ノードに移動する。



5 - trueを返す。trueなのでここで評価終了。兄弟ノードには移動しない。

(4:子ノードがtrueを返してきたので、4の「Selector」はtrueを返す)

1の「Root」に戻る。

* Sequence [#x6ccf9fc]

- 子ノードが「FinishExecute」ノードで「Success」でtrueを返すと、次のコードに評価が移る。
- falseを返すと評価中断。再度子ノードを1から評価していく。
- falseを返すと子ノードの評価を終了する。Sequenceノード自体はfalseを返す。
- 子ノード全てがtrueを返すと、Sequenceノード自体はtrueを返す。
- 「and」演算なイメージ

&ref(ue4-behavior_composites_sequence_01.png);
- 処理順(ノード右下の赤字番号)
1 - Root



3 - trueを返す。次の兄弟ノードに移動する。



5 - falseを返す。falseなのでここで評価終了。兄弟ノードには移動しない。

(4:子ノード(5)がfalseを返してきたので、4の「Sequence」はfalseを返す子ノードの評価終了)

(2:子ノード(4)がfalseを返してきたので、2の「Sequence」はfalseを返す。子ノードの評価終了)

1の「Root」に戻る。

* Simple Parallel [#ca1f84aa]
- メインタスクがSuccess, Failure関わらず「Finish Execute」呼んだ時点で評価終了する。「Finish Execute」を呼ぶまでの間、サブタスクが走り続ける。
- 「Finish Mode」が「Immediate」でメインタスク終了でサブタスクも即時終了。
「Delayed」にするとメインタスクが終了した後、サブタスクの評価が全部終了したタイミングでSimple Parallelの評価も終了。
-- メインタスクにWait5.0s、サブタスクにWait10.0sを繋げてみると分かりやすい


* 例題 [#x5a431be]
&ref(ue4-behavior_composites_ex_01.png);
- 処理順(ノード右下の赤字番号)
1 - Root





4 - trueを返す。trueなので兄弟ノードに移動。

5 - falseを返す。falseなので兄弟の評価終了。

(3:子ノードがfalseを返して来たので、3の「Sequence」はfalseを返す)

(2:子ノード(3)がfalseを返して来たので、2の「Selector」は次の子ノードを評価する)



1の「Root」に戻る。


&ref(ue4-behavior_composites_ex_02.png);
- 処理順(ノード右下の赤字番号)
1 - Root





4 - trueを返す。trueなので兄弟ノードに移動。

5 - trueを返す。trueなので兄弟ノードに移動するが弟が居ないので評価終了。

(3:子ノードが全部trueを返して来たので、3の「Sequence」はtrueを返す)

(2:子ノード(3)がtrueを返して来たので、2の「Selector」は評価終了、trueを返す。子ノードの6は評価されない)

1の「Root」に戻る。


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS