本文描述的转向行为概念是在前一节运动学算法的基础上扩展增加了速度和旋转,在某些类型中,比如驾驶游戏,转向行为占主导地位;在其他类型的游戏中,它们更依赖于具体游戏内容:有些角色可能需要它们,有些角色则不需要。
现有的各种转向行为算法,命名往往含糊不清或互相冲突。随着这一领域的发展,还没有出现明确的命名方案来区分单个原子转向行为和将多个原子转向行为结合在一起的复合行为。在这本文中,我将区分这两种行为:基本行为和由基本行为组成的复合行为。
虽然在各种论文和代码样本中有大量的转向行为命名,但其中大多是一个或两个主题的变种,我们不打算把所有的行为都分类,也很难做到涵盖所有行为。取而代之,我会先提取出这些行为算法的基本通用结构,然后再看一些具有不寻常特征的特例。
一、转向基础
总的来说,大多数转向行为具有类似的结构:以正在运动的角色的运动学状态和有限数量的目标信息作为输入。其中,目标信息取决于具体应用,比如对于追逐或逃避行为,目标通常是另一个移动的角色;再比如避障行为时的寻路算法,目标就是指定路径。
转向行为的输入集并不总是以对 AI 友好的格式提供,比如,避障行为需要获取关卡的障碍信息,这可能是一个昂贵的过程:使用射线检测或试着在关卡中移动来检查角色预期的移动。
还有许多转向行为是对一组目标进行操作。例如,著名的群体行为(flocking behavior)算法中涉及到向群体的平均位置移动,这可能涉及到对整个集合的属性进行平均,例如,寻找它们的质心;或者可能涉及到对它们进行排序或搜索,例如远离最近的捕食者或避免撞上其他在碰撞轨道上的角色。
注意,转向行为并不是试图做所有的事情。在追逐一个角色时,没有躲避障碍的行为。每个算法只做一件事,只接受所需的输入。为了得到更复杂的行为,我们需要使用算法来组成多个转向行为,并使它们一起运作。
二、变量匹配
最简单的转向行为试图匹配字符的一个或多个元素的运动学单一目标运动学。
例如,我们可能会尝试匹配目标的位置,而不考虑其他元素。这包括向目标位置加速和在接近目标位置时减速。或者

本文详细探讨了游戏AI中的转向行为,包括转向基础、变量匹配、追逐和逃跑以及到达。追逐行为旨在匹配目标的位置,而逃跑则是远离目标。动态追逐通过加速向目标移动,到达行为则需要减速以精准抵达目标。文章通过伪代码解释了这些行为的实现,并讨论了性能和实现注意事项。
最低0.47元/天 解锁文章
604

被折叠的 条评论
为什么被折叠?



