论文部分内容阅读
近几年来,由于游戏产品市场的激烈竞争,对游戏新技术的要求越来越高。人工智能,作为能够让构建出的虚拟角色更加聪明,更加智能化的技术,随着游戏产业的发展,越来越受到业界和学界的重视。其中,寻路系统是当今游戏和路径导航系统等领域的基础和重要组成部分。对于游戏中的复杂场景出现的各种实际问题,本文探讨了在连续的二维空间内,以多边形构成的场景中,多智能体角色在不发生相互重叠的前提下的整个寻路系统的构架与实现,主要研究内容包括以下几个方面:(1)在进行场景分析并生成可见点方面,提出了基于形态学膨胀的障碍附近可见点生成算法,具有计算量较小,便于局部修改的特点;并提出了另一种基于圆柱体的可见点生成算法,来生成连通性更好的可见点集合;(2)在寻路过程中的相关算法方面,介绍了一种基于向量乘积的两线段相交判断的方法,并提出了可见性图结构缓存的生成方法和具体阐述了基于该结构的A*寻路算法过程;(3)用智能体中具有旋转不变性的包围圆作为研究对象,来探讨它们的碰撞检测算法,在绕行中避免智能体相互重叠方面,依据两圆之间位置关系与接近和远离的检测,提出了改进的前向预防碰撞检测方法,提升了数值健壮性;在绕行中避免与多边形障碍发生碰撞方面,提出了对场景中的各个多边形以给定的单位半径进行预膨胀的方法,从而可以用点是否在膨胀后多边形内的条件,来判断是否发生碰撞;(4)对于包围圆形式的多智能体的绕行,提出了整个群体下时间复杂度为O(n2)的,对单个智能体、多个智能体的绕行算法,以及对多智能体的提前绕行算法,并能够逐步明显地起到了总体接近目标的效果,同时保证了计算的实时性;(5)在绕行算法与基于可见点的A*寻路算法的结合方面,提出了一种对可见点的范围判断方法,让单位不至于过分接近可见点,从而提升了多个智能体通过可见点的速度,改善了寻路效果,并让单位在碰到场景中的障碍时作另外的寻路。本文的创新之处主要在于提出了两种不同的可见点生成算法,减少了游戏关卡制作者的工作量;以及提出了多种绕行算法,来不断调整智能体单位的阵型,从而可以在保证了性能的前提下,更好地接近目标。此外在其他方面也做出了一些优化和改进。