hasht's notes

ゲームAIやUnityの話題

ゲームAIとしてのHTN

GOAPの他にゲームAIでプランニングというと、HTN(Hierarchical Task Network、階層型タスクネットワーク)も「KILLZONE 2」を始めとするいくつかのタイトルで採用されているらしい。(ただこれはやや簡略化されているという話)

メモ:CEDEC2019のAI関連セッション

[2019/07/11 セッション一覧の更新を反映] cedec.cesa.or.jp キャラクターAIからPCG、MLやテスト自動化までとりあえず入れておく。

GOAP(ゴール指向プランニング)

先に紹介したAI PlannerのようなシステムはゲームAIの分野だとGOAP(ゴール指向プランニング、Goal-Oriented Action Planning)と呼ばれるが、起源は「F.E.A.R.」にあるようだ。 元々人工知能分野でプランニング問題(ロボットアームで積み木を指定された並…

UnityのAI Planner

UnityがGDC2019でAI Plannerについて発表していた。 schedule.gdconf.com 今のところ(バージョン0.0.1)は正直GUIの挙動が怪しくてよく分からないが、プランニングシステムとして汎用的で良くできいそうなので、その設計についてメモ。 Unity 2018からのEnt…

ml-agentsのRollerBallを学習させる

ML

Unityにはml-agentsという、UnityプロジェクトをMLの学習環境に使えるようにするツールがある。 github.com こいつのドキュメントには「学習環境を作ってみよう!」という一見フレンドリーな項があるのだがこれが曲者で、デフォルト設定(config/trainer_con…

Unity公式のFPSゲームサンプル

先日Unity TechnologiesがFPSゲームのサンプルプロジェクトを公開した。 blogs.unity3d.com

「ゲームAI用語辞典」が誕生した

電ファミニコゲーマーが三宅陽一郎氏(日本で最もゲームAI技術・コミュニティの発展に尽力している人)監修でゲームAI専門のwikiを開設したとのこと。 wiki.denfaminicogamer.jp

自動QA・バランス調整の事例

(2018/10/10 リンクミスを修正) CEDEC2018の「次世代QAとAI ~ゲーム開発におけるAI活用に正しく向き合うために~」(詳細、動画)で良い資料(↓のpdfのp.34)が出ていたので、一部補足して載せておく。 cedil.cesa.or.jp

UnityのScriptableObjectでキャラクターのAIを組む

ScriptableObjectとは インスタンスがアセットとして扱えるクラス。 継承して使う インスタンスがアセットとして保存できる(シリアライズ可能なプロパティだけ) AssetDatabase.CreateAssetで保存 Resources.LoadやAssetDatabase.LoadAssetAtPathでロード

A*の気持ち

NavMesh上の経路探索アルゴリズムとしてはA*が代表的。 A*アルゴリズムのちゃんとした説明は日本語でも沢山あるので、気持ちの面だけ書き綴る。 まずはDijkstra法の話をして、その改良という形でA*の話をする。

Human-like衝突回避アルゴリズム

CEDEC2017のFFXVセッションで紹介されていたhuman-like(HL)衝突回避アルゴリズムについて。 cf. CEDiL (資料は要ログイン)

ハーフエッジデータ構造

ナビゲーションを行う場合、マップを表現するグラフ(NavMeshなど)のトポロジー的な構造を頻繁に参照することになる。頂点に接している辺を得る、辺に接している面を得る、など。 頂点配列とそのインデックスの配列といった単純な形でグラフを格納するとこ…

キャラクターの移動制御におけるステアリング

ステアリング(steering)という概念が説明される機会が少ない気がするので手短に。

RVOによる衝突回避アルゴリズム

衝突回避のアルゴリズムの一つである RVO (Reciprocal Velocity Obstacles) について、日本語の資料が見当たらないので書いておく。 元論文:http://gamma.cs.unc.edu/RVO/icra2008.pdf