AiCoverSystemがやってきた。UnrealEngine

障害物に隠れて、タイミングを見計らい攻撃してくる。敵Aiの基本とも言えるAiの動作を実装してくれるプラグイン型のアセットとして、AiCoverSystemというものがあります。

AI Cover System:コードプラグイン - UE マーケットプレイス
A code plugin framework to implement cover mechanics for an AI. Fully procedural and dynamic - set up it only once, and it works everywhere.

今回はアセットの使い方を中心にAiCoverSystemを見ていきましょう。

まずは動かそう

デモプロジェクト

公式ページにデモシーンを含んだプロジェクトが無料で配布されています。エンジンにAiCoverSystemをインストールした後でプロジェクトを開き、プラグインAiCoverSystemを有効化して再起動します。

デモレベルを実行すると複数体いるキャラクターが隠れたり現れたりして攻撃をしてくるAi行動をみることができます。まずはデモプロジェクトで動くことを確認しましょう。

 

自分のプロジェクトで動かしたい

でもプロジェクトで動作することが分かったら自分の制作中のプロジェクトで動かしたくなるでしょう。ただしプラグイン単体ではAiのビヘイビアーツリーのデータが含まれていないので、デモプロジェクトから移行するか、自分でプラグインを使用してビヘイビアーツリーを作成する必要があります。

1からビヘイビアーツリーを作るのは初心者には敷居が高いので、今回はデモプロジェクトを自分のプロジェクトへ移植する方法を紹介します。

移植(移行)方法

  1. デモプロジェクトのContentの中身を新規フォルダAiCoverSystemなどに移動させます。
  2. コンテントドローワーからAiCoverSystemを選択して → 右クリック → 移行 を選択
  3. __ExternalActors__と__ExternalObjects__フォルダが表示されて、AiCoverSystemという名前の内容物がありますが、Game→自分で作成したAiCoverSystemのフォルダだけを選択して自分のプロジェクトへ移行させましょう。
  4. 移行が終了したら自分のプロジェクトのContent内にAiCoverSystemという名前のフォルダが存在して各種デモプロジェクトのデータが存在しているはずです。

 

使い方

まずはデモプロジェクトの動きが自分のプロジェクトでも動くか確認。
自分のプロジェクトのレベルを開き、アクターにAllClassesからCoverSystemをレベルに追加しましょう。これがないとAiCoverSystemを管理するものがなく動作してくれません。(あと基本的なこととしてナビメッシュの設定もしておきましょう。[詳しいことは割愛])

続いてAiCoverSystemで動かしたい敵やキャラクターをレベルに配置して、AiControllerをAiCoverSystemのものに変更して、AiCoverSystemのビヘイビアーツリーが起動するようにしておきましょう。(キャラクターブループリントの詳細ウインドウ → ポーン → AiControllerを指定するところがあるので、AiCoverSystemのビヘイビアーが起動できるAiControllerをセットしておきましょう。)

実際にプレイしてみて、キャラクターがもの影に隠れたりウロウロしたりすると動作は成功です。

障害物配置の注意点(カバーシステムが生成されない場合)

配置した障害物がピッタリ床の上に配置されている場合、AiCoverSystemが生成されないことがあります。デフォルトでオブジェクトを配置した場合若干床に数センチ埋まるように配置されます。そのような地面に少し接触している状態ではAiCoverSystemが生成されるようです。

この仕様に気が付かずに新しくレベルを作ったときに1時間ぐらい苦戦しました。
もしAiCoverSystemが生成されない場合は、少し地面に埋めてみたり、別の新しいオブジェクトを配置してみたりして試してみましょう。

 

 

自分用にカスタマイズ

  1. 自分で作成したビヘイビアーツリーにAiCoverSystemのビヘイビアーツリーを移植する
  2. AiCoverSystemのビヘイビアーツリーに自分で追加作成したい機能をビヘイビアーツリーに追加する

AiCoverSystemのビヘイビアーを使用するには上記の2つのパターンが存在すると思いますが、実際に作業してみると2番のAiCoverSystemのビヘイビアーに自分のビヘイビアー機能を追加するのが楽でした。変更前と後で違いがわかるように念のためビヘイビアーファイルを複製したものを使用して自分の機能を追加していきました。

 

 



 

 

行動特性を調整したい

実際に自分のプロジェクトで動作させてみて、以下のことを感じました。
ちなみに水鉄砲で撃ち合う平和でピースフルなTPS銃撃バトルゲームを作っています。
その中で感じたAiの行動特性の調整したい項目を考えていきます。

平和でピースフルな水鉄砲バトルゲームを製作中。基礎的な骨格ができたので進捗報告です。素人ひとりゲーム制作。Unreal Engine5.3
  1. 攻撃の頻度をもっと増やして欲しい。
  2. リロードの時間を短くしたい。
  3. 水の補給に向かう時はダッシュして欲しい。
  4. 移動している間はAimをOFFにする
  5. 攻撃に転じるときにAimをONにする
  6. 移動→クランチ→攻撃の流れで敵が近くにいる場合は素早く移動と攻撃を実行して欲しい。

6つ感じたことを書き出しましたが、全てビヘイビアーツリー側の処理を調整する必要がありそうです。AiCoverSystemのパラメータ調整をする必要があるのかと思って、ブログ記事にしましたが、パラメータ調整は必要なさそうでした。

 

移動ポイントのGenerationを調整する

かなりマニアック向けですが、デフォルトの移動ポイントの生成で満足できない人は、レベル上に配置したCoverSystemの詳細ウインドウで、移動ポイントの生成するパラメータを調整できます。


またここのデバッグの部分で生成されたポイントを画面上に表示するかを設定できるようです。
公式の説明書↓
https://drive.google.com/file/d/18rnX0NZcjV4uOIDJEqjlALeke5q9ePXH/view

ビルドパラメータの意味を解読(できたらしたい)

Segment Length
Trace Length
Trace Step Distance
Sweep Trace Radius
Min Space Between Valid Poi
Agent Max Width
Agent Max Height Crouch
Agent Max Heigth Standing
Offset when Leaning Sides
Offset Front Aim
Octree Extent

Tcace Channel

 

 

パラメータを変更しながら変化を観測

できれば動画に撮影して投稿してここに貼り付ける予定にしたいです。

 

 

 

 

 

APIはどこで使えるか?

また、ブループリントで使用できるAPIも整えられていて、説明書やデモプロジェクトにどんなAPIがあるのかを紹介するところがありました。また使いこなせたら追加でどんなふうに使えるか、追記したいと思います。

 

 



 

 

最安じゃなかったけど購入した。

最後に余談として購入したときの話を。てっきりブラックフライデーで70%OFFになってくれると思っていたAiCoverSystemですが、実際は30%OFFの控え目セールでした。ブラックフライデー以前に50%OFFをしていたところを何度か目撃しているので、どうやら最安は50%OFFの様です。

しかし1ドル=149.46円の今回でも、50%OFFと30%OFFでは867円の差しかなく、ブラックフライデーが終わった後に更に50%OFFになるのを待つことを考えると、2週間から1ヶ月待つことになり、それだけの時間作業が進まないのなら、多少割高でも先に購入して作業を進めるほうが867円の差しかないのなら早めに購入した方がお得だと考え、最安ではありませんが購入しました

特に、AiCoverSystemを中心に全ての作業が紐づいて動き出す、ゲームの根幹となるアセットだったので、867円を惜しまず少し高いかったですが買いました。作った人にもお金が入って経済も回るしまあええか?くらいの感じでしょうか?

みなさんも最安を狙うのも良いですが、作業の流れと時間単価を考えて、タイミングが来たら細かい値段差は気にせず買うのが良いかもしれませんね。

 

 

 

 

 

コメント

タイトルとURLをコピーしました