A* Pathfinding Project 3.1.4 RVO的使用
大家好!今天想给大家安利一个避开agent的方法。性能也是棒棒哒!其实自己之前也写过避开agent的算法,但使用了大量的射线,其实在agent数量比较少的情况下效果还不错,但面临大量agent时,射线这个方法就不适用了。这也促使我去寻找更好的解决方案,这不,RVO(Reciprocal Velocity Obstacles),之前百度发现关于它的介绍并不多,后面有找到关于这个算法的论文,本来打算看完实现一下,后面感觉一堆堆英文,一堆堆公式,有点可怕,现在又有点赶进度,所以就想要找更方便的方法了。后面发现A*寻路插件里面有RVO算法可以直接拿来使用,所以就偷懒啦!
在这里,我把官方文档给翻译过来,有需要的小伙伴们看过来哦!这里虽然写的是3.1.4版本的,但就RVO这一部分,基本含有RVO的A*插件使用RVO的方法都是类似的,只是A*插件之前由于一些版权的问题没有使用RVO,直到后续版本才可以使用,而且必须是专业版,大家需要的话就在CSDN上面搜索下载,例如3.6.0版本的,以及4.1.16版本的。后面我会把在unity里面调用的方法整理分享,感兴趣的欢迎戳哈!
局部避免
(说明:因为A* Pathfinding Project是一个可以直接放在unity中使用的插件,本文就将其保留为英文,不做翻译,把它理解成一个插件就可以啦。)
如何使用A* Pathfinding Project中的局部避免。
基于RVO的A* Pathfinding Project包含局部避免-相互速度障碍(Reciprocal Velocity Obstacles)和ORCA-最佳相互避免碰撞(Optimal Reciprocal Collision Avoidance)。它本身很大程度上基于RVO2库,但已经扩展了很多功能来处理不同级别的agent(例如,建筑物中不同楼层的agent不应该发生碰撞)。
A*专业版本的功能:
这是A* Pathfinding Project专业版本特有的功能。它拥有的函数/类/变量在免费版本的A* Pathfinding Project中可能没有,免费版本的功能也可能是有限的。
您可以点击这里进行购买
如果想要获得更深入的信息,请点击这里:Writing RVO Colliders