end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

FSM (有限ステートマシン) からの behavior tree

先日の FSM / ステートパターン のエントリで扱った例を behavior tree で実装しようと考えていましたが、 behavior treeで扱うには、その例が簡単すぎたみたい。

end0tknr.hateblo.jp

なので、 behavior tree の簡単なまとめだけを記載しておきます。

決定木( decision tree )と異なり、 Sequence(AND)やSelector(OR)等の多様なノードがある点で、 behavior tree の方が多機能ですね。

unreal engineでは、behavior tree のguiなエディタがあるみたいですけど、 同様の問題はprologでも解けそうですね。

参考url

niconare.nicovideo.jp

www.slideshare.net

代表的なノード

f:id:end0tknr:20170701105532p:plain

サンプル

f:id:end0tknr:20170701114612p:plain

f:id:end0tknr:20170701114614p:plain

behavior tree の長所/短所

  • ◯ 状態管理は複雑になってもFSMより管理が簡単
  • ◯ 全体像を見渡せる
  • × 全てのノードを探索する場合があり、CPU負荷:高