FPCゲームでNPCの敵をカバーするためのベストプラクティスは何ですか?


8

私の質問は、このタイプのNPC敵の関与の背後にあるデータ構造(およびこの構造を使用する論理的な方法)についてです。

それはFPSのような、または「ボードゲーム」ビューゲームですることができます...

回答:


9

3つの主なオプションがあります。

オプション#1:(最も堅牢ですが、ほとんどのCPUに負荷がかかります)

リアルタイムで、NPCが非表示になり、プレーヤーに公開されていない十分に広いコーナー領域を計算します。非表示にするプレーヤーに最も近いものを選択します。

これは、どのレベルでも機能し、ゲームプレイ中にジオメトリが変化するレベルでも機能します。ただし、安定して動作するには、最も時間がかかり、ゲーム中はほとんどのCPUリソースを使用します。

オプション#2:(レベルデザイナーの時間を節約し、リアルタイムヒットを最小限に抑える)

コーナーテストを実行し、すべての潜在的なカバー領域のレベルにノードを配置するオフラインツールを作成します。次に、LDはこれらのノードを調整したり、不適切なノードを削除したりできます。

ゲームプレイ中に最も近い有効なノードを見つけるだけです。

これは、LDがあちこちにいくつかの不良ノードを排除できるため、コーナー検索ルーティングが100%正確である必要がないという点で優れています。オブジェクトへのアタッチやスクリプトのオン/オフを巧みに始めない限り、ジオメトリの変更に対応できません。

オプション#3:(ブルートフォース、最小限のリアルタイムヒット)

LDが手動ですべてのカバーノードを配置し、ゲームプレイ中に最も近い有効なノードを選択するようにします。

レベルが多い場合やレベルが大きい場合は、LDが文句を言うことを期待してください。


3

それを行うための最良の方法は、NPCにカバーさせたいエリアにボックスを手動でセットアップすることだと思います。

「恐怖」またはその他の必要なメトリックの変数を用意します。しきい値に達すると、NPCはプレイヤーの視界の外にある最も近いボックスに移動します。

敵にオブジェクトの背後を動的にカバーさせる方法を考え出すこともできますが、そうでない場合は、奇妙で非論理的なカバー位置が生成される可能性があります。


1

killzoneのAIがポジションスペースを検索して適切なポジションを取得する方法については、こちら(PDF)に説明があります。評価関数を変更して、AIが狙われた場合、またはAIに大きな損傷があった場合にカバー位置の値を増やすことができます。したがって、狙われていないAIは、ターゲットを取得するのに少しリスクを伴います。

また、AttackingHobboのソリューションを追加して、恐怖要因に応じてカバーの関心を増大させることもできます(つまり、0:無敵です/ 1:気をつけます/ 5停止させてください)

よろしく


1

ゲームのスタイルに依存します。レベルデザイナーがカバーオブジェクトを配置することはかなり一般的です。カバーオブジェクトは、ボリューム、カバーオブジェクトを表す形状、またはノードのいずれかです。これはLDの方がより労働集約的ですが、より厳密にスクリプト化されたゲームで通常必要とされるはるかに多くの制御を提供します。

オープンワールドのゲームでは、自動カバー検出システムが必要です。環境破壊を無効化して再検出できるようにするために、Battlefield:Bad Company(1&2)で実行時にカバーを検出したものを使用しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.