Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BehaviorTree
Search
いも
January 09, 2018
Technology
0
260
BehaviorTree
社内LT大会で発表したやつです
いも
January 09, 2018
Tweet
Share
More Decks by いも
See All by いも
UnityプログラミングバイブルR6号宣伝&Unity Logging小話
adarapata
0
590
Unityテスト活動のふりかえり
adarapata
1
590
Gather.townはいいぞ その後
adarapata
1
1.6k
Unityでの開発事例
adarapata
3
23k
どこのご家庭にもあるシーンマネージャーの話
adarapata
2
8.4k
Gather.townはいいぞ
adarapata
2
2.4k
宴はいいぞ
adarapata
0
1.6k
わかった気になるモブプログラミング
adarapata
1
130
モブワークっぽいのをやっている話/Trying mobwork
adarapata
2
1.3k
Other Decks in Technology
See All in Technology
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
810
学習データって増やせばいいんですか?
ftakahashi
2
450
SREには開発組織全体で向き合う
koh_naga
0
360
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
130
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
500
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
400
AI時代の新規LLMプロダクト開発: Findy Insightsを3ヶ月で立ち上げた舞台裏と振り返り
dakuon
0
170
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
120
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
440
5分で知るMicrosoft Ignite
taiponrock
PRO
0
390
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.3k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Producing Creativity
orderedlist
PRO
348
40k
Six Lessons from altMBA
skipperchong
29
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Site-Speed That Sticks
csswizardry
13
1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Designing for humans not robots
tammielis
254
26k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Into the Great Unknown - MozCon
thekraken
40
2.2k
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 のいいところ ステー トマシンより複雑な条件に対応できる 小さなノー ドの組み合わせで表現するため、 変更 しやすい ステー
トマシンと共存可能 パズルみたいで楽しい( 個人の感想) 気をつけるところ 単純な挙動にもツリー の作成が必要 ステー トマシンよりはリソー スが必要
出稼ぎダンジョンの敵キャラの例
便利
おわり