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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BehaviorTree
社内LT大会で発表したやつです
いも
January 09, 2018
More Decks by いも
See All by いも
UnityプログラミングバイブルR6号宣伝&Unity Logging小話
adarapata
0
640
Unityテスト活動のふりかえり
adarapata
1
680
Gather.townはいいぞ その後
adarapata
1
1.7k
Unityでの開発事例
adarapata
3
23k
どこのご家庭にもあるシーンマネージャーの話
adarapata
2
8.8k
Gather.townはいいぞ
adarapata
2
2.4k
宴はいいぞ
adarapata
0
2.2k
わかった気になるモブプログラミング
adarapata
1
180
モブワークっぽいのをやっている話/Trying mobwork
adarapata
2
1.3k
Other Decks in Technology
See All in Technology
公式ドキュメントの歩き方etc
coco_se
0
110
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
150
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
150
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
280
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
290
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.2k
穢れた技術選定について
watany
9
780
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.8k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
The Curious Case for Waylosing
cassininazir
1
430
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
4 Signs Your Business is Dying
shpigford
187
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Agile that works and the tools we love
rasmusluckow
331
22k
Why Our Code Smells
bkeepers
PRO
340
58k
Design in an AI World
tapps
1
260
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
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 のいいところ ステー トマシンより複雑な条件に対応できる 小さなノー ドの組み合わせで表現するため、 変更 しやすい ステー
トマシンと共存可能 パズルみたいで楽しい( 個人の感想) 気をつけるところ 単純な挙動にもツリー の作成が必要 ステー トマシンよりはリソー スが必要
出稼ぎダンジョンの敵キャラの例
便利
おわり