さて、最近はUEでゲームを作るぞ!と連呼してる私ですが、ズボラな性質なので、手を動かすより先にマーケットプレイスで色んなアセットを物色(サーベイ)したりしてます。

今調べてるのはAI関係のアセットです。
UE4でAIというと、NPC全般の挙動を指します。例えば、プレイヤーキャラに付いてくる仲間キャラ、村に住んでいる村人、そして敵キャラなどです。

というわけで、今回の記事ではマーケットプレイスで見つけたAI関係のアセットについてざっくりと紹介していきます。

UEに用意されているAI機能

まずそもそも論として、UEには標準でAI機能が用意されてます。

https://docs.unrealengine.com/4.27/ja/InteractiveExperiences/ArtificialIntelligence/

UEではAIを実装するのにビヘイビアツリーを使います。
ビヘイビアツリーでは「もし○○だったら△△する」みたいな条件分岐のツリーを作成出来て、NPCキャラはビヘイビアツリーに沿って行動します。

例えば、警備員のAIを実装するとしたら、普段は決められたルートを巡回してますが、敵(プレイヤーキャラ)を発見したら追跡して攻撃する。みたいなロジックを作れるでしょう。

FF12でガンビットを使いこなせるような人ならビヘイビアツリーも使いこなせるでしょう。

UEのAIが使える3つの機能についても紹介します。

ナビゲーションシステム

これはUnityユーザーにもおなじみのナビメッシュのヤツです。
事前に生成しておいたナビメッシュに沿ってNPCを移動できます。例えば迷路に沿ってNPCが移動して出口まで向かうといった事も可能です。
動かないマップに対してはナビメッシュで対処できますが、動き回る障害物や歩き回ってる他のNPCはどうやって回避するの?というと、対障害物相対速度(RVO)やDetour群衆マネージャ機能で実現できるそうです。
また、Navigation Invokerを使えばランタイムでナビメッシュを生成する事も可能です。
さらに、NavLink機能を使えばナビメッシュが繋がってない所でも手動でリンクできます。例えばNPCが高所からジャンプして下に降りるといった事が実現できます。

Environment Query System(EQS:環境クエリシステム)

NPCが環境に対してクエリできるシステムです。
何のこっちゃ?というと、例えばNPCが「おなかが空いたなあ」と思った時に、神様(ゲームシステム)に対して、「一番近くに存在する食べ物の場所を教えてください!」とお願い(クエリ)すると、その場所を教えてもらえるのでそこに移動できる。といった事が実現できます。
ちなみに2015年くらいからある機能ですが、未だに実験的機能のままです。

[UE4] EQSで群れを動かす

UE4のEQS(Environment Query System)が楽しい

AI Perception

NPCに聴覚や痛覚、視覚、触覚をもたせる事ができる機能です。
つまり、「何かが聞こえるぞ」とか「何かが見えたぞ」「何かに攻撃されたぞ」「何かにどつかれたぞ」といった時にトリガーが発行されて、それに対する反応を実装できます。

とまあ、このようにUEには元々便利なAI機能が実装されており、柔軟にAIを実装できる事が分かります。

「じゃあ何でマケプレには色んなAIアセットがあるんだろう?」という話ですが、UEのAI機能には問題があるっちゃあるからです。

まず、箱から出してすぐ使えるような敵AIとか味方AIが用意されてないっぽいので、自分でビヘイビアツリーの使い方を勉強してAIを実装する必要があります。
それがまあ面倒という話があります。

他にも、例えば味方のNPCに梯子の上まで付いてきて欲しい時に、どうやってNPCに梯子を上らせるのか?みたいなシチュエーションは標準機能だけでは解決できません。
どうするべきかググったら、梯子の下と上をNavLinkで繋げて、梯子の下までNPCが来たら、一旦ナビメッシュでの移動を止めて自力のロジックで梯子を上らせて…みたいな、まあ色々工夫すればできるという話ですがやっぱり面倒です。

How would you add ladders to navmesh based movement?

というわけで、マケプレのAIアセットに期待するのは、標準機能よりサクッと簡単に、かつ色んなシチュエーションに対処できるNPCが作れる機能という事になるでしょう。

鉄板のAIアセット「AI Behavior Toolkit」

https://www.unrealengine.com/marketplace/ja/product/ai-behavior-toolkit

マケプレには色んなAIアセットがありますが、やっぱり鉄板に見えるのはこのAI Behaviour Toolkitです。
評価数180で価格は100ドルです。

まず、箱から出してすぐ動作する市民NPCや味方NPC、敵NPCの例が色々用意されてます。
RPG的なNPC以外にも、シューターゲームの敵AIの例もあります。

他にも、飛行するAIの例や、NPC同士が会話、交流したり日常生活を送る例、パルクールの例ではNPCが障害物をジャンプしたり、登ったり、しゃがんだりして突破します。
ゾンビAIや水中を泳ぐ魚AIの例まであります。

先ほど問題になった、どうやってNPCに梯子を上らせるか?という話も、このアセットでは梯子を上る機能が用意されてます。

という訳で、このアセットを使うとUE標準よりもサクッと簡単に、かつ色んなシチュエーションに対応できるNPCが作れそうです。

他にも、マルチプレイヤーゲームもサポートされてます。

ALS(Advanced Locomotion System)の組み込み方についてのチュートリアル動画もあります↓

という訳で、NPCが作りたいならまずはこのアセットを試してみて、足りなければ標準機能や他のAIアセットにも手を出してみる…という流れが良いのではないでしょうか。

「GOAP NPC」

https://www.unrealengine.com/marketplace/ja/product/goap-npc-goal-oriented-action-planning-for-non-player-characters/questions

これはビヘイビアツリーとは違ったGOAPという方法でNPCのAIを実装できます。
評価数は35で価格はなんと無料です。

GOAP(Goal Oriented Action Planning:目標志向アクションプランニング)とは何か?というと、目標を与えると、その目標を達成するために、AIが知っている手段を組み合わせて計画を立てて行動してくれるみたいなヤツです。

例えば、おなかが空いたAIは、お腹を満たそう!という目標を立てます。
お腹を満たすためには何かを食べる必要があるので、じゃあプリンを食べよう!という行動を決めたとします。
しかし手元にプリンが無いので、プリンを手に入れる必要があります。プリンを手に入れるには買うとか作るとかしないといけません。じゃあプリンを作ろう!
プリンを作るにはレシピが分からないといけないので、レシピを調べよう!
レシピが分かったら材料を集めよう!

みたいな感じで、目標から逆算して行動計画を立てて実行してくれるものだそうです。

ビヘイビアツリーは複雑すぎるしメンテが大変だから、GOAPの方がいいよ!という話だそうです。
GOAPが実際のゲームで使われてる有名な例としては、例えばF.E.A.Rで使われてるそうです。

キャラクターAIを成長させるためのGOAP意思決定システム

「UtilityAI with Replicated Weapon, Stat, and Status Effect Systems(武器、ステータス、エフェクトの各システムを再現したUtilityAI)」

https://www.unrealengine.com/marketplace/ja/product/utilityai-with-replicated-weapon-stat-and-status-effect-systems

これまたビヘイビアツリーとは異なるユーティリティAIという方法でAIを実装しています。
評価数は29で、これまた価格は無料というかオープンソースソフトウェアです。

ユーティリティAIでは、NPCは自分が一番満足度が高くなるような行動を取ります。
例えば、NPCに20万円あげるとします。服が好きなNPCは、20万円もらったら服を買うのに使うでしょうし、パソコンが好きなNPCはパソコンを買うのに使うでしょう。

なんかそんな感じでそれぞれのNPCに個性を持った行動を取らせる事が可能らしいです。

【UE4】Utility Based AI(プロジェクト付)

「Vis AI」

https://www.unrealengine.com/marketplace/ja/product/visai-companion-an-ai-framework

これは高度なAIが作れるアセットだそうです。
これまた最近永久無料化しました。評価数は21です。

このアセットが何がどうすごいのか、最初はサーパリ分かりませんでしたが、ドキュメントによると、これまでに挙げたビヘイビアツリーとGOAP、それからユーティリティAIを全て組み合わせて使えるから高度で柔軟なAIが作れるんだと、まあ要するにそういう話みたいです。

そういう感じで凄いらしいVisAIですが、あんまり使われてないみたいなので出回ってる情報が少ないです。

あと、無料とは言え、仲間NPCを作りたい時は「Vis AI -Companion-」という130ドルの別バージョンのアセットも必要になります。

しかももうすぐVer2.0が出るらしく、この無料アセットは2.0にはアプグレできないから2.0を買わないとメンテがされなくなる気がします。

他の目ぼしいAIアセット

DoN’s 3D Pathfinding for Flying AI
評価数:108 無料

キャラクターを指定した目的地に向かって移動させる事ができます。障害物などを適切に回避して移動経路を見つけてくれます。ナビメッシュでは地面に沿った経路探索を行いますが、このアセットでは3次元に対応してるので、空を飛ぶロボットなどでも実行できます。障害物が動的に移動する場合でも対応できます。

Smart AI
評価数:93 40ドル

AI Behavior Toolkitに次ぐ人気のAIアセットです。価格もお手頃。
近接戦闘、遠距離戦闘に対応していて、カバーアクションもしてくれます。高所からジャンプ、谷間をジャンプで飛び越える、壁をよじ登るみたいな機能も一応あります。砲台AIや動物AIもあります。スポナーもあります。マルチプレイヤー対応。

Universal Monster
評価数:24 120ドル

敵モンスターのAIに特化したアセットです。敵にフォーメーションを組ませたりできます。

Easy Survival RPG v3
評価数:244 300ドル

これはAIアセットでも何でもないですが、こういうゲームテンプレート系のアセットには割と敵などのNPCも用意されていますので例として挙げてみました。

NPC Manager System
評価数:19 100ドル

町の住民的なNPCを作れます。それぞれのNPCにタスクを設定できます。タスクでは特定の場所に行くとか、特定のルートを歩き回るとか設定できます。NPC同士を会話させる事も出来ます。プレイヤーとも会話できます。

Daily Life AI(日常生活AI)
評価数:14 20ドル

人間みたいに生活するAIを作れます。NPCは仕事をしたり、ヒマな時は椅子に座ったり壁にもたれたり、他のNPCとぷらぷらします。夜はベッドに行って寝ます。空腹になると食べ物を探します。

Animal Behavior Kit Pro(動物行動学キットPro)
評価数:47 100ドル

動物の生態系AIが作れます。動物は歩き回って食べ物や水を探したり、攻撃したり、仲間を探したり、夜は家に帰って寝ます。動物はグループを形成します。プレイヤーが動物を飼いならす仕組みもあります。動物は飢えや老衰で死にます。動物が死ぬとリスポーンします。

Ecosystem AI
評価数:12 20ドル

動物の生態系AIが作れます。それぞれの動物は水を探して飲んだり、食べ物を探して食べたり、狩りをしたり天敵から逃げたり、睡眠したり、繁殖したりします。

Chicken AI
評価数:2 10ドル

ニワトリの生活をシミュレートするAIです。ニワトリは食べる、飲む、休憩、卵を産む、逃げる、探索といった行動を行います。

Companion AI
評価数:5 30ドル

簡単に仲間AIを作れるアセット。AIの機能には、付いてくる、待機、攻撃、モノを取ってくる、があります。

NPC最適化系アセット

Open World AI Spawn System
評価数:74(一カ月間無料化) 15ドル

遠くのNPCを自動的に削除したり、近くに来たらリスポンする事で負荷を最適化してくれるアセットです。
20ドルのマルチプレイヤー対応版もあります。

World Director NPC – PRO. Now with multiplayer.(ワールドディレクターNPC – PRO. 今度はマルチプレイヤーで。)
評価数:19 140ドル

オープンワールドゲームなどで大量のNPCを出した時にFPSが下がらないように最適化してくれます。遠くのNPCはビヘイビアツリーが停止して歩くだけになったりする事で負荷を減らします。
100ドルの通常版や、40ドルのWorld Director Actorというバージョンもあります。

Population Control PRO – Populate your world.(人口管理 PRO – あなたの世界に人口を投入します)
評価数:16 100ドル

NPCのスポーンを管理できます。NPCが死んだらリスポーンしてくれます。このアセットはWorld Directorアセットとの連携が念頭に置かれています。
30ドルのライト版もあります。

Open World NPC Optimization with network support(オープンワールドNPCの最適化(ネットワーク対応))
評価数:15 40ドル

画面に映ってないNPCをカリングする事で最適化して負荷を減らすアセットです。

AI Optimizer
評価数:8 30ドル

遠くのNPCを非表示にする事で負荷を削減します。こういうのを普通に実装すると、大量のスポーンで処理落ちしがちなのですが、このアセットでは1フレームでのスポーン数を制限してちょっとずつ小分けでスポーンする事で負荷を抑えてるらしいです。

NPC Optimizator
評価数:4 35ドル

遠くのNPCの影を非表示にしたり、アニメーションやTickの頻度を下げたりして最適化してくれるアセットです。

AI付き単発生物系アセット

AI付きの生き物の3Dモデル系のアセットです。

AI Dinosaurs Pack
評価数:2 15ドル

歩き回る、狩り、つがいになるなどの基本的な振る舞いを備えた4種類の恐竜パックです。

Medhue Raccoon
評価数:1 20ドル

基本的な振る舞いが実装されたアライグマです。作者のMedhueさんはこれと同じようなノリで他にもチャウチャウ、フェネック、オウム、シロクマ、リャマ、コブラ、ラクダ、パイソン、アナコンダ、エイ、コウモリ、オオカミ、カラス、ペンギン、豚、イノシシ、リス、シャケ、クマ、ゴキブリ、ハエ、クモ、トンボ、ダチョウのアセットを出してます。

Fish
評価数:10 50ドル

サケとブルーギルとマグロのセットです。
作者のLiving Systemsさんは、これと同じようなノリで馬、鳥、小動物(ウサギ、リス、ネズミ)、イノシシ、アヒル、豚、オオカミのアセットも出してます。

Stoopid Zombies
評価数:32 13ドル

プロトタイピング用のシンプルなゾンビAIです。
ゾンビに襲われて死んだ人がゾンビになるサンプルとかもあります。

その他AIアセット

その他のAIアセット類です。せっかくなので網羅的にするためにあまりよく分かってないアセットも諸々掲載してみます。説明の文章は概要欄の文章を機械翻訳しました。

Enemy AI Constructor
評価数:24 40ドル

Enemy AI Constructorは、一人用ゲームの敵を作成することができる、高度にカスタマイズ可能なブループリントシステムです。

ProAI
評価数:18 45ドル

ProAIは、AIキャラクターと強力なスポーン・マネージャー・システムをベースにしています。一つのAIをマップに配置したり、強力なスポーンマネージャーを使用してAIのスポーンをコントロールすることができます。ProAIは非常に柔軟性があり、開発時間を大幅に短縮することができます。

Shooter Simplified AI
評価数:16 9ドル

簡単な統合でプロジェクトに貢献する簡易型シューターAI

Floating AI Movement(フローティングAIムーブメント)
評価数:14 20ドル

障害物回避、ダイナミックリパッシング、スプライン追従が可能なユニバーサルフローティングAI。(パス移動ができるようになりました!)

Advanced Insects System
評価数:11 50ドル

各種甲虫、ゴキブリ、アリ、クモの刺激に適したシステムです。

AI Enemies – Assault Soldier
評価数:9 45ドル

一般的なアサルトソルジャーの挙動を持つキャラクターNPC。ゲーム準備

Survival Combat and AI
評価数:8 25ドル

シンプルな戦闘とAIによるサバイバルゲーム。

Artificial Intelligence: Q-Learning(人工知能:Q-ラーニング)
評価数:8 9ドル

NPCやその他の自律型エージェントに、強化学習(人間やその他の動物の学習方法を模倣した、意思決定へのアルゴリズム的アプローチ)によって新しい行動を獲得する能力を与える。

AI Patrol & Action System
評価数:8 100ドル

AIパトロール&アクションシステムは、ゲームキャラクターの様々な行動やパトロールシステム、また多くの設定による様々なフォーメーションによる集団移動などを作成できる、非常に強力で柔軟なツールです。あなたのゲームをライブにしよう

Traffic AI System
評価数:8 50ドル

あなたのプロジェクトで交通に必要なものがすべて揃っています。信号機と8台の車両がすべて含まれています。

Action AI System feat. Stealth
評価数:8 20ドル

ステルス機能を備えたアクションゲームのAIシステムを簡単に実装できる

Mob Simplified AI
評価数:7 9ドル

簡単に統合できるプロジェクトのための簡素化されたAI

Easy Car AI
評価数:7 70ドル

このアセットパックを使えば、どんな車ベースのゲームでも簡単に開発することができます。ナブメッシュとスプラインに対応!

AI Shooting
評価数:7 10ドル

シューティングゲームのAI。射撃、カバーシーク、側面攻撃、パトロール、ランダムな性格(勇気、狙撃、カバー射撃など)などの動作を含む。

AI Melee
評価数:7 10ドル

AI Meleeシステムは、統合されたブループリントを使用して100%簡素化されました。

AI Spawn System
評価数:6 20ドル

AIスポーンシステム 4.18+

Advanced Flock System
評価数:5 50ドル

魚は、任意の複雑な衝突と任意のプリミティブオブジェクトに反応し、任意のポーンまたは文字に反応します。このプラグインはマルチスレッドに対応しています。

Advanced Fly Insects System
評価数:5 50ドル

昆虫は、任意のプリミティブなオブジェクトに複雑な衝突を起こし、任意のポーンやキャラクターに反応します。そして、アイドルポイントを見つけます。

Diverse AI(多様なAI)
評価数:5 35ドル

様々なコンテキストで飛行および歩行AIをサポートするAIフレームワーク、インスタンス編集可能な多数の変数を持つ完全にカスタマイズ可能なドラッグアンドドロップ/スポーンBP、クイックチェンジAIベースビヘイビア

Physical Boids – A Physics Based Flocking AI
評価数:5 14ドル

Physical Boids は、各ボイドが Unreal の物理エンジンに付着する群れ AI です。使いやすく、鳥や魚などの群れ型エージェントのシミュレーションに最適です。

Nav Mesh Vehicle AI
評価数:4 6ドル

エンジンのデフォルトナビゲーションシステムを使用した、シンプルで堅牢な車両AIの処理方法です。プレイヤーがコントロールする車両と同じ移動コードを使用して、任意の車両ポーンで直接動作します。マルチプレイヤーに対応。

General AI Framework
評価数:4 12ドル

General AI Frameworkは、UEゲーム用のAIを設計するための基本的なフレームワークです。このフレームワークは、異なるプロジェクトに簡単に適用することができ、同じフレームワークの下で異なるAIコントローラを作成することができます。

AI Pro Spawner
評価数:3 5ドル

これはシンプルで簡単なAIスポナーで、いくつかのオプション(ウェーブシステム、AIスポーン、AIリスポン、ゲーム内のAIの制限…)があります。

Advanced AI Spawn System
評価数:3 30ドル

アドバンスドAIスポーンシステム 4.18+

Artificial Intelligence: Emotions(人工知能:感情)
評価数:2 12ドル

人間や動物の感情を忠実に表現することで、NPCに生き生きとした行動や表情を与えることができます。

Squad & Team Combat AI(スクワッド&チーム戦闘AI)
評価数:2 10ドル

行動ツリーを使用しない、分隊やチームの戦闘AIソリューションです。AIはワールドジオメトリの中で自動的にカバーを見つけ、分隊長からどのターゲットと戦うかなどの命令を受け取ります。

Phase Ai
評価数:2 65ドル

使いやすいAiシステム、豊富な機能。近接戦闘に重点を置いていますが、あらゆる用途に使用できます。

AI Tools
評価数:2 100ドル

オープンワールドのシングルプレイヤー・ゲームにおいて、生活世界のシミュレーションを作成するためのAIツール。

Companion Components
評価数:2 20ドル

NPCコンパニオンとの交流を深めるためのBPセットです。

AI Optimization System
評価数:2 5ドル

オープンワールドとクローズドワールドで、スポーンボットを素早く設定し、負荷を軽減できるシンプルなシステムです。

Simple AI – Boid Flock Movement
評価数:2 20ドル

鳥/魚/ECTの群れ移動のためのシンプルな2次元AIシステム

Aircraft war game with AI
評価数:2 40ドル

AIによるシミュレーション飛行・航空機戦争ゲーム

Simple AI Combat Component(シンプルなAI戦闘コンポーネント)
評価数:1 5ドル

キャラクターとAIのためのモジュラーコンバットコンポーネント。

BASIC ENEMY AI
評価数:1 15ドル

BASIC ENEMY AI」パッケージには、さまざまな能力や振る舞いを持つAIが含まれています。このパックはマルチプレイヤー用に作られておらず、100%ブループリントであることに留意してください。

Stoopid Turrets
評価数:0 15ドル

プラグアンドプレイAIタレット、何も考えず、ただ撃つだけ 🙂

AI Turret Component(AIタレットコンポーネント)
評価数:0 20ドル

このコンポーネントにより、多くのタレットを素早く簡単に設置することができます。また、マルチプレイで動作させることも可能です。

Easy AI Toolkit
評価数:0 50ドル

Easy AI builder Toolkitは、プリセットやサンプルだけでなく、AIの作成プロセスを簡略化するための複雑なシステムを含んでいます。

Advanced AI Perception(高度なAI知覚)
評価数:0 15ドル

AdvancedAIPerceptionコンポーネントには、フィルタやレーティングを使用してターゲットを選択できるロジックが含まれています。