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
メリット・デメリット
メリット
• 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

What's hot

徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!エピック・ゲームズ・ジャパン Epic Games Japan
 
RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装Koji Morikawa
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!com044
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術Unity Technologies Japan K.K.
 
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニックUnityTechnologiesJapan002
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しようUnityTechnologiesJapan002
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】Youichiro Miyake
 
UniRxでMV(R)Pパターン をやってみた
UniRxでMV(R)PパターンをやってみたUniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターン をやってみたtorisoup
 

What's hot (20)

[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
 
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
 
RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 
UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
UniRxでMV(R)Pパターン をやってみた
UniRxでMV(R)PパターンをやってみたUniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターン をやってみた
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られたNintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
 
UE4とUnrealC++について
UE4とUnrealC++についてUE4とUnrealC++について
UE4とUnrealC++について
 
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
 

Recently uploaded

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayersToru Tamaki
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 

Recently uploaded (11)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 

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