SlideShare a Scribd company logo
幻塔戦記グリフォンでの
Behaviour Treeの試み
2014.01.29
Sindharta Tanuwijaya
(シンダルタ タヌイジャヤ)
Behaviour Treeとは
• AIのアルゴリズムの1つ
– State Machineと目的が似ています
• 目的:ゲーム内のオブジェクトが考えて
行動するようにする
• NPC対戦チュートリアルに使ってみた
State Machine
ステート・マシン
State Machineの振り返り 1/2
• オブジェクトの行動を下記のもので表現
する
– State
– Stateの遷移(Event)で表現する
S0
E1
S2S1 S3
E2
E3 E4
E5
S: State
E: Event
State Machineの振り返り 2/2
• 例:爆弾
周囲を
探知
爆発
距離< x
消える
アニメーションが
終われば
時間< y
NPC対戦チュートリアルに
State Machineを使える?
NPC対戦チュートリアルに
State Machineを使える?
• NPC対戦の仕様:
1. クリープ (NPC)が前進したときは慎重についていく
2. AIは保守的。あまり深く敵を追わない
3. タワーを護衛する
4. 敵が近ければ、攻撃する。優先度は:
• プレイヤー
• クリープ (NPC)
5. HPが減れば、基地に戻る
6. 場所に引っかかる場合の対応
• Stateの数:少なくとも6
• 遷移の数:正確には不明だが、多い
• 最初一部をState Machineで実装しが、State Machineの
欠点をよく考えさせられた
State Machineの欠点 1/2
• Stateの数が少なければ問題ないが、State
の数が増えれば、管理しないといけない
遷移は膨大に増える。大雑把に:
?
S: 3
E: 3
S: 4
E: 6
S: 5
E: 10
S: 6
E: 15
S: 7
E: 21
State Machineの欠点 2/2
• Stateとその遷移が1つのAIの構造に
なっているので、再利用性が低い
– 例:攻撃する行動は別のAIで実行されてい
ましたが、簡単に使いまわすことができない
S0
E1
S2S1
E2
E3
S0
Ex
SySx
Ey
Ez
S: State
E: Event
State Machineの問題のまとめ
• 問題点:
1. Stateの数が増えれば、管理しないといけな
い遷移は膨大に増える
• バグが出やすい
• デバッグは難しい
2. 再利用性が低い
• 違うやり方で、NPC対戦のチュートリアル
をやろうと考えた
– Behaviour Tree
Behaviour Tree
Behaviour Tree: 入門
• 構造:Tree
• Treeのノードはステータスを持ってい
る:
– READY: 初期値
– SUCCESS: ノードの実行が成功した
– FAILURE:ノードの実行が失敗した
– RUNNING:ノードの実行がまだ終わっ
ていない
• 代表的なBehaviour Treeのノードの種
類:
– Action ノード
– Selector ノード
– Sequence ノード
– Decorator ノード
Action ノード
• 一番シンプル:実行するのみ
• TreeのLeafだけ。子は持てない
• 例:一番近い敵への攻撃
A
Decorator ノード
• ある条件のチェックを行う:
– 通ったら子を実行して、子が返すステータスを返す
– 通らなかったら、Failureを返す
• 子は1つだけ。
• 例:HP<10であれば、一番近い敵を攻撃する
– D:HP<10
– A:一番近い敵を攻撃する
A
D
Selector ノード
• 成功する子が見つかるまで、子を1つ1つ実行する。
– 見つかったら、処理を止めて、Successを返す。
– 見つからなかったら、Failureを返す
• 例:
– 一番近い敵を攻撃する
– 敵がいなかったら、クリープを付いていく
– クリープがいなかったら、待機する
A
Sel
A A
Sequence ノード
• 順番に子を実行するノード
– 子が成功したら、すぐRunningを返す。次のフレームの
Updateで次の子を実行する
– 子が失敗したら、すぐFailureを返す
– すべてのノードを実行し終わったら、Successを返す
• 例:ある位置に移動して、着いたらしばらく待機する
A
Seq
A
Running
A
Seq
A
フレーム1 フレーム2
A A
Ready
TreeのUpdateのルール
• 毎フレームではなくてもよいが、定期的
にUpdate
• RUNNINGじゃないノードのステータスを
READYにしてから、RootからUpdateする
– 再帰的
例
Behaviour Treeの例
• HPが10より大きけ
れば、一番近い敵
を攻撃する。最大
距離:5m
• 敵が見つからな
かったら、一番前
のタワーに移動し
て、待機する
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
Ready
HP最大で、敵も近くにいる場合
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
Ready
Running
Success
Failure
HP最大で、敵も近くにいない場
合
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
Ready
Running
Success
Failure
まだタワーついていなかったら、そのまま
行く
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
Ready
Running
Success
Failure
タワーについたら、待機
5m以内
の敵を
攻撃
Sel
一番前
のタ
ワーに
行く
待機
HP>
10
Seq
Ready
Running
Success
Failure
全体の流れ
• Updateのルール
– 毎フレームではなくてもよいが、定期的
Update
– RUNNINGじゃないノードのステータスを
READYにしてから、RootからUpdateする
• 再帰的
• ずっと繰り返す
NPC対戦チュートリアルの
Behaviour Tree 1/2
• NPC対戦の仕様:
1. クリープ (NPC)が前進したときは慎重について
いく
2. AIは保守的。あまり深く敵を追わない
3. タワーを護衛する
4. 敵が近ければ、攻撃する。優先度は:
• プレイヤー
• クリープ (NPC)
5. HPが減れば、基地に戻る
6. 場所に引っかかる場合の対応
NPC対戦チュートリアルの
Behaviour Tree 2/2
Sel
基地へ
行く
回復
HP>10 Seq
タワーから
の距離<5
引っかか
る場合の
対応
Sel
Seq
Sel
プレイ
ヤーを攻
撃
クリー
プを攻
撃
クリープ
を付いて
いく
プレイ
ヤーを攻
撃
クリー
プを攻
撃
タワーを
護衛
タワー
へ行く
Sel
Behaviour Treeを
可視化するツールも
作ってみました
ツール
• 可視化するツールがないと、デバッグが難し
い
• Unity Editor上で動く
• 選択されているオブジェクトが特別なコンポ
ネントを持っているかどうかを探知して、自
動的に表示・非表示する
• 形:Tree
• 色:ステータスを表現
• デバッグ情報も表示
• リアルタイム
 Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
Behaviour Tree
メリット・デメリット
メリット
• Behaviour Treeのルールによって、AIが
複雑になっていても管理しやすい
• 全体的に可視化できる
– デバッグは比較的に楽
• ノードがモジュラー
– 再利用性は高い
– 同じノードを使いまわして、違うAIを作る
ことが楽。例:アグレッシブなAI
欠点
• すべてのノードに訪れる可能性があるの
で、State MachineよりCPUの負担がかかる
可能性がある
• すべての行動がノードで表現されている
ので、簡単な行動を作りたくても、ノー
ドを作る必要がある
– 例:NPCの向きを固定にする
欠点の対応
• CPUの負担:
– Behaviour TreeのUpdateを毎フレーム実行しな
い
• ノードを必ず作る:
– State MachineとBehaviour Treeの組み合わせ
S0 E1
S1
E2
E3
A
Sel
A A
まとめ
まとめ
• 作りたいAIが複雑であれば、Behaviour Treeを
使ったほうがよい。
– 最初的にはBehaviour Treeのフレームワークを開発す
るコストが発生しますが、長期的に見ると開発コス
トが下がるし、生産性もあがる
• フレームワークの開発は1回だけで、使いまわすことができ
る。
• デバッグが楽
• 再利用性
– 複雑の定義:ステートの数がおよそ4つ以上。ボス
戦に向いている
• AIが複雑でなければ、State Machineでもよい
– 再利用性を高めたければ、State MachineとBehaviour
Treeの組み合わせを作ることもできる
おまけ
• Treeの構造を表示するのは意外と少々難しかった
– Y座標は簡単
– X座標は少々難しい
• ある行動を1つのノードにするか、何かに組み合
わせで、同じ行動を表現するかを少々悩んだこと
がある。例:プレイヤーとタワーを攻撃する
1. 同じActionノードにする
2. 別々にする
• Behaviour Treeの作成はコードで手で書いた。それ
を作る・編集ツールがあれば、さらに生産性があ
がる。
– ランタイムで編集して、その編集をすぐ反映できる
以上
ご清聴ありがとうございます。

More Related Content

PDF
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
dena_genom
 
PDF
【Unity】 Behavior TreeでAIを作る
torisoup
 
PDF
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
 
PDF
ゲームAI入門(前半)
Youichiro Miyake
 
PDF
ゲームAI入門(後半)
Youichiro Miyake
 
PDF
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
 
PPTX
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
エピック・ゲームズ・ジャパン Epic Games Japan
 
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
dena_genom
 
【Unity】 Behavior TreeでAIを作る
torisoup
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Youichiro Miyake
 
ゲームAI入門(前半)
Youichiro Miyake
 
ゲームAI入門(後半)
Youichiro Miyake
 
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
 
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
エピック・ゲームズ・ジャパン Epic Games Japan
 

What's hot (20)

PPTX
なぜなにリアルタイムレンダリング
Satoshi Kodaira
 
PPTX
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
エピック・ゲームズ・ジャパン Epic Games Japan
 
PPTX
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
PPTX
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
 
PDF
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
 
PDF
トリコの動かし方
株式会社ジェンデザイン
 
PDF
猫でも分かるUE4のポストプロセスを使った演出・絵作り
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
UE4における大規模背景制作事例 最適化ワークフロー編
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック・ゲームズ・ジャパン Epic Games Japan
 
PPTX
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 
PPTX
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
 
PDF
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
UnityTechnologiesJapan002
 
PPTX
[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2...
エピック・ゲームズ・ジャパン Epic Games Japan
 
なぜなにリアルタイムレンダリング
Satoshi Kodaira
 
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
エピック・ゲームズ・ジャパン Epic Games Japan
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の作り方
エピック・ゲームズ・ジャパン Epic Games Japan
 
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
 
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
 
トリコの動かし方
株式会社ジェンデザイン
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
エピック・ゲームズ・ジャパン Epic Games Japan
 
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4における大規模背景制作事例 最適化ワークフロー編
エピック・ゲームズ・ジャパン Epic Games Japan
 
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
エピック・ゲームズ・ジャパン Epic Games Japan
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
エピック・ゲームズ・ジャパン Epic Games Japan
 
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
Unity Technologies Japan K.K.
 
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
UnityTechnologiesJapan002
 
[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2...
エピック・ゲームズ・ジャパン Epic Games Japan
 
Ad

Recently uploaded (11)

PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
Ad

Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)