ビヘイビアツリー-Composite
のバックアップの現在との差分(No.2)
[
ホーム
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
バックアップ一覧
差分
を表示
現在との差分
を表示
ソース
を表示
バックアップ
を表示
ビヘイビアツリー-Composite
へ行く。
UE4.8.1
ビヘイビアツリー
はじめに
Selector
Sequence
Simple Parallel
例題
はじめに
†
ビヘイビアツリー
内で、処理を分岐したりする。
▲
▼
Selector
†
子ノードが「FinishExecute」ノードで「Success」でtrueを返すと評価終了。子ノードの評価はそこで終了する。「Selector」ノード自体はtrueを返す。
falseを返すと、次の子ノードの評価に遷移する。
子ノード全てがfalseを返すと、「Selector」ノード自体がfalseを返す。
「or」演算なイメージ
処理順(ノード右下の赤字番号)
1 - Root
↓
2
↓
3 - falseを返す。次の兄弟ノードに移動する。
↓
4
↓
5 - trueを返す。trueなのでここで評価終了。兄弟ノードには移動しない。
↓
(子ノードがtrueを返してきたので、4はtrueを返す)
(4:子ノードがtrueを返してきたので、4の「Selector」はtrueを返す)
↓
1の「Root」に戻る。
▲
▼
Sequence
†
子ノードが「FinishExecute」ノードで「Success」でtrueを返すと、次のコードに評価が移る。
falseを返すと子ノードの評価を終了する。Sequenceノード自体はfalseを返す。
子ノード全てがtrueを返すと、Sequenceノード自体はtrueを返す。
「and」演算なイメージ
処理順(ノード右下の赤字番号)
1 - Root
↓
2
↓
3 - trueを返す。次の兄弟ノードに移動する。
↓
4
↓
5 - falseを返す。falseなのでここで評価終了。兄弟ノードには移動しない。
↓
(子ノードがfalseを返してきたので、4はfalseを返す)
(4:子ノード(5)がfalseを返してきたので、4の「Sequence」はfalseを返す子ノードの評価終了)
↓
(2:子ノード(4)がfalseを返してきたので、2の「Sequence」はfalseを返す。子ノードの評価終了)
↓
1の「Root」に戻る。
▲
▼
Simple Parallel
†
メインタスクがSuccess, Failure関わらず「Finish Execute」呼んだ時点で評価終了する。「Finish Execute」を呼ぶまでの間、サブタスクが走り続ける。
「Finish Mode」が「Immediate」でメインタスク終了でサブタスクも即時終了。
「Delayed」にするとメインタスクが終了した後、サブタスクの評価が全部終了したタイミングでSimple Parallelの評価も終了。
メインタスクにWait5.0s、サブタスクにWait10.0sを繋げてみると分かりやすい
▲
▼
例題
†
処理順(ノード右下の赤字番号)
1 - Root
↓
2
↓
3
↓
4 - trueを返す。trueなので兄弟ノードに移動。
↓
5 - falseを返す。falseなので兄弟の評価終了。
↓
(3:子ノードがfalseを返して来たので、3の「Sequence」はfalseを返す)
↓
(2:子ノード(3)がfalseを返して来たので、2の「Selector」は次の子ノードを評価する)
↓
6
↓
1の「Root」に戻る。
処理順(ノード右下の赤字番号)
1 - Root
↓
2
↓
3
↓
4 - trueを返す。trueなので兄弟ノードに移動。
↓
5 - trueを返す。trueなので兄弟ノードに移動するが弟が居ないので評価終了。
↓
(3:子ノードが全部trueを返して来たので、3の「Sequence」はtrueを返す)
↓
(2:子ノード(3)がtrueを返して来たので、2の「Selector」は評価終了、trueを返す。子ノードの6は評価されない)
↓
1の「Root」に戻る。