概要
ナビゲーション メッシュの解像度 機能により、ユーザーは同じナビゲーション メッシュ内で 3 つの異なる解像度のナビゲーション メッシュ タイルを生成することができます。ユーザーは高、中 (デフォルト)、低精度の設定でタイルのグループを生成できるようになりました。これにより、ランタイム時におけるダイナミック ナビゲーション メッシュの生成速度が向上します。
この場合、ナビゲーション メッシュの解像度とは、指定されたナビゲーション空間をカバーするために生成されたセルの精度と数を指します。たとえば、高解像度のタイルは、指定された空間をより多くのポリゴンで細分化し、空間の形状をより適切に近似する場合があります。しかし、低解像度のタイルは同じ空間を、少ないポリゴン数でカバーします。これにより、タイルの生成速度は速くなりますが、精度は低くなります。
一般的なユース ケース
次のような場合に、この機能のメリットを得ることができます。
ユース ケース | 説明 |
---|---|
生成速度の向上 | ダイナミック ナビゲーション メッシュを使用する場合、AI エージェントでそれほどナビゲーションの精度を求めないオープンな空間や領域に低解像度のタイルを使用します。AI エージェントが障害物の間の狭い空間を移動する必要がある密集した領域にのみ、デフォルトまたは高い解像度のタイルを使用します。 |
メモリ使用量の削減 | ナビゲーション メッシュに低解像度のタイルを使用することにより、メモリ使用量がデフォルトまたは高解像度のタイルを使用する場合と比較して少なくなります。これは、モバイルなどのメモリに制限があるハードウェア上でゲームを実行する場合にメリットがあります。 |
ナビゲーション メッシュで複数の解像度を使用する
-
[+Add (+追加)] > [Volumes (ボリューム)] > [Nav Mesh Bounds Volume (ナビ メッシュ バウンズ ボリューム)] の順にクリックして、レベルに ナビゲーション メッシュ バウンズ ボリューム を配置します。「P」キーを押すと、ナビゲーション メッシュが視覚化されます。
-
[Outliner (アウトライナー)] ウィンドウで [RecastNavMesh-Default] アクタを選択します。[Details (詳細)] パネルに移動して [Draw Tile Build Times (タイルのビルド時間を描画)] チェックボックスを オン にします。これにより、各ナビゲーション メッシュ タイルをビルドするためにかかった時間がミリ秒単位で表示されます。
-
[+Add] > [Volumes (ボリューム)] > [Nav Modifier Volume (ナビ モディファイア ボリューム)] の順にクリックして、レベルに ナビゲーション モディファイア ボリューム を配置します。モディファイア ボリュームをいくつかのナビゲーション メッシュ タイルと重なるように配置します。
-
ナビゲーション モディファイア ボリュームを選択した状態で、[Details] パネルに移動して [Nav Mesh Resolution (ナビメッシュの解像度)] ドロップダウンをクリックし、[Low (低)] を選択します。ナビゲーション モディファイア ボリューム内に表示されているビルド時間が大幅に短縮されることがわかります。
-
アクタ ブループリント内の Nav モディファイア コンポーネントを使用して、ナビゲーション メッシュ タイルの解像度を変更することができます。NavModifier コンポーネントを追加したら、[Details] パネルに移動します。[Nav Mesh Resolution] ドロップダウンから、希望する解像度を選択します。
-
次の例では、アクタ ブループリントを作成して NavModifier コンポーネントを追加し、解像度の設定を [Low] にしています。アクタを ナビゲーション メッシュ ボリュームに沿ってドラッグすると、ナビゲーション タイルがどのように再ビルドされるか確認してください。
エージェント ナビゲーションに影響を与える可能性があるナビゲーション メッシュの解像度
ナビゲーション メッシュ タイルの解像度は、AI エージェント ナビゲーション パスに影響を与える可能性があります。これは特にエージェントが近くにある障害物同士の間や狭い空間を移動する必要がある場合に該当します。
次の画像では、ナビゲーション メッシュに 3 つの障害物を追加し、タイルの解像度を [Low] に設定しています。下の 2 つの障害物の間には通れる通路がないことを確認してください。これは解像度が十分ではないため、この障害物の間にポリゴンを作成することができないことが原因です。

次の例では、タイルの解像度を [Default (デフォルト)] に変更しました。この解像度を使用するとポリゴンの密度が高くなり、下の 2 つの障害物の間に通り抜け可能な通路ができました。この例では、エージェントがそれらの障害物の間を移動することができ、通路は最適化されています (直線)。

最適な設定
次の手順に従って、ナビゲーション メッシュ タイルの解像度設定を変更することができます。
-
[Settings (設定)] > [Project Settings (プロジェクト設定)] の順にクリックして [Project Settings] を開きます。
-
[Navigation Mesh (ナビゲーション メッシュ)] カテゴリをクリックし、[Generation (生成)] セクションまで下にスクロールします。[Nav Mesh Resolution Params (ナビメッシュの解像度パラメータ)] 構造を展開し、各解像度レベルの設定を確認します。
-
各解像度レベルの [Cell Size (セルのサイズ)] を変更できるようになりました。[Cell Size] を大きく設定するほど、速く生成することができます。
最適なパフォーマンスのためには、各セルのサイズを互いの倍数に設定し、[Tile Size UU (タイル サイズ UU)] をすべての [Cell Size] で割り切れるようにします。
デバッグ ツール
ナビゲーション メッシュ タイルの解像度のデバッグ ツールにアクセスするには、[Outliner] ウィンドウで [RecastNavMesh-Default] アクタを選択し、[Details] パネルに移動します。
描画タイル解像度
[Draw Tile Resolutions (描画タイル解像度)] チェックボックスをオンにすると、各タイルの解像度を色別に視覚化することができます。次の表では、それぞれの色と関連するタイル解像度について説明します。
解像度 | 色 |
---|---|
青色 | 低解像度。 |
緑色 | デフォルトの解像度。 |
黄 | 高解像度。 |


ビルド時間のヒートマップ
[Draw Tile Build Times Heat Map (タイルのビルド時間ヒートマップを描画)] チェックボックスをオンにすると、ナビゲーション メッシュでタイルのビルド時間のヒートマップを視覚化することができます。それぞれの色はビルド時間の範囲を表し、明るい青色はビルド時間が短いことを、赤色はビルド時間が長いことを表しています。

