AI Perception

AI Perception コンポーネントと、それを使用して AI に対する認識を生成する方法を説明するドキュメントです。

Windows
MacOS
Linux

AI に対して感覚データを提供する AI フレームワークには、実行するロジックを決定できる Behavior Trees や、環境に関する情報の取得が可能な Environmental Query System (EQS) がありますが、これらに加えて AI Perception システム と呼ばれるツールも使用できます。このシステムを使用すると、AI が何かによってダメージを受けた場合、または AI が何かを見た場合などに、ポーンが、ノイズが発生している場所など環境からデータを受信することができます。これは、反応リスナーとして機能し、登録された刺激元を収集する AI Perception コンポーネント によって実現できます。

刺激元が登録されると、 「On Perception Updated」 イベント (またはターゲット選択で 「On Target Perception Updated」 イベント) が呼び出され、このイベントを使用して新しいブループリント スクリプトを起動したり、Behavior Tree のブランチの検証に使用する変数を更新したりできます。

AI Perception コンポーネント

AI Perception コンポーネント[Components] ウィンドウからポーンのブループリントに追加可能なコンポーネントの一種です。このコンポーネントは、「リッスン対象の感覚」、「それら感覚に使用するパラメータ」、「感覚検出時の反応方法」を定義する際に使用します。また、いくつかの異なる関数を使用して、「何が感知されたのか」、「どのアクタが感知されたのか」について情報を取得したり、特定の種類の感覚を無効または有効にすることもできます。

AI Perception コンポーネント を追加するには、ブループリントの [+ (コンポーネントを追加)] ボタンをクリックして [AIPerception] を選択します。

AddingPerceptionComponent.png

AI Perception コンポーネント が追加されたら、[Details (詳細)] パネル内でそのプロパティにアクセスできます。

AI Perception プロパティ

AI Perception コンポーネント の [Details (詳細)] パネルで利用可能な共通のプロパティに加えて、知覚する 感覚 のタイプを [AI Perception] および [Senses Config] セクションで追加することができます。 感覚 の種類に応じて、様々なプロパティが利用可能です。それにより、 感覚 がどのように知覚されるかを調整することができます。

AddingSenses.png

Dominant Sense プロパティを使用すると、検知されたアクタの位置を決定するときに他の感覚よりも優先度が高い 感覚 の割り当てが可能です。これは、 [Senses Config] セクションで設定したいずれかの感覚に設定するか、 「None」 に設定します。

AI Damage

AI を Event Any DamageEvent Point DamageEvent Radial Damage などのダメージ イベントに反応させたい場合は、 [AI Damage Sense Config] を使用します。 Implementation プロパティ (デフォルトはエンジン クラス AISense_Damage となっています) を使用してダメージ イベントの処理方法を決定できますが、C++ コードを使用して独自のダメージ クラスも作成できます。

Perception_Damage.png

プロパティ

説明

Implementation

これらのエントリに使用する AI 感覚クラス (デフォルトは AISense_Damage)。

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

AI Hearing

AI Hearing 感覚は、 Report Noise Event によって生成された音の検出に使用します。Report Noise Event は、例えば、放射物が何かに当たった時に AI Hearing 感覚に登録できる音を生成します。

Perception_Hearing.png

プロパティ

説明

Implementation

このエントリに使用する AI 感覚クラス (デフォルトは AISense_Hearing) 。

Hearing Range

AI Perception システムがこの感覚を知覚できる距離です。

Lo SHearing Range

これは、 Hearing Range のデバッガで異なる半径を表示するために使用します。

Detection by Affiliation

中立、 **味方**がこの感覚をトリガーできるかどうかを決定します。

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色です。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

AI Prediction

これは、PredictedActor の予測位置を PredictionTime の秒数で Perception システムから要求します。

Perception_Prediction.png

プロパティ

説明

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

AI Sight

[AI Sight] の設定では、パラメータを定義することができます。それにより、AI キャラクターがレベルでオブジェクトを「視認」することができるようになります。アクタが Sight Radius に入ると、AI Perception システムは更新を知らせ、見たアクタを認識します (例えば、プレイヤーが Sight Radius に入ると、視覚を持つ AI はそのプレイヤーを認識します) 。

Perception_Sight.png

プロパティ

説明

Implementation

このエントリに使用する AI 感覚クラス (デフォルトは AISense_Sight です) 。

Sight Radius

この感覚が知覚し始めることができる最大の距離です。

Lose Sight Radius

ターゲットが視覚で認識されなくなる最大距離です。

Peripheral Vision Half Angle Degrees

AI がどの程度遠くまで見えるのかを示します。値は、範囲全体ではなく、前方ベクトルに対して測定された角度を表します。

実行時に値を変更するには、ブループリントで SetPeripheralVisionAngle を使用します。

Detection by Affiliation

中立味方 がこの感覚をトリガーできるかどうかを決定します。

このプロパティは、チーム用の視界を設定するために使用できます。現在、 Affiliation は C++ でのみ定義できます。ブループリントの場合、 [Detect Neutrals] オプションを使用してすべてのアクタを検出してから、 タグ を使用して アクタ タイプを除外することができます。

Auto Success Range from Last Seen Location

ゼロより大きい場合、AI は、ここで指定した範囲内にある限り、すでに視覚したことのあるターゲットを常に認識することができます。

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

AI Team

これは、同じチームの誰かが近くにいることを Perception コンポーネントの所有者に通知します (半径は、イベントを送信するゲームプレイコードによって送信されます)。

Perception_Team.png

プロパティ

説明

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

AI Touch

AI Touch を設定すると、AI が何かにぶつかったとき、または何かが AI にぶつかったときを検出することができます。例えば、ステルス ベースのゲームでは、プレイヤーを敵の AI に触れさせずに後をつけさせたい場合があります。この感覚を使用すると、プレイヤーがいつ AI に触れるかを決定し、さまざまなロジックで応答することができます。

Perception_Touch.png

プロパティ

説明

Debug Color

AI デバッグ ツールを使用しているとき、デバッグ ラインを描画する色。

Max Age

この感覚によって生成された刺激が消えるまでの時間を決定します (「0」の場合は消えません)。

Starts Enabled

与えられた感覚が有効状態で開始するのか、手動で有効/無効にする必要があるのかを決定します。

Perception Events

[Events] セクションでは、AI Perception システムがアップデートを受信したとき、または AI Perception コンポーネントがアクティブ化または非アクティブ化されたときに何が起こるかを定義できます。

Perception_Events.png

プロパティ

説明

On Perception Updated

PerceptionUpdated_Event.png

このイベントは、Perception System が更新を受信したときに発生し、更新を通知したアクタの配列を返します。

On Target Perception Updated

TargetPerceptionUpdated_Event.png

このイベントは、Perception System が更新を受信したときに発生し、更新を通知したアクタを返します。また、追加情報を分割して取得できる AI Stimulus 構造体も返します。

TargetPerceptionStimulus_Event.png

プロパティ

説明

Age

刺激が発生してからの経過時間です。

Expiration Age

刺激が無効になるまでの時間です。

Strength

刺激で定義されたウェイトです。

Stimulus Location

刺激の発生元です。

Receiver Location

刺激が AI Perception システムによって登録された場所です。

Tag

刺激に関連するすべてのゲームプレイ タグです。

Successfully Sensed

刺激が AI Perception システムによって検知されたかどうかを表します (「True」または「False」 を返します)。

On Component Activated

AI Perception がアクティブ化されたときに発生するイベントです。

On Component Deactivated

AI Perception コンポーネントが非アクティブ化されたときに発生するイベントです。

Perception 関数を呼び出す

以下の関数は、Perception システムから情報を取得したり Perception システムに影響を与えたりするためにブループリントを通して呼び出すことができます。

関数

説明

Get Actors Perception

対象のアクタについて検知されたものをすべて取得し、検知されたアクタのデータ構造を返します。

Get Currently Perceived Actors

対象の感覚で知覚されているすべてのアクタを返します。感覚が指定されていない場合、現在何らかの方法で知覚されているすべてのアクタが返されます。

Get Known Perceived Actors

対象の感覚で知覚された (そしてまだその感覚が消えていない) アクタを返します。感覚が指定されていない場合は、知覚されたすべてのアクタが返されます。

Get Perceived Hostile Actors

期限切れになっていない敵対的なアクタ、正常に検出された刺激を感知した敵対的なアクタのリストを返します。ブループリントでメソッドをオーバーライドして、必要なアクタのリストを返すこともできます。

Request Stimuli Listener Update

指定したターゲット刺激リスナーのプロパティを AI Perception システムに手動で更新させます。

Set Sense Enabled

指定された 感覚クラス を有効または無効にします。

これは、特定の感覚がターゲット コンポーネント インスタンスに対してすでに設定されている場合にのみ機能します。

Stimuli Source

AI Perception Stimuli Source コンポーネントで、所有しているアクタに、Perception システム内の指定された感覚の刺激元として自動的に登録することができます。主な用途としては、視覚に基づいて刺激を知覚するように設定された AI Perception コンポーネントを持つ AI キャラクターが挙げられます。その後、アクタ (アイテム ピックアップ アクタなど) で Stimuli Source コンポーネントを使用し、それを視覚の刺激として登録することができます (これにより AI がレベル内のアクタを「見る」ことができます) 。

AI Perception Stimuli Source を追加するには、ブループリントの [+ (コンポーネントを追加)] ボタンをクリックして [AIPerception Stimuli Source] を選択します。

AddingStimuliSource.png

AI Perception Stimuli Source コンポーネントが追加されたら、 [Details (詳細)] パネル内でそのプロパティにアクセスできます。

刺激のプロパティ

AI Perception Stimuli Source コンポーネントの [Details (詳細)] パネルでは、AI Perception に対する次の 2 つのオプションがあります。

StimuliSource_Properties.png

プロパティ

説明

Auto Register as Source

所有しているアクタに関して指定された感覚の刺激を自動的に登録するかどうかを決めます。

Register as Source for Senses

刺激元として登録する感覚の配列です。 [+] 記号をクリックして刺激元を追加し、次にドロップダウンをクリックして目的の感覚を割り当てます。

StimuliSource_Senses.png

AISense クラスに基づいたカスタムの感覚を割り当てることもできます。

刺激の関数を呼び出す

以下の関数は、AI Perception Stimuli Source コンポーネントのブループリントから呼び出すことができます。

関数

説明

Register for Sense

所有しているアクタを指定された感覚クラスの刺激元として登録します。

Register with Perception System

Register as Source for Senses プロパティと Register for Sense 関数の呼び出しを通じて指定された感覚で、所有しているアクタを刺激元として登録します。

Auto Register as Source プロパティが有効な場合は、この関数を呼び出す必要はありません。

Unregister from Perception System

所有しているアクタの感覚の刺激元としての登録を解除します。

Unregister from Sense

所有しているアクタに関して指定された感覚の刺激を登録解除します。

AI Perception デバッグ

ゲームの実行中に「' (アポストロフィ)」キーを押し、次にテンキーの「4」を押して知覚情報を表示することで、AI デバッグ ツールを使用して AI Perception をデバッグできます。

PerceptionDebug_Image.png

詳細については、AI デバッグ ツールページおよび「Perception」のセクションを参照してください。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信