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
0
190
BehaviorTree
社内LT大会で発表したやつです
いも
January 09, 2018
Tweet
Share
More Decks by いも
See All by いも
UnityプログラミングバイブルR6号宣伝&Unity Logging小話
adarapata
0
360
Unityテスト活動のふりかえり
adarapata
1
500
Gather.townはいいぞ その後
adarapata
1
1.4k
Unityでの開発事例
adarapata
3
22k
どこのご家庭にもあるシーンマネージャーの話
adarapata
1
7.1k
Gather.townはいいぞ
adarapata
2
2.3k
宴はいいぞ
adarapata
0
1.2k
わかった気になるモブプログラミング
adarapata
1
80
モブワークっぽいのをやっている話/Trying mobwork
adarapata
2
1.2k
Other Decks in Technology
See All in Technology
シェルとPerlの使い分け、 そういった思考の道具は、どこから来て、どこへゆくのか?v1.1.0
fmlorg
0
530
KubeVirt Networking ONIC 2024
orimanabu
4
650
今こそ変化対応力を向上させるとき 〜ログラスが FAST に挑戦する理由〜 / Why Loglass is Talking on the Challenge of Agile Framework FAST
shioyang
0
150
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
2
350
Qdrant を用いた検索改善施策の紹介 / Search Engineering Tech Talk 2024 Summer
visional_engineering_and_design
1
210
TypeScript x Raycast x AIで変える開発者体験
nagauta
1
280
【㈱アイモバイル】エンジニア向け会社説明資料
imobile
0
470
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
160
LINEヤフー新卒採用 コーディングテスト解説 実装問題編
lycorp_recruit_jp
1
13k
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
2k
プロダクト開発の貢献をアピールするための目標設計や認知活動 / Goal design and recognition activities to promote product development contributions.
oomatomo
5
930
What a Good Platform Looks Like and How to Get There @ Large Financial Organization, Oct 2024
mfpais
PRO
0
100
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
How STYLIGHT went responsive
nonsquared
95
5.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
7
590
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
It's Worth the Effort
3n
183
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.5k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
BBQ
matthewcrist
85
9.2k
Music & Morning Musume
bryan
46
6.1k
Typedesign – Prime Four
hannesfritz
39
2.3k
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 のいいところ ステー トマシンより複雑な条件に対応できる 小さなノー ドの組み合わせで表現するため、 変更 しやすい ステー
トマシンと共存可能 パズルみたいで楽しい( 個人の感想) 気をつけるところ 単純な挙動にもツリー の作成が必要 ステー トマシンよりはリソー スが必要
出稼ぎダンジョンの敵キャラの例
便利
おわり