Ue4如何构建多层导航

我们需要在场景中,布置多层导航,比如道路是一层,桥梁是一层。请问UE4如何设置多层导航

我按照你的做法,增加了二个 Supported Agent,命名为Default和walk,但是在NavMeshBoundsVolume里面Supported Agents将Default勾掉之后,就没有生成导航数据了。资料太少了,实在是搞不懂UE4导航到底怎么操作这个界面,麻烦您讲解一下,到底怎么回事。
alt text

首先想到的是可以用编辑器的项目设置中开启 NavMesh 的 Supported Agent 来实现。但这里的问题就变成了,你们是如何来区分什么地方是道路,什么地方是桥梁。

我在最新的版本上试了一下 Support Agent,好象是有点 BUG。多个 Support Agent 设置后,同一个 NavMeshBoundsVolume 在 Build Path 之后会为 Agent 生辰对应的 RecastNavMesh-AgentName,每个 RecastNavMesh 属性里面都可以勾选是否要 Draw。

另外,刚才有一位同事也看到了这个问题,提供了另外一种方法,可以使用 NavArea 配合 NavModifierVolume 来工作。

其实无论是 NavModifierVolume+NavArea 还是 NavMeshBoundsVolume+Agent,最终的寻路数据都是和 AI 逻辑强关联的。我不是很肯定对你希望的数据导出是否有用。无论怎样你都要详细去跟一下这块相关的代码逻辑才能对你导出的数据格式有帮助。

这块我也要再多试一下,并不能讲解太多。我们源码也都在那里,最有效的方式是一边讨论一边自己跟代码。也许您自己看还比我看的更快一些 :slight_smile:

那个 SupportAgent 只是个 Editor 显示的 BUG。我来详述一下流程:

  1. 打开编辑器,在编辑器的项目设置中填写你们希望的 Agent 信息。假设有 AgentA,AgentB,AgentC
  2. 在关卡中放置一个 NavMeshBoundsVolume
  3. 在该 NavMeshBoundsVolume 中确认 Support Agent 都勾选了三个 Agent
  4. Build Path
  5. 完成 BuildPath 后,你应该会看到在世界大纲视图中多了几个东西,分别是 RecastNavMesh-AgentA, RecastNavMesh-AgentB, RecastNavMesh-AgentC
  6. 分别选这几个 RecastNavMesh,他们都有各自的 enable draw。
  7. 这里我手上的版本发现一个bug是draw出来的颜色不是项目设置中设定的颜色。。。我要再确认一下。

当使用多个 NavMeshBoundsVolume 的时候,也可以对 Support Agent 做设置。但这个功能主要是为了在同一区域build出面想不通的AI的寻路数据,比如有些AI需要更宽的路,有些AI可以游泳等。那么就可以设计不同的Agent来获取同一区域表面不同的寻路数据信息。

非常感谢,至少我知道它是个BUG,明天我就从源码开始入手,查看为什么少生成一个RecastNavMesh。我们项目组还遇到一个问题,如果您有时间的话,帮忙回答一下,我们可能需要一个官方的解决方案吧。自己虽然也试了一下,但是感觉有很多问题。 https://answers.unrealengine.com/questions/454788/做mmorpg游戏进行关卡切换主角销毁的问题.html

我刚刚也试了一下,在4.11.2版本里面,只要把Agent 信息的名字不是Default,就可以生成二个RecastNavMesh,而且显示也是正常的。顺便说一下,这个网站上传图片真的很有问题,我好几次上传图片都无法跳转到确认界面。

今天早上打开工程,发现导航又不正确了,又按照昨天的步骤试了一下,发现已经无法生成二个RecastNavMesh(我定义了二个Supported Agents),通过界面看,很明显是UE4删除了一个RecastNavMesh。这个多层导航的BUG,是不是你在4.12上没有出现?

Placehode Answer. Seems this thread is done with the comments.