是否有任何聚集的例子,羊群包围并与目标交战,而不是像鱼一样疯狂觅食,然后猛扑进去然后飞走?
我正在开发一个头顶射手,我希望这群近战敌人冲向敌人并包围他并继续攻击,同时更多的文件在后面。我试图避免它们都聚集在一个地方,并且聚集似乎很完美,但是所有“移动到目标”的例子都让它们移动到目标然后立即离开。
想法?
是否有任何聚集的例子,羊群包围并与目标交战,而不是像鱼一样疯狂觅食,然后猛扑进去然后飞走?
我正在开发一个头顶射手,我希望这群近战敌人冲向敌人并包围他并继续攻击,同时更多的文件在后面。我试图避免它们都聚集在一个地方,并且聚集似乎很完美,但是所有“移动到目标”的例子都让它们移动到目标然后立即离开。
想法?
据我了解,通用植绒是由以下加权平均值生成的:
计算这些向量有不同的方法,当它们被赋予不同的权重时,会产生不同的行为。还有不同的方法可以将组合的加权平均矢量与当前速度矢量相结合。
如果我没看错你的问题,你会希望你的羊群绕着一个中心点转圈或飞来飞去。为此,您创建了第四个向量,即
现在,您可能会看到这是怎么回事……您的羊群的行为是放置在每个向量上的权重的结果。如果你对目标向量的权重相对于其他向量太小,你的羊群将专注于聚集而不是攻击。
因此,假设我已经正确地概述了植绒,并且您已经以合理的方式对事物进行了编程,那么您将想要尝试不同的权重组合,直到找到适合您需要的行为。
制作一个加权函数,该函数将您想要靠近的猎物的距离设为容易从远处攻击,靠近 x 最近的盟友的成本以及离猎物太近的高成本。
如果您正确平衡事物,它应该在最佳距离处围绕目标产生一个漂亮的圆圈。然后,当更多人到达时,最近的人会稍微靠近目标(取决于参数),其余的羊群将平均形成在攻击者的初始线周围。只需添加一些随机性,这样它就不会看起来像一个编排,它应该会产生你正在寻找的那种植绒。
PS。您可能需要指数成本因子而不是线性成本因子。
一种方法是对攻击者的“力量”进行建模,并从粒子模拟中借用一些技术。如果攻击者被目标吸引,这种行为可以被模拟为“重力”或吸引力。
您还想阻止聚束。这通常在使用弹簧的粒子模拟(或计算机视觉中的活动轮廓/蛇)中完成。模拟连接两个附近攻击者的弹簧。如果攻击者之间的距离大于弹簧的静止长度,则产生吸引力。当攻击者彼此靠得太近(即比静止长度短)时,两个攻击者之间会产生排斥力。
这是弹簧模拟的链接(使用C代码等)。 这个PowerPoint演示文稿是对物理模拟的合理讨论。
将这些方法应用于生物(偶尔会在力计算中加入一些随机噪声以实现真实感),您应该会看到具有“反聚束”特性的植绒行为。您可以权衡各自的吸引力和排斥力,以调节攻击者追逐目标的强度以及他们相互避开的程度。