Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BehaviorTree
Search
いも
January 09, 2018
Technology
270
0
Share
BehaviorTree
社内LT大会で発表したやつです
いも
January 09, 2018
More Decks by いも
See All by いも
UnityプログラミングバイブルR6号宣伝&Unity Logging小話
adarapata
0
620
Unityテスト活動のふりかえり
adarapata
1
640
Gather.townはいいぞ その後
adarapata
1
1.7k
Unityでの開発事例
adarapata
3
23k
どこのご家庭にもあるシーンマネージャーの話
adarapata
2
8.6k
Gather.townはいいぞ
adarapata
2
2.4k
宴はいいぞ
adarapata
0
2k
わかった気になるモブプログラミング
adarapata
1
170
モブワークっぽいのをやっている話/Trying mobwork
adarapata
2
1.3k
Other Decks in Technology
See All in Technology
[OpsJAWS 40]リリースしたら終わり、じゃなかった。セキュリティ空白期間をAWS Security Agentで埋める
sh_fk2
3
270
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.9k
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
620
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
180
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
4.1k
20260428_Product Management Summit_tadokoroyoshiro
tadokoro_yoshiro
14
15k
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.4k
AI バイブコーティングでキーボード不要?!
samakada
0
640
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
320
コードや知識を組み込む / Incorporate Code and Knowledge
ks91
PRO
0
180
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
470
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
130
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
120
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
sira's awesome portfolio website redesign presentation
elsirapls
0
220
Optimising Largest Contentful Paint
csswizardry
37
3.7k
New Earth Scene 8
popppiees
3
2.1k
From π to Pie charts
rasagy
0
170
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Designing for Performance
lara
611
70k
Transcript
Behavior Tree imo
imo です https://adarapata.com/
AI のおはなし
みなさんはAI を作るときどう してますか?
僕は作ったことありません 一緒に勉強しましょう
アクションゲー ムのキャラのAI を作り たい 動かない( 静止) 索敵範囲内に敵がいたら接近 攻撃範囲内に敵がいたら攻撃 接近中に相手が攻撃してきたら回避 静止中は一定確率で踊る
ステー トマシンで書いてみる 5 つの行動を「 状態」 と考える それぞれの状態遷移先を定義する 実装は割と楽
ステー トマシンのデメリット 状態が増えると遷移が爆発的に増える 遷移が増えると複雑性が増し、 管理しにくい 状態と遷移条件と紐づくため、 再利用性が低い
そこでBehaviorTree
BehaviorTree 振る舞いをツリー 状で管理する手法 状態ではなく振る舞いを定義する ステー トマシンより複雑な意思決定を行える 今のゲー ム業界AI はこれが多いらしい 発祥は「Halo2」
とのこと
どんなの? ↑ だとよくわからんのでUnity 上でBehaviorTree を扱 うアセットで見る
基本は左から深さ優先探索していく
ノー ド Tree を構成する要素 以下のどれかのステー タスをもつ READY: 初期化 SUCCESS: 成功
FAILURE: 失敗 RUNNING: 実行中 ステー タスを親ノー ドに返して評価する
ノー ドの種類 基本的なやつは以下 Action Conditional Sequence Selector Decorator
Action ノー ド 実際に実行する処理のノー ド 子を持たないリー フノー ド 今回だと攻撃とか踊るとかのロジック アクションに対しての成否を返す
Conditional ノー ド 条件判定を行うノー ド 子を持たないリー フノー ド 今回だと敵が攻撃してきたか? などの部分
条件判定の成否を返す
Sequence ノー ド いわゆるAND ノー ド 必ず子を持つ 子を左から順番に実行する 子から成否をもらい、 否が返ってくると終了して
親に返す 否が来ない限り、 子を全部実行する
Selector ノー ド いわゆるOR ノー ド 必ず子を持つる 子を左から順番に実行する 子から成否をもらい、 成が返ってくると終了する
Decorator ノー ド 今回使ってない Action の結果に装飾を行うノー ド Action は成功したけど強制的に失敗とか
例: 敵が攻撃範囲内にいた場合
例: 敵が索敵範囲内にいる、 且つ攻撃はしていない
例: 敵が攻撃範囲にも索敵範囲にもいない、 踊らない
Behavior Tree のいいところ ステー トマシンより複雑な条件に対応できる 小さなノー ドの組み合わせで表現するため、 変更 しやすい ステー
トマシンと共存可能 パズルみたいで楽しい( 個人の感想) 気をつけるところ 単純な挙動にもツリー の作成が必要 ステー トマシンよりはリソー スが必要
出稼ぎダンジョンの敵キャラの例
便利
おわり