この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:29:05

タイトル: Nav Mesh Bounds Volume
SEOタイトル: UE5 Nav Mesh Bounds Volume 完全ガイド

この記事の要点
  • Nav Mesh Bounds Volume は AI が移動可能なエリアを定義するボリューム
  • 配置: Place Actors → Volumes → Nav Mesh Bounds Volume をシーンにドラッグ
  • 生成: 配置後 P キーで Navigation 可視化、Build > Build Paths で再生成
  • 裏で生成されるのは Recast Nav Mesh(自動生成、Brush Settings でサイズ調整)
  • 動的生成は Project Settings → Navigation Mesh → Runtime Generation = Dynamic

Nav Mesh とは

Nav Mesh (ナビゲーションメッシュ) は、AI キャラクターがどこを歩けるかを示す地形データです。UE5 では Recast アルゴリズムが使われており、レベル形状から自動生成されます。AI MoveTo、AI Navigation、Behavior Tree の MoveTo タスク等は、すべてこの NavMesh の存在を前提に動作します。

Nav Mesh Bounds Volume の役割

NavMesh はNav Mesh Bounds Volume の内側だけに生成されます。レベル全体に NavMesh を貼るには、レベルを覆う巨大なボリュームを置く必要があります。

手順1: ボリューム配置

  1. UE5 エディタ上部の Window → Place Actors(または左パネル)を開く
  2. カテゴリから Volumes を選択
  3. Nav Mesh Bounds Volume を Viewport にドラッグ&ドロップ
  4. Details パネルで Brush SettingsX / Y / Z サイズを調整
  5. レベル全体を覆うように位置・サイズを修正

手順2: 生成確認

ボリュームを置くと自動的に RecastNavMesh アクタもシーンに生成されます (Outliner で確認可能)。

操作結果
P キー (Viewport で押す)NavMesh 可視化 ON/OFF(緑色で表示)
Build → Build PathsNavMesh を再生成
Build → Build All Levels全レベル再ビルド
Show → NavigationViewport 表示メニューから切替

RecastNavMesh の主要パラメータ

Outliner で RecastNavMesh-Default を選択して Details パネルで調整します:

パラメータ説明典型値
Agent Radius歩く AI の半径34
Agent HeightAI の高さ144
Agent Max Slope登れる傾斜角44°
Agent Max Step Height登れる段差35
Cell Sizeセルサイズ (小さいほど精密、重い)19
Cell Heightセル高さ10
Tile Size UUタイル分割サイズ1000
Runtime GenerationStatic / Dynamic / Dynamic Modifiers Only用途次第

静的 vs 動的 NavMesh

モード用途負荷
Staticレベル形状が変わらないゲーム(FPS の固定マップ)軽い
Dynamic破壊・建築・移動床がある(Fortnite, Minecraft 系)重い
Dynamic Modifiers OnlyNavModifier の領域だけ動的に変える

Project Settings → Navigation Mesh → Runtime Generation で切替。

複数ボリュームで広域カバー

1 つの巨大ボリュームを置くより、必要なエリアごとに複数の中型ボリュームを置く方が:

  • NavMesh の生成範囲を絞れる → メモリ節約
  • 不要な空中・地下まで生成されない
  • Open World ではWorld Partition の Cell 単位で配置可能

NavMesh が生成されないケース

症状原因対処
ボリュームを置いても緑色が出ない下に地面がない / Collision なしStatic Mesh の Collision Complexity 確認
傾斜が緑にならないAgent Max Slope より急角度を上げる or 緩斜面に
段差で AI が止まるStep Height より高いAgent Max Step Height を増やす
狭い通路で生成されないAgent Radius が大きすぎRadius を下げる or 通路を広げる
動的物体で更新されないRuntime Generation = StaticDynamic に変更
Project Settings の Navigation System Class が空システム自体無効Default Navigation System Class に NavigationSystemV1 を設定

Project Settings での Navigation 設定

Edit → Project Settings → Navigation System
  - Default Navigation System Class: NavigationSystemV1
  - Auto Create Navigation Data: true
  - Generate Navigation Only Around Navigation Invokers: false
    (true にすると AI 周辺のみ生成 = Open World 向け)

Edit → Project Settings → Navigation Mesh
  - Runtime Generation: Static / Dynamic
  - Agent Radius / Height / Max Slope / Step Height
  - Cell Size / Cell Height
  - Tile Pool Size

NavModifier Volume との組み合わせ

「ここは AI が通れない」「コストが高い」を表現するのが Nav Modifier Volume:

Place Actors → Volumes → Nav Modifier Volume を配置

Details → Area Class:
  - NavArea_Default      : 通れる
  - NavArea_Null         : 通れない (穴扱い)
  - NavArea_Obstacle     : 障害物
  - NavArea_LowHeight    : 低い天井
  - 自作 NavArea クラス  : カスタムコスト

AI MoveTo の使い方

// AI Controller から
void AMyAIController::MoveToTarget(AActor* Target)
{
    UAIBlueprintHelperLibrary::SimpleMoveToActor(this, Target);
}

// または
void AMyAIController::MoveToLocation(FVector Location)
{
    MoveToLocation(Location, 5.0f, true, true, false, true);
}

// Behavior Tree から MoveTo タスクで利用
// → 内部で NavMesh の経路探索 (A*) が走る

Open World での Navigation Invoker

巨大なオープンワールドでは全領域に NavMesh を貼るとメモリが破綻します。Navigation Invoker コンポーネントを AI に持たせると、AI 周辺のみ動的生成されます:

1. Project Settings → Navigation System
   → Generate Navigation Only Around Navigation Invokers: true

2. AI Character の Components に
   → Navigation Invoker Component を追加

3. Tile Generation Radius / Removal Radius を設定
   (近くで生成、遠ざかれば破棄)

パフォーマンス指針

  • Cell Size が小さいほど精度↑・生成時間↑・メモリ↑
  • 大半のゲームでは Cell Size = 19(デフォ)で十分
  • Dynamic モードは Static の数倍重い。本当に必要なときだけ
  • Open World は Navigation Invoker 必須
  • 不要な空中・地下にボリュームを広げない

FAQ

Q: ボリュームを置いたのに AI が動かない
A: ① P キーで NavMesh 可視化、② AI Character の Movement Component が CharacterMovement か、③ AI Controller の AutoPossess、④ Behavior Tree / Blackboard が正しいか。

Q: ランタイムでボリュームを動かしたい
A: Runtime Generation を Dynamic に。Volume を Movable にして SetActorLocation。タイル単位で再生成されます。

Q: NavMesh の上を歩くより階段を使ってほしい
A: Nav Modifier Volume + 自作 NavArea でコストを上げる。または NavLink Proxy で経路を明示。