NavTags と呼ばれるカスタム データを使用して、NavData の任意のエリアにタグ付けすることができます。これを使うとキャラクタが実行時にエリア内のパスをプランしてたどる方法に影響を与えることができます。例:
たとえば次のイメージは、いくつかの異なるタイプの NavTags で地形が設定されていることを示しています。
NavTags は次のいずれかによって表されることがあります。
地形用に事前生成する静的 NavData に NavTags を埋め込むには複数の方法があります。
GeneratorInputProducer クラスが NavData 生成システムにトライアングルを提供するたびに、そのトライアングルに特定のタイプの NavTag でタグを付けることができます。
GeneratorInputProducer クラスは、どの NavTags がボリュームと交差するすべてのトライアングルに対して適用されるべきかを決めるボリュームを指定することができます。この方法を使用するには:
NavTags は実行時に動的に追加できます。それには、TagVolumes を生成して Databases に割り当てるか、動的障害管理システムによって提供される動的な BoxObstacle クラスと CylinderObstacle クラスを使用します。新しい TagVolume または障害物のエリアの NavMesh は、カスタム NavTag を反映するように自動的に再生成され、再三角形化されます。
詳細は、「動的な障害物や TagVolume を使用する」を参照してください。
NavTag に基づいて三角形と TagVolume をレンダリングするためのカラーを選択することができます。このようなカラーは NavTag をすばやく識別するのに役立ちます。
次の関数を使用して DynamicNavTag カラーを設定することができます。
NavTag を排他に設定した場合、そのカラーは次の図に示すように自動的に赤に設定されます。
さらに、ランタイム TagVolume のデフォルトのカラーが、次の図に示すように暗いオレンジ色になっています。
NavTag カラーの次のパラメータが、GeneratorAdvancedParamaters クラスに追加されます。
これらのカラーは、生成時に自動的に NavTag に設定されます。m_emptyDefaultNavTagColor パラメータまたは m_nonEmptyDefaultNavTagColor パラメータは、デフォルトの NavTag が空であるかどうかに応じてデフォルトの NavTag に設定されます。これはデフォルトですべての三角形に適用されます。
m_nonDefaultNavTagColor パラメータは、次の場合に NavTag に設定されます。
三角形や TagVolume を追加する前に NavTag のカラーを変更した場合、m_nonDefaultNavTagColor パラメータは設定されません。
これらのカラーは、Navigation Lab の Advanced Parameters パネルで変更することができます。次の図を参照してください。
次のメソッドが DynamicNavTag クラスに追加されます。
地形に NavGraphs を使用する場合は、頂点とエッジにも NavTags でタグを付けることができます。
「NavGraph を作成する」を参照してください。
異なる NavTags でタグ付けされた 2 つ以上のエリアがオーバーラップする場合、NavTags はマージされません。代わりに、NavTag クラスの < 演算子を呼び出すことによって下位にあると判定された NavTag が保持されます。
たとえば次のイメージでは、排他的ボリュームがオレンジ色のボリュームより低く、オレンジ色のボリュームが緑色のボリュームより低く、緑色のボリュームが青色のボリュームより低くなっています。
詳細については、navtag.h ファイルの実装を参照してください。