ゲーム内での Gameware Navigation の主な用途のほとんどが NavData を使用しています。NavData とは、ゲームの地形の移動可能なエリアおよびトポロジの接続を表す最適化されたデータ構造です。NavData はゲームで使用する各地形またはレベルに対して作成する必要がある重要なリソースです。
通常は、アーティストがゲーム レベルの作成に使用するのと同じゲーム エディタ ツールに NavData の制作を直接統合するために NavData 生成システムの API を使用します。これによりデータの制作が自動化され、NavData が地形自体の最新の変更に常に一致するようになります。ただし、この統合の設定には時間と手間が必要です。したがって、最初のいくつかの NavData を生成するために Navigation Lab を使用して、後の「統合フェーズ 6: NavData 生成 API を使用する」でデータ生成 API の統合に戻ります。
Navigation Lab を使用して NavData を生成するには:
地形を .obj ファイルにエクスポートします。このファイル フォーマットの詳細については、ここを参照してください。
このファイル内のメッシュには、パス ファインディングおよびパス フォローイングにおいてキャラクタが考慮する必要があるシーン内の静的で破壊できないオブジェクトすべてが含まれている必要があります。これには、地面または高さマップ、建物、樹木、街灯柱、壁、ベンチ、フェンスなどが含まれます。その他の破壊可能な、もしくは動的な障害物(自動車や箱など)は、.obj ファイルに含めないようにする必要があります。この種の動的なオブジェクトは、実行時に World に追加されます。
.obj ファイルの使用は、Navigation Lab というツール単体での要件であり、データ生成システム自体の要件ではないことに注意してください。NavData 生成システムをユーザ独自のコードに統合する場合は、.obj ファイルを使用する必要はありません(ただし、そうしたい場合は使用してもかまいません)。
ここでは、実行時に全体をロードする小さな地形を選択します。Navigation Lab は、デフォルトでは、地形全体の NavData を含めたファイルを 1 つだけ作成します。初めての統合のためのこのチュートリアルを完了した後は、さまざまな方法を使用して地形を複数のセクタに分割し、ゲームで他の種類のデータに使用されているストリーミング ロジックを反映したり、実行時にロードする必要のあるデータの量を減らしたりできます。
ゲームで使用される座標系を設定するためのダイアログ ボックスが表示されます。開発しているゲームの座標系において、Up、Right、Front の座標にどの軸が使われているか指定します。また、ゲームで合計 1 メートルになる計測ユニットの数を設定するには、OneMeter コントロールを使用します。これは、地形の測定単位となる縮尺をコントロールします。
Output セクションで、出力ファイルを作成する場所を設定します。
NavGenProj File 設定では、生成を記録するために Navigation Lab が作成するプロジェクト ファイルの場所を決定します。この .NavGenProj ファイルを再び開くことで、いつでも前に終了したところから作業を再開できます。
Base output directory にすべての NavData 出力ファイルを作成する場所の絶対パスを設定します。ゲーム用のデータを生成するときは毎回同じ値にしておきます。
Relative Directory にこのレベルの NavData を作成するベース出力ディレクトリ下の場所のパスを設定します。この相対ディレクトリは出力 NavData に保存され、視覚的なデバッグの際に、ゲーム内に現在ロードされているレベルのデータを自動的に取得するために使用することができます。
選択した地形によっては、屋根の上、木の上、壁の上など、ゲーム内でキャラクタに行って欲しくない場所で NavMesh が生成される可能性があります。これは今のところ問題になりませんが、最終的には、不要なエリアを除外するためのいくつかの可能な手法のうちの 1 つを使用します。詳細は、「移動可能な領域を識別する」を参照してください。
注: 生成プロセスが失敗する場合、または非常に長い時間がかかる場合、地形の座標系マッピング設定時に OneMeter コントロールで行った地形のスケールの設定が間違っている可能性があります。OneMeter の値を大きくして、もう一度試してください。
出力ディレクトリには、次の拡張子を持つ新しいファイルが幾つか置かれています。
Navigation Lab で生成プロジェクトを保存することができます。生成を実行するために使用されるすべての情報は .NavGenProj 拡張子のファイルに書き込まれており、このファイルには生成設定の XML リプレゼンテーションと入力 .obj ファイルが含まれています。
Navigation Lab でデータを生成すると、Navigation Lab はコマンドライン NavGenLauncher ツールにこのファイルを透過的に渡します。また、NavGenLauncher ツールを手動で呼び出し、Navigation Lab の外部で生成を再実行するためにこのファイルを渡すこともできます。「NavGenLauncher」も参照してください。