NavMeshAgent コンポーネントは、相互に回避しながら目的地点に向かって進行するキャラクターの作成に利用できます。エージェントはナビメッシュを使ってゲーム世界の状況を判断し、それに基づき他のエージェントや障害物を回避することができます。経路探索や空間の判断は、ナビメッシュエージェントのスクリプト API によって行われます。
プロパティ | 機能 |
---|---|
Agent Size | |
Radius | エージェントの半径、障害物や他のエージェント間の衝突の計算に使用されます |
Height | エージェントの高さ、頭上にある障害物の下を通り抜ける計算に使用されます |
Base offset | トランスフォームピボットポイントに対するコリジョンシリンダー(円筒)のオフセット |
Steering | |
Speed | 動きの最高速度(単位: メートル/秒) |
Angular Speed | 回転の最高速度(単位: 度/秒) |
加速度 | 最高加速度(単位: メートル/秒の2乗) |
Stopping distance | ゴール位置、この設定距離まで近づいたらエージェントが停まります |
Auto Braking | 有効になっていると、目的地点の到着時にエージェントの移動速度が減速します。巡回のような、エージェントが複数のポイント間をスムーズに移動する必要がある場合には無効にする必要があります。 |
Obstacle Avoidance (障害物回避) | |
Quality | 障害物回避の品質 エージェントの数が多い場合には障害物回避の品質を落とすことで CPU 時間を節約することができます。回避を None に設定するとエージェント同士が衝突しなくなりますが、他のエージェントが障害物を積極的に回避するようになるわけではありません。 |
Priority | エージェントは、この数値より低いエージェントを無視して回避するようになります。値は 0~99 の間で設定し、数字が小さいほど優先度が高いことを意味します。 |
Path Finding (経路の探索) | |
Auto Traverse OffMesh Link | オフメッシュリンクを自動的に走査するようにする必要がある場合は true に設定してください。オフメッシュリンクを走査するのにアニメーションなどの特定の方法を使用する場合はオフにしてください。 |
Auto Repath | 有効になっていると、エージェントは部分的な経路の終了地点へ到達した際に、再度経路の探索を行います。目的地への経路がない場合は、目的地にもっとも近い到達可能場所への部分的な経路が作成されます。 |
Area Mask | Area Mask は、エージェントが経路を探索する際にどのナビゲーションエリアとコスト を確認するかを設定します。ナビメッシュのメッシュをベイクする際に、各メッシュにエリアタイプを設定できます。例えば、階段を特殊なエリアタイプでマスクし、一部のキャラクターはその階段を使えないようにしたりすることが可能です。 |
エージェントは直立円柱形(シリンダー)で定義されます。円柱の大きさは Radius や Height プロパティで指定できます。この円柱はオブジェクトとともに動きますが、オブジェクト自体が回転しても常に直立状態を保ちます。円柱の形が、他のエージェントや障害物との間の衝突の検知やそれに対する反応に使用されます。ゲームオブジェクトのアンカーポイントが円柱の底部に位置しない場合、Base Offset プロパティを使用して高さの差を調節することができます。
円柱の高さと半径の設定は、2ヶ所 で行えます。ナビメッシュの作成か個々のエージェントのプロパティから設定が可能です。
エージェントのサイズは、よっぽどのことがない限り2ヶ所とも同じ値にします。ただし、例えば、重量のある兵士がいる場合、半径を大きくし他の兵士がぶつからないようにしなければいけません。そうしなければ回避パターンに支障が出てきます。
NavMeshAgent
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.