关于rvo2混乱的问题,劳烦各位大佬给看一下

我用a*算出了从起点到目标的最佳路径。就是图里的红框路径。然后给小球增加了rvo2动态避障,给墙壁(绿色部分),也增加了速度为0的动态避障。只有一个小球的时候,小球行走是正常的,但是小球一多,就出现问题了。有的走着走着像脱缰的野马,一根筋跑到了地图外。有的像是被困住的小可怜,在墙壁里走,然后碰到墙壁就停下了。只有极少数能正常到达指定位置。各位给看下哪里出了问题,是我动态避障的参数不对吗?

image image

应该有addObstacle函数吧,墙壁理论上是用这个添加

我尝试着加了一下,虽然效果不一样了,但是依旧不是正确的效果。

脱缰野马的球是不是因为最终的目标点没有重设回A星的路径点或者最终的目标点。这种直直走出去了,应该就是这个问题吧。

可是路径为什么会被改变呢?按照我的理解,rvo只负责避障不负责规划路径吧

避开之后有没有将小球的目标方向改回来?应该有个targetVelocity变量吧?

这种不太适合纯粹用rvo,可以考虑rts中的流场寻路,或者自己实现一套刚体+排斥力的做法。

用流场寻路吧

1赞

厉害厉害!

这种是怎么实现的啊

就是流场寻路+ RVO2 。

rvo2+流场寻路 移动端估计会发热很严重,传统的RTS部队寻路应该不是用的RVO2 大概率是动态排斥力的逻辑。可以考虑优化一下 挂出来卖钱哇 小哥。

不会发热严重,要是发热严重,那么RVO2也是发热严重的。因为流场寻路是整体的,不是单个的,只要计算一次就可以了,当然如果你更改目标点,还是要重新计算一次。

嗯 是的 还是看具体应用场景吧,地图非常庞大移动目标动态变化的话 流场要做非常多优化,但是移动过程中会比RVO要丝滑不少

大地图,分帧流场就可以大大的优化了。1帧的事情变成10帧。

做得很漂亮啊~!有开源或者上架商城吗?