エージェント (NavMesh Agent)
公式サイト:
NavMesh Agent | Unity マニュアル [公式]
使い方
参考:
NavMeshAgent – ナビメッシュエージェントの使い方 | Uinty 使い方ガイド
ナビメッシュエージェントの使い方 #1 | 初心者からわかりやすく
NavMesh Agent の作成 | Unity マニュアル [公式]
導入
参考:
NavMeshAgent – エリアに入れば追いかけられる | フタバゼミ
設定
- エージェントタイプ (Agent Type):エージェントの種類 (デフォルト:
Humanoid
) - ベースオフセット (Base Offset):床から浮かせる高さを指定する (単位:
m
/デフォルト:0
)
操縦 (Steering)
- 速度 (Speed/単位:
m/s
/デフォルト:3.5
) - 角速度 (Angular Speed/単位:
deg/s
/デフォルト:120
) - 加速度 (Acceleration/単位:
m/s^2
デフォルト:8
) - 停止距離 (Stopping Distance):目標の直前で止まる距離 (単位:
m
/デフォルト:0
) - 自動ブレーキ (Auto Braking):目標地点手前で減速する (デフォルト:
有効
)
障害物の回避 (Obstacle Avoidance)
- 半径 (Radius/単位:
m
/デフォルト:0.5
) - 高さ (Height/単位:
m
/デフォルト:2
) - 品質 (Quality)
- なし (None)
- 低品質 (Low Quality)
- 中品質 (Medium Quality)
- 良品質 (Good Quality)
- 高品質 (High Quality/デフォルト)
- 優先度 (Priority):より小さい値を指定したエージェントを無視する/値が小さい方が優先度が高い (範囲:
0
~99
/デフォルト:50
)
パス探索 (Path Finding)
- オフメッシュリンクの移動を自動化 (Auto Traverse Off Mesh Link):オフメッシュリンクを自動的に辿る (デフォルト:
有効
) - パスの再取得を自動化 (Auto Repath):部分的な経路の終端で経路を再度探索する (デフォルト:
有効
) - エリアマスク (Area Mask):通過可能なエリアマスクを指定する (デフォルト:
Everything
)
参考:
NavMesh Agent | Unity マニュアル [公式]
エージェントをスクリプトで操作する
参考:
NavMesh を使った巡回する NPC のつくりかた – Qiita
複数地点を巡回する GameObject を作成する方法 | とんプログラミング
敵キャラを NavMesh でかしこくかっこよく動かしてみよう | k1t
目標を設定する (SetDestination)
参考:
AI.NavMeshAgent.SetDestination | Unity スクリプトリファレンス [公式]
AI.NavMeshAgent.pathPending | Unity スクリプトリファレンス [公式]
SetDestination() working only one agent at a time? – Unity Forum
NavMesh Agent not working on Terrain – Stack Overflow
状態を判定する
参考:
AI.NavMeshAgent.isOnNavMesh | Unity スクリプトリファレンス [公式]
How to check if player is standing on a walkable part of a NavMesh? – Unity Forum
状態
- desiredVelocity
- hasPath
- isOnNavMesh
- isOnOffMeshLink
- isPathStale
- navMeshOwner
- nextPosition
- pathPending
- pathStatus
- remainingDistance
- steeringTarget
- velocity
参考:
NavMesh Agent | Unity マニュアル [公式]
回避 (Avoidance)
参考:
AI.NavMesh.avoidancePredictionTime | Unity スクリプトリファレンス [公式]
NavMesh agents to avoid other agents – Unity Forum
NavMesh Agents are pushing each other – Unity Forum
Official way to make agents avoid each other – Unity Forum
Is NavMesh system missing an Agent avoidance element? – Unity Forum
How to avoid two NavMesh Agent push away each other? – Stack Overflow
リファレンス
ドキュメント:
AI.NavMeshAgent | Unity スクリプトリファレンス [公式]
Nav Mesh Agent Avoidance in Depth
動画:
NavMeshAgent Avoidance in Depth – 5 Key Takeaways for Optimal Avoidance
リポジトリ:
llamacademy/ai-series-part-32: Learn How Nav Mesh Agent Obstacle Avoidance Works in Depth! – GitHub
Raycast Obstacle Avoidance
フォーラム:
NavMesh and Raycast Obstacle Avoidance – Unity Forum
参考:
How to avoid two NavMesh Agent push away each other? – Stack Overflow