Version: 5.6
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 Define the layers on which GameObjects are included in the bake. In addition to Collect Objects, this allows for further exclusion of specific GameObjects from the bake (for example, effects or animated characters).
This is set to Everything by default, but you can toggle following options on (denoted by a tick) or off individually:
- Nothing (automatically unticks all other options, turning them off)
- Everything (automatically ticks all other options, turning them on)
- 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 サポートされていません。

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