0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity-NavMeshAgentにおける「StepHeight」と「Height」の違いと役割

Last updated at Posted at 2025-03-20

UnityのNavMeshAgentにおける「StepHeight」と「Height」の違いと役割

UnityのNavMeshAgentには、ナビゲーションの挙動を制御するためのパラメータが多数存在します。その中でも「StepHeight」と「Height」は、エージェント(キャラクターやAI)の移動挙動に大きく関わる重要な設定です。本記事では、それぞれの役割や適切な値の設定方法について詳しく解説します。

1. StepHeight(ステップの高さ)とは?

役割

StepHeight は、エージェントが乗り越えられる段差の最大高さ を決めるパラメータです。この値以下の段差であれば、エージェントはスムーズに移動できます。

値を変更するとどうなるか?

StepHeight の値 挙動
小さい値(例: 0.1 小さな段差でも引っかかって登れないことがある
大きい値(例: 1.0 高い段差も登れるが、不自然な移動になることがある
  • StepHeight を高くしすぎると、不自然に大きな段差を登ることがあり、キャラクターの見た目に違和感が生じることがある。
  • StepHeight を小さくしすぎると、小さな段差でも進めなくなる可能性 がある。

適切な値の設定

通常のキャラクターの場合、StepHeight = 0.3 ~ 0.5 程度が自然な設定となります。


2. Height(エージェントの高さ)とは?

役割

Height は、エージェントの身長(高さ) を設定するパラメータです。この値が基準となり、エージェントが通れる通路の高さが決まります。

値を変更するとどうなるか?

Height の値 挙動
小さい値(例: 1.0 低い通路も通れるが、エージェントの見た目と合わなくなる可能性がある
大きい値(例: 3.0 低い天井の下や狭いトンネルを通れなくなる
  • Height を大きくすると、狭い通路を通れなくなる
  • Height を小さくすると、エージェントが通れるエリアが増えるが、キャラクターの見た目と一致しなくなる可能性がある。

適切な値の設定

  • 人型キャラなら Height = 2.0 程度が一般的。
  • 動物やロボットなど、低いキャラは Height = 1.0 以下もあり得る。

3. StepHeight と Height の違い

パラメータ 役割 影響
StepHeight 乗り越えられる段差の最大高さ 値を上げると高い段差も登れるが、不自然になる可能性あり
Height エージェントの身長 値を上げると低い場所を通れなくなる

StepHeight は「どの高さまで段差を登れるか」、Height は「どの高さまでの空間を通れるか」を決める指標です。


4. 実践的な設定例

① 人型キャラ(例: FPS キャラクター)

StepHeight: 0.4
Height: 2.0

✅ 小さな段差(0.4m 以下)はスムーズに乗り越え、天井が 2m 以上ある場所のみ通行可能。

② 小型ロボット

StepHeight: 0.2
Height: 1.0

✅ 小さな段差(0.2m 以下)は乗り越えられ、低い通路(1m 以上の高さ)も通れる。

③ 大型モンスター

StepHeight: 1.0
Height: 4.0

✅ 1m までの段差はスムーズに乗り越え、4m 以上の高さがある場所しか通れない。


5. まとめ

StepHeight はエージェントが乗り越えられる段差の高さ(通常 0.3 ~ 0.5
Height はエージェントの身長(通常 2.0 くらい)
適切な値を設定しないと、エージェントが進めない or 不自然な動きになる

NavMeshAgent を使ったナビゲーションシステムを構築する際には、これらのパラメータを適切に設定し、エージェントの移動をスムーズにすることが重要です。適切な設定を行い、よりリアルなAIの移動挙動を実現しましょう!

6.追記

StepHeight を Height より大きくすると、例えば「1mのドアは通れないのに、1mの段差は登れる」という不自然な動作 になることがある。
よって、基本的には、StepHeight < Heightにする。

また、Heightは、NavMeshAgentの、コンポーネントの中の、ObstacleAvoidanceのHeightと同じにするとよい。かも。例外はあるのかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?