Version: 2023.1
言語: 日本語
ナビゲーションの概要
ナビゲーションシステムの内部的なしくみ

Unity の ナビゲーションシステム

ナビゲーションシステム(Navigation System)は、ゲーム世界をナビゲートする(動き回る)キャラクターの作成を可能にするものです。このシステムによって、二階へ行くためには階段を使用し、溝を越えるためにはジャンプしたりしなければならないことをキャラクターに理解させるすることができます。Unity のナビメッシュ(NavMesh)システムは、以下の要素で構成されています。

  • ナビメッシュ(NavMesh) (Navigation Mesh の略)は、ゲーム世界の中で歩行可能な面を描写するデータ構造で、ひとつの歩行可能な面から別の歩行可能な面へのパスを見つけることができるようにするものです。データ構造は、ステージのジオメトリ(形状)から自動で構築またはベイクされます。
  • ナビメッシュ エージェント(NavMesh Agent) コンポーネントは、キャラクターがゴールに向かって進行する際に相互に回避し合うように作成する助けになります。エージェントはナビメッシュを使用してゲーム世界を認識(判断)し、互いに回避し合ったり、障害物を動かしたりする方法を理解しています。
  • OffMesh Link コンポーネントは、歩行可能なサーフェスを使って表現できないナビゲーションのショートカットを組み入れる事を可能にします。例えば、溝やフェンスを飛び越えたり、通り抜ける前に扉を開けるなどは、オフメッシュリンクとして表現が可能です。
  • ナビメッシュ障害物(NavMesh Obstacle) コンポーネント。これによって、エージェントがゲーム世界をナビゲートする(動き回る)際に避けるべき障害物を、動かすことができます。例えば、物理システムによって制御された樽やクレートなども「障害物」の一例です。障害物が動いている間は、エージェントはそれを回避しようと最善を尽くします。障害物の動きが止まるとそれによってナビメッシュに穴が開けられるので、エージェントはそれを避けて通るために進行コースを変更することができます。あるいは、その静止した障害物が通り道を塞いでいる場合は、エージェントはよりよいルートを見つけることができます。
ナビゲーションの概要
ナビゲーションシステムの内部的なしくみ