Version: 2020.3
言語: 日本語
NavMesh ビルドコンポーネント
NavMesh Modifier

NavMesh Surface

NavMesh Surface コンポーネントは特定の NavMesh エージェント タイプが歩くことのできる領域を示し、NavMesh を作成するシーン部分を定義します。

NavMesh Surface コンポーネントは Unity の標準インストールに含まれていません。NavMesh Surface へのアクセス方法は、ドキュメントのNavMesh ビルドコンポーネント を参照してください。

NavMesh Surface コンポーネントを利用するには、GameObject > AI > NavMesh Surface へ移動します。これにより、NavMesh Surface コンポーネントがアタッチされた空のゲームオブジェクトが作成されます。1 つのシーンに複数の NavMesh Surface を加えることができます。

NavMesh Surface コンポーネントは任意のゲームオブジェクトに加えることができます。これは、ゲームオブジェクトの親子関係を設定するHierarchy を使って、NavMesh にどのゲームオブジェクトを使うかを定義するのに便利です。

インスペクターウィンドウの NavMesh Surface コンポーネント
インスペクターウィンドウの NavMesh Surface コンポーネント
プロパティ 機能
Agent Type NavMesh Surface を使う NavMesh エージェント のタイプ。ベイクの設定と、経路探索中に NavMesh エージェントを適当なサーフェスと合わせるために使用します。
- Humanoid
- Ogre
Collect Objects ベイクに使用するゲームオブジェクトを決めます。
- All – すべてのアクティブなゲームオブジェクトを使用します (デフォルト)
- Volume – バウンディングボリュームと重なるすべてのアクティブなゲームオブジェクトを使用します
- Children – NavMesh Surface コンポーネントの子であるすべてのアクティブなゲームオブジェクトを使用します
Include Layers ゲームオブジェクトが ベイク に含まれるレイヤーを定義します。Collect Objects に加えて、これでさらに、特定のゲームオブジェクト (エフェクトやアニメーション化したキャラクターなど) をベイクから除外することを可能にします。
デフォルトでは Everything に設定されていますが、以下のオプションを選んだり、個別にオフにすることができます。
- Nothing (自動的に他のすべてのオプションのチェックを外し無効にします)
- Everything (自動的に他のすべてのオプションをチェックし有効にします)
- Default
- TransparentFX
- Ignore Raycast
- Water
- UI
Use Geometry ベイクにどのジオメトリを使うかを選択します。
- Render Meshes – レンダーメッシュと テレイン のジオメトリを使います
- Physics Colliders – コライダーとテレインのジオメトリを使います。このオプションを使うと、 Render Meshes オプションを使うときに比べ、エージェントは環境の物理的境界により近く移動できます。

入力ジオメトリを大まかににフィルタリングするには、NavMesh Surface コンポーネントの主な設定を使用します。ゲームオブジェクトベースで入力ジオメトリを処理する方法を微調整するには NavMesh Modifier コンポーネントを使用します。

ベイクのプロセスでは、NavMesh Agent または NavMesh Obstacle を持つゲームオブジェクトは自動的に除外されます。それらは NavMesh の動的なユーザーで、NavMesh の構築には貢献しません。

Advanced 設定

NavMesh Surface の Advanced 設定パネル
NavMesh Surface の Advanced 設定パネル

Advanced 設定セクションで、以下の追加パラメーターをカスタマイズできます。

プロパティ 機能
Default Area NavMesh を構築するときに生成されるエリアタイプを定義します
- Walkable (デフォルト)
- Not Walkable
- Jump
エリアタイプをもっと詳細に変更するには、NavMesh Modifier コンポーネントを使用します。
Override Voxel Size NavMesh のベイクの入力ジオメトリをどれだけ正確に処理するかを制御します (これは速度と精度のトレードオフです)。チェックボックスをチェックすると有効になります。デフォルトではチェックされていません (無効)。エージェントの半径ごとに 3 つ (直径ごとに 6 つ) のボクセルは、迅速にベイクしながらドアのような狭い通路を捉えることが可能です。大きなオープンエリアでは、半径ごとに 1 つまたは 2 つのボクセルを使用してベイクをスピードアップします。密な屋内スポットは、半径ごとに 4〜6 ボクセルなどのより小さいボクセルに適しています。半径ごとに 8 以上のボクセルを使っても、通常は、それ以上あまり利点はありません。
Override Tile Size ベイク処理を並行して、かつ、メモリ上効率的に行うために、ベイクのためにシーンをタイルに分割します。NavMesh 上に表示される白い線は、タイルの境界です。デフォルトのタイルサイズは 256 ボクセルで、メモリ使用量と NavMesh フラグメンテーションのトレードオフのバランスが取れています。
デフォルトのタイルサイズを変更するには、このチェックボックスをチェックし、 Tile Size フィールドに、タイルサイズを設定するボクセル値を入力します。タイルが小さければ小さいほど、NavMesh は断片化されます。このようにすると、最適でないパスが発生することがあります。 NavMesh カービングはタイル上でも動作します。多くの障害物がある場合は、タイルサイズを小さく (たとえば、64 から 128 ボクセル) することで、カービングを短時間で行うことができます。ランタイムに NavMesh をベイク処理する予定がある場合は、小さいタイルサイズを使用して最大メモリ使用量を低く抑えます。
Build Height Mesh サポートされていません。

Advanced セクションの Debug Visualization

デバッグオプションによって、NavMesh 作成後に Input Geometry、Regions、Polygonal Mesh Detail、Raw Contours を表示
デバッグオプションによって、NavMesh 作成後に Input Geometry、Regions、Polygonal Mesh Detail、Raw Contours を表示
Debug Visualization オプションを設定した Nav Mesh Surface インスペクター
Debug Visualization オプションを設定した Nav Mesh Surface インスペクター

Debug Visualization セクションの設定を使用して、NavMesh を作成する間に発生した問題を検証します。様々なチェックボックスは NavMesh の作成処理の各ステップを示しています。それには、入力シーンのボクセル化 (Input Geometry)、領域の分割 (Regions)、形状の生成 (Contours)、NavMesh のポリゴン (Polygon Meshes) が含まれます。


  • 2017–09–14 公開ページ

  • 5.6 の新機能

  • 新しい Advanced セクションの Debug Visualization は2017.2 で追加NewIn20172

NavMesh ビルドコンポーネント
NavMesh Modifier