导航
路径规划背后的问题和克诺索斯迷宫一样古老:我如何从点A到点B,使用最短的路线并避开所有中间的障碍物?
已经开发了许多解决路径规划问题的算法,包括与A*算法相关的算法,该算法首次出现在20世纪60年代的计算机科学中(第2部分)。
路径规划例程是许多视频游戏的典型组成部分,非玩家角色(NPC)的任务是在游戏地图上找到最佳路径,这些地图可能会不断变化。例如,通道、门或门可以在游戏过程中改变其状态。
在路径规划方面有很多问题,不幸的是,没有一刀切的解决方案。这是因为每个问题都会有自己的解决方案,具体取决于问题的类型。不仅如此,它还将取决于您正在开发的游戏类型。例如,AI的最终目的地是一个静态建筑(固定)还是他们需要跳上一个浮动的筏子(动态)?你还需要考虑地形——它是平坦的还是岩石的,等等?为了增加一层复杂性,我们还需要考虑是否存在障碍物,以及这些物体是静态的(消防栓)还是可以移动的(例如,盒子)。然后,我们需要考虑实际的路径本身。例如,沿着道路行驶可能更容易,但穿过屋顶会让你更快地到达目的地。按照同样的思路,AI甚至可能没有一个最终目的地,在他们不需要去某个特定地方的意义上。例如,他们可能只是一个村庄的一部分,四处游荡。然而,我只强调了与路径规划相关的一些问题和考虑因素。当你遇到使用路径规划的不同情况时,你可能会遇到其他问题。请耐心等待,并考虑我在这里提到的所有变量以及你特定情况下的其他变量。
幸运的是,Unreal 提供了一个可以用于最常见情况的导航系统。因此,我们不需要从头开始重新实现所有功能。本章的主要目标是确保您了解如何使用它,并确保您对如何扩展它有一些了解。 在本章中,我们将涵盖以下主题:
从导航系统中期待什么
Unreal 导航系统及其工作原理
如何为关卡生成导航网格及其可用设置
如何通过以下方式修改导航网格:
导航区域,用于更改与导航网格一部分相关的权重
导航链接,用于连接导航网格的两部分,否则这两部分会被分开
导航过滤器,用于在导航系统上执行特定查询时对导航网格进行微小更改
让我们开始吧!
最后更新于