You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unreal Engine:Detour Crowd无法适配不同高度Nav Links的问题求助

问题描述

拥有两个不同高度的导航平面,通过Nav Link连接。所有Pawn均配备FloatingPawnMovementComponent:

  • 使用普通AIController时,Pawn可沿Nav Link从起点攀爬至更高平面;
  • 使用DetourCrowdAIController时,Pawn到达Nav Link后无垂直速度,仅能在(X,Y)平面移动,无法攀爬至高处,会碰撞到Nav Link终点下方的墙体。

Pawn蓝图配置一致,包含FloatingPawnMovementComponent的标准设置。

问题原因
  1. DetourCrowdAIController默认采用2.5D寻路逻辑,核心寻路计算优先忽略Z轴高度差,不会自动将Nav Link的垂直高度变化转化为Pawn的Z轴移动指令;
  2. 内置的Detour Crowd移动系统在处理Nav Link时,仅传递(X,Y)坐标的移动目标,未同步传递终点的Z坐标,导致FloatingPawnMovementComponent未收到垂直方向的移动输入;
  3. 若项目未开启Detour Crowd的3D寻路支持,系统会强制将Agent限制在XY平面移动,直接忽略Nav Link的垂直过渡设置。
解决方法

1. 开启Detour Crowd的3D寻路支持

  • 打开项目设置(Project Settings),导航到Navigation > Detour Crowd;
  • 勾选bUse3DPathfinding选项(UE5版本),或对应版本的“启用3D寻路”开关,让系统识别并处理Z轴高度变化。

2. 调整Nav Link与导航代理设置

  • 选中场景中的Nav Link,在细节面板确保:
    • 勾选bAllowVerticalMovement,明确允许垂直方向的过渡;
    • Link Direction设置为正确的通行方向(双向或单向);
  • 在Pawn的Nav Agent Properties中,确保Agent Height和Radius参数与Pawn实际尺寸匹配,避免导航系统因碰撞判断过滤垂直路径。

3. 修正FloatingPawnMovementComponent配置

  • 打开Pawn的FloatingPawnMovementComponent细节面板:
    • 将bConstrainToPlane设为false,取消XY平面移动限制;
    • 确保Max Speed和Acceleration的数值足够支持垂直方向的移动(比如设置Z轴的加速度与XY轴一致);
    • 关闭bAllowPhysicsRotation(若无需物理驱动旋转),避免旋转逻辑干扰垂直移动。

4. 自定义DetourCrowdAIController的移动逻辑

  • 重写DetourCrowdAIController的路径跟随逻辑:
    • 在蓝图中监听OnMoveToCompleted事件,当检测到当前路径包含Nav Link时,获取Nav Link终点的Z坐标;
    • 通过Add Movement Input节点,向Z轴方向添加对应输入,或直接设置Pawn的Velocity的Z分量,驱动Pawn向目标高度移动;
    • 示例逻辑:当Pawn距离Nav Link起点小于设定阈值时,计算终点与当前位置的Z轴差值,设置垂直移动速度为差值 / 预计移动时间,确保Pawn能到达目标高度。

内容的提问来源于stack exchange,提问作者Valar Morghulis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:55:27