ステージのジオメトリ(地形)からナビメッシュを作成することを NavMesh Baking と呼びます。静的ゲームオブジェクト として登録されたすべての Game Object の Render Mesh と Terrain を集めて処理し、それを基にステージの歩行可能サーフェス(面)を大まかに表したナビゲーションメッシュが作成されます。
Unity では、ナビメッシュの生成は Navigation ウィンドウ(menu: Window > Navigation )から行います。
シーンに必要なナビメッシュの作成は、4つの簡単な手順で行えます。
生成されたナビメッシュは、シーン内では、Navigation ウィンドウが開いていて表示されている状態の時に、ステージのジオメトリ上を覆う青いオーバーレイとして表示されます。
上の図で気づくように、生成されたナビメッシュの歩行可能領域はやや小さめに表示されます。ナビメッシュは、エージェントの中心が移動できる領域を表します。概念的には、エージェントを縮小されたナビメッシュ上の点と見なすか、フルサイズのナビメッシュ上の円と見なすかは関係ありません。なぜなら、この 2 つは同じことだからです。しかし、点とみなす方がランタイムの効率が良く、デザイナーは半径を気にせずエージェントがすき間を通り抜けることができるかをすぐに知ることができます。
もうひとつ考慮に入れる必要があるのは、ナビメッシュはあくまでも歩行可能サーフェスを大まかに表したものであるということです。例えば階段は、ソースのサーフェスにはきちんと段があったとしてもナビメッシュでは平らな傾斜面で表されたりします。これはナビメッシュのサイズを抑えるための仕様です。この副作用としては、ジオメトリに狭い場所がある場合、エージェントが通り抜けられるようにするためにスペースを少し余分に設ける必要が生じることがあります。
ベーキングが完了すると、そのナビメッシュが属するシーンと同じ名前のフォルダー内にナビメッシュアセットファイルが作成されます。例えば、Assets フォルダー内にある First Level というシーンの場合、ナビメッシュの場所は Assets > First Level > NavMesh.asset になります。
Navigation ウィンドウ上でオブジェクトを 静的ゲームオブジェクト として作成する方法の他に、インスペクター上部の Static メニューも使用できます。Navigation ウィンドウが開かれていない時にはこれが便利です。