GOAPの他にゲームAIでプランニングというと、HTN(Hierarchical Task Network、階層型タスクネットワーク)も「KILLZONE 2」を始めとするいくつかのタイトルで採用されているらしい。(ただこれはやや簡略化されているという話)
[2019/07/11 セッション一覧の更新を反映] cedec.cesa.or.jp キャラクターAIからPCG、MLやテスト自動化までとりあえず入れておく。
先に紹介したAI PlannerのようなシステムはゲームAIの分野だとGOAP(ゴール指向プランニング、Goal-Oriented Action Planning)と呼ばれるが、起源は「F.E.A.R.」にあるようだ。 元々人工知能分野でプランニング問題(ロボットアームで積み木を指定された並…
UnityがGDC2019でAI Plannerについて発表していた。 schedule.gdconf.com 今のところ(バージョン0.0.1)は正直GUIの挙動が怪しくてよく分からないが、プランニングシステムとして汎用的で良くできいそうなので、その設計についてメモ。 Unity 2018からのEnt…
Unityにはml-agentsという、UnityプロジェクトをMLの学習環境に使えるようにするツールがある。 github.com こいつのドキュメントには「学習環境を作ってみよう!」という一見フレンドリーな項があるのだがこれが曲者で、デフォルト設定(config/trainer_con…
先日Unity TechnologiesがFPSゲームのサンプルプロジェクトを公開した。 blogs.unity3d.com
電ファミニコゲーマーが三宅陽一郎氏(日本で最もゲームAI技術・コミュニティの発展に尽力している人)監修でゲームAI専門のwikiを開設したとのこと。 wiki.denfaminicogamer.jp
(2018/10/10 リンクミスを修正) CEDEC2018の「次世代QAとAI ~ゲーム開発におけるAI活用に正しく向き合うために~」(詳細、動画)で良い資料(↓のpdfのp.34)が出ていたので、一部補足して載せておく。 cedil.cesa.or.jp
ScriptableObjectとは インスタンスがアセットとして扱えるクラス。 継承して使う インスタンスがアセットとして保存できる(シリアライズ可能なプロパティだけ) AssetDatabase.CreateAssetで保存 Resources.LoadやAssetDatabase.LoadAssetAtPathでロード
NavMesh上の経路探索アルゴリズムとしてはA*が代表的。 A*アルゴリズムのちゃんとした説明は日本語でも沢山あるので、気持ちの面だけ書き綴る。 まずはDijkstra法の話をして、その改良という形でA*の話をする。
CEDEC2017のFFXVセッションで紹介されていたhuman-like(HL)衝突回避アルゴリズムについて。 cf. CEDiL (資料は要ログイン)
ナビゲーションを行う場合、マップを表現するグラフ(NavMeshなど)のトポロジー的な構造を頻繁に参照することになる。頂点に接している辺を得る、辺に接している面を得る、など。 頂点配列とそのインデックスの配列といった単純な形でグラフを格納するとこ…
ステアリング(steering)という概念が説明される機会が少ない気がするので手短に。
衝突回避のアルゴリズムの一つである RVO (Reciprocal Velocity Obstacles) について、日本語の資料が見当たらないので書いておく。 元論文:http://gamma.cs.unc.edu/RVO/icra2008.pdf