オフメッシュ リンク
ナビメッシュエージェント

ナビゲーション レイヤーおよびコスト

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

“知性” あるエージェントを再現するため,経路探索システムは開始地点から目的地点までの最適経路を見つけるように設計されています。通常は最短経路が最適経路となりますが,現実世界でも単純でないケースがあります。例えば二つの地点間の最短経路が厚い雪で覆われていて,たとえ距離は長くても雪のない経路の方が早いかもしれません。また時間以外の要素もあります。夜は暗い通りではなくて少し遠くとも明るい経路を安全面で選ぶでしょう。それぞれの経路には Cost (コスト)がある,と解釈することで整理できます。コストは地形の難易度やリスク,その他に考えられる要素を表現します。最適経路はコストが総合的にもっとも低いものであり,最短であるとは限りません。

Unity では Navmesh Layer を通してそれぞれのナビメッシュの箇所にコストを割り当てます。もし Navigation ウィンドウの Layers タブを選択すると 32 種類の利用可能なレイヤーが表示され,そのうち 3 つは Unity により “ビルトイン” で予約されています。ユーザ レイヤーのどれかを展開すると名前およびコストの値を割り当て出来ます

Object タブへ移動して Navigation Layer ポップアップをみると,メニューに割り当てされた任意のユーザ レイヤーをみることが出来ます。ナビメッシュ オブジェクトからレイヤーを選択するとエージェントが移動する距離にもコストを割り当てます。これによりレベルデザイナーがシーンを複数のナビメッシュに分割して異なる通過コストを表現できます。

コストの使用例や Tips

コストを使用するときに意識すべきことは通過コストが低い長い距離のほうが,通過コストの高い短い距離よりも優先される場合があることです。思わぬ結果につながる場合があり,キャラクターが暗い通りを少し遠くて明るい経路より優先してしまうかもしれません。しかし動作は “合理的” であっても現実的でない場合もあるでしょう。道路の通過コストを下げることで車が優先して選択させることが出来ますが,ヘアピンカーブをさけるために家の敷地を通るのはおかしいでしょう。コストを慎重に設定してテストすることが必要な場合がありレベルを設計しなおすたほうが複雑にナビメッシュのコストで混乱するほうが良い場合もあります。

状況によってはマップの大部分が “普通” で,いくつかのエリアを通過すると有利な場面があります。例えば,動く歩道または斜面を使用するほうが同じ距離を歩くより優先する場合があります。コストをより低く設定するのでも問題ありませんが,負の値を使用すべきではありません。エージェントは最も低いコストの経路を探索するため,負の値があるとそのエリアを通過するたびにコストが減少するため彷徨うかもしれません。もしゲームの大部分が普通のマップで僅かに有利なマップを用意したい場合には普通のレイヤーを 1 より大きい値を使用して “有利な” レイヤーに低い値を使用すべきです。

経路のコストは曖昧な概念であり,要素は様々あるかもしれませんが,使用例としては次のような場合があります:

  • 地形マップの難易度や有利さ: キャラクターはより簡単なマップを優先しますが,大回りせずに回避するかもしれません。例えば小さな池は避けますが,経路が最短であり他の経路が相当に長い場合はリスクをとって通過するかもしれません。
  • リスク: 盗賊が暗い通り道にいたり丈のある草地は蛇がいるかもしれません。知性あるキャラクターは回避するはずです。
  • 発見しやすさ: 脱獄するキャラクターは監視カメラをさけて監視員のパトロールを避けた経路を選ぶでしょう。
  • 安全性: 攻撃部隊は壁,車,大きな物体に近い位置で隠れて,必要なときだけ姿を見せるでしょう。
  • ダメージ: 火,電気,硫酸がフロアにある場合は通常さけるべきですが,唯一の脱出経路の場合は通過するでしょう。
オフメッシュ リンク
ナビメッシュエージェント