概念页
Godot 导航与寻路
Godot Navigation
Godot 同时提供图点寻路(AStarD)与基于导航网格的 NavigationServerD。网格路径适合「区域内任意点」;A* 适合格子/路点玩法。
原理
- AStar2D/3D:加权点图最短路;离散位置玩法。
- NavigationServer:地图 → 区域 → 导航网格;智能体可挂避障。用 RID 与服务器通信。
- 2D/3D 各有介绍文;连接多块 NavMesh、不同体型 actor、调试工具见 tutorials/navigation 其余页。
应用
- 开放关卡烘焙/绘制导航多边形;运行时改区域(门开关)需同步服务器。
- 移动执行仍常交给 CharacterBody:导航出路径点,角色自己走。
取舍
- 网格缩放好(大片可用少多边形);A* 点多时内存与维护成本高。
- 导航 ≠ 物理碰撞:视觉可走与网格必须对齐,否则「贴墙滑」。
- UE 对照:NavigationServer ≈ NavMesh + Detour 避障管线的引擎封装。
参见
出处
相关页面
游戏开发 · UE5AI 感知、EQS 与导航AI Perception, EQS & NavigationAI 的感官层由三块组成:AI 感知 (AI Perception) 组件挂在 AIController 上监听视觉/听觉/伤害等刺激并更新黑板;环境查询系统 (EQS) 用生成器产生候选项、先过滤后打分,回答「哪里最好」;导航系统从碰撞几何生成分瓦片的导航网格 (NavMesh),按多边形代价寻路,并提供 RVO 与 Detour Crowd 避让。它们为行为树/StateTree 提供输入。游戏开发空间分区Spatial Partition空间分区 (Spatial Partition) 把对象按位置存进空间数据结构,使“找出某位置附近的对象”这类查询不必遍历所有对象,把 O(n) 或 O(n^2) 的操作降下来。最简单的是固定网格;还可以选层次结构(四叉树、BSP、k-d 树、BVH),以及边界固定或随对象自适应的划分方式。代价是对象移动时要更新结构,并且要额外占用内存。游戏开发 · GodotGodot 物理与碰撞层Godot Physics & Collision LayersGodot 提供 Area(检测/影响)与三类物理体;用 collisionlayer / collisionmask 比特决定谁与谁交互。物理非确定性——不要指望跨端逐帧锁步复现。游戏开发寻路与导航理论基础Pathfinding & Navigation Theory寻路是在图上找代价可接受的路径:BFS / Dijkstra / A 是同一家族;NavMesh、路点、格子是不同的图构建方式。分层(走廊↔房间、扇区↔网格)与「全局路径 + 局部避障」把大规模导航拆开。A 本身不管编队、动态挤让与动画根运动。游戏开发局部避障Local Collision Avoidance局部避障处理「附近智能体/动态障碍怎么挤得开」:在全局路径给出的期望速度上,用 VO / RVO / ORCA 等选一个短期内不撞的速度。它不替代 A/NavMesh,也不能独自解决大尺度绕路。游戏开发游戏 AI 决策管线Game AI Sense-Decide-Act Pipeline游戏 AI(与生成式 DNN 不同)通常按 感知 → 决策 → 执行 分层:底层是寻路、感知与记忆;中层是角色控制(对接动画/物理);上层是目标与决策(行为树、效用、规划等)。GEA 强调「perception is reality」——玩家看不见的内部聪明不算数。