游戏中的人工智能--群聚概述.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
游戏中的人工智能--群聚概述

人工智能;游戏中的人工智能——群聚;什么是群聚呢?;Reynolds基本群聚算法核心;Reynolds基本群聚算法是没有领导核心的;就 某种意义而言,它们都跟着整个群体移动。 每个单位都必须有行进的能力;每个单位都 必须知道其局部周围的情况,即邻近单位位 置、方向以及群体中与自身最靠近的单位之 间的距离。 在仿真物理环境中可以对仿真中的单位施加转向 力使其改变方向;在砖块环境中可以采用视线方 法让单位改变方向或朝特定点移动。;为了分析我们这个群聚系统,我们需要理解一些基本的概念: 1,??单位的视野,我们以r为单位的视野半径,以θ为视野角度,落在这个圆弧内的所有物体都是可见的。 2,??避开规则(Avoidance rule),单位不会被彼此撞上。 3,??凝聚规则,单位离得太远就应该靠近一点,这个规则和避开规则合在一起,从而形成了群聚。;砖块环境中的移动模式;到目前为止,我们讨论的群聚规给大家留下了深刻印象。然而,像这样的群聚行为如果在游戏中,这些单位以群体形态移动式,还能避免撞上游戏世界里的物体,那就更实用了。 ;实际上加入避开障碍物的行为其实相当简单,我们所要做的就是提供某种机制给那些单位使用,让他们看到前方,再施加适当的转向力,使其避开路径中的障碍物。 首先,我们运算向量a,这只是该单位和障碍物位置间的差值,接着,取a和v的内积,将a投射到v上,由此可得向量p,把向量p减去向量a,可得向量b,现在要测试v是否和圆的某处相交,得测试两种情况。1.p的数值必须小于v的数值。2.b的数值必须小于该障碍物的半径r。如果两者都是如此,则需要校正转向力,否则,该单位可继续沿当前方向前进。;追随领头者;我们来看看一个实际例子:;另一种群聚方法——简化集群技术;群聚算法在模拟少量或中等数量的生物的自然行为时是完美的,尤其当这些生物的运动(而不是生物和生物之间的影响、以及生物和场景之间的互动)是主要的关注焦点的游戏中(例如任天堂的Pikmin)。 但是,随着生物个数的增加,传统的群聚算法开销越来越大。在群聚中每个智能体必须检查其他所有智能体以确定是否因距离太???而产生影响,在这种情况下,如果存在n个智能体的场景,需要计算1/2(n2)次独立的距离计算(给出中间的结果储存在交互的数组里)。那么分离规则,队列规则和聚合规则必须对每个智能体计算它附近的每个智能体。另一方面,因为影响是相互的,所以保存中间结果可以使计算量减半。;那么如何对集群技术进行简化呢?;参考资料: 《人工智能游戏编程真言--清华大学出版社》 《游戏开发中的人工智能--东南大学出版社》 《游戏设计概论—清华大学出版社》 参考网站: /view/df809645be1e650e52ea998d.html /nightelve/article/details/8982647 ;初始化;运动; 如果智能体不是下落的,那么它的操纵方式和运动方向根据它在内层区域或外层区域分别按如下进行修正: 外层区域:如果未到速度的最大值就增加智能体速度。每个智能体的最大速度应该不同。如果智能体的运动方向大致是正确的,给这个智能体的y-rotation一个小小的扰动否则就马上改变y-rotation,指向正确方向。 内层区域:按照智能体的速度改变它的 y-rotation,并且按照它的angle改变它的速度。这些改变背后方程组的本质确定了集群生物在目标对象周围运动的形式。;Bresenham直线算法;;凝聚;凝聚;对齐;我们可以利用???个单位的速度向量求出其方向。把每个单位的速度向量,换算成单位向量,就可以得出其方位向量。上面收集邻近单位方向数据的过程,那一行Vave+=Units[j].vVelocity;会把每个邻近单位的速度向量累加在Vave中,其做法类似于Pave累加位置过程。;分隔

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档