リビルドするセクタを選択する

地形に複数のセクタが含まれている場合、実行時にそのセクタをつなぎ合わせることができるようにするために、NavData 生成システムの各実行で常にすべてのセクタのトライアングルを渡す必要があります。ただし、ジオメトリが 1 つのセクタでのみ変化した場合、World 全体の NavData を再構築するのではなく、変更されたセクタと、変更されたセクタとその周囲とのオーバーラップの NavData を再構築することもできます。

同様に、コラボレーション型ワークフローとアセットのバージョニングを伴うプロダクション環境でも、特定のセクタをオーバーラップする NavData はロックされる可能性があります。この制約を与えられたセクタのリビルドが可能である必要があります。

Gameware Navigation データ生成システムはこれらのシナリオに対応しています。NavData 生成システムの API を直接使用する場合は、どのセクタを再生成する必要があるか、および隣接セクタとオーバーラップするジオメトリを考慮するためにどのセクタを再ロードする必要があるかを容易に設定できます。このプロセスで、Generator は変更されないセクタに対する入力データを読み取ります。その方法は、前回の生成の実行中に生成された .ClientInput から直接読み取るか、セクタにトライアングルを入力するために GeneratorInputProducer を呼び出すかのどちらかです。

リビルドするセクタを指定する

GeneratorInputOutput によって管理されるリストの各 GeneratorSector には、リビルドの処理をコントロールする 2 つのフラグを設定できます。

一般的なワークフロー

反復してリビルドするための一般的なシナリオは以下のようになります。

  1. ゲーム内のすべてのセクタのリストを定義します。
  2. このリストは、全セクタですべての生成の実行を定義する GeneratorInputOutput オブジェクトを作成するために使用されます。このリストは、これらのセクタに関連付けられているさまざまなレベルの担当者間で共有される、.GenIO ファイルに保存されている場合があります。
  3. 特定のセクタを担当するすべてのユーザがこの .GenIO ファイルを GeneratorInputOutput にロードし、前のセクションでの説明に従って、リビルドするセクタにフラグを付けることができます。
  4. リビルドされるセクタにフラグを付け、関連付けられた NavData への書き込み権限と、すべての隣接するセクタの入力データへの読み込み権限があれば、修正した GeneratorInputOutput を使用して生成を開始することができます。
  5. 定期的に全セクタですべてのリビルドを実行して、オーバーラップするセクタのデータが最新であることを確認します。詳細については、次のセクションを参照してください。これには、すべての入力ファイルへの読み取りアクセスと、すべての出力 .NavData ファイルへの書き込みアクセスを必要とします。通常、このすべてのリビルドは、自動的に行われる夜間のリビルドのフレームワークに簡単に組み込むことができます。

オーバーラップ データを管理する

個々のセクタをリビルドする機能は、主に、大規模な地形が定義されたセクタ内で作業するレベル デザイナが、常にそのエリアの NavData を隣接セクタを変更せずに生成できるようにすることを目的としています。そうることでテスト プレイでは彼らが担当している地形に対する最新の変更が常に反映されるようにできます。

ただし、このシナリオで、他のセクタとオーバーラップするエリアが最新の状態であることは保証されません。オーバーラップのエリアの NavData はオーバーラップするセクタのいずれかに保存されるので、オーバーラップするすべてのセクタの NavData が同じ生成の実行で生成される場合にのみ、更新が保証されます。

Bot が実行時に常に正しくセクタの境界を越えることができるようにするために、ゲームのプロダクション バージョンを使用する前、またはセクタの境界に関連するプレイ テストを実行する前に、常にすべてのセクタの NavData を 1 回の生成の実行でリビルドする必要があります。