游戏中的人工智能_第1页
游戏中的人工智能_第2页
游戏中的人工智能_第3页
游戏中的人工智能_第4页
游戏中的人工智能_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人工智能小组成员: xx人工智能游戏中的的人工智智能群聚什么是群群聚呢?群聚,就就是多个个非玩家家角色一一起行动动,而不不是个别别行动。比如说说:你看看到的是是一群大大雁,它它们的飞飞行是有有一定的的规律,而且你你完全可可以看出出来它们们会排成成一字或或者人字字,不会会是乱糟糟糟的飞飞行。那那么,我我们在游游戏中,诸如巡巡逻小队队之类的的移动又又是什么么样的呢呢?1987年,CraigReynolds发表了一一篇名为为Flocks,HerdsandSchools:A Distributed Behavial Model的论文,在这篇篇论文中中,他提提出了基基本的群群聚算法法模型,甚至可可以这样

2、样说,后后续的一一系列群群聚算法法都有这这篇论文文的身影影。那么我们们来看看看CraigReynolds提到的boids类鸟群的的模拟群群体。在在这种类类鸟群里里面,是是没有有领导核核心,它它们都是是跟着群群体在走走,而这这个群体体似乎是是自己有有自己的的想法。Reynolds基本群聚聚算法核核心群体行为为的核心心是基本本的群聚聚算法。“单位”(unit)指代组组成群体体的个别别实体。凝聚:每个单单位都往往其临近近单位的的平均位位置行动动。对齐:每个单单位行动动时,都都要把自自己对齐齐在其临临近单位位的平均均方向上上。分隔:每个单单位行动动时,要要避免撞撞上其临临近单位位。Reynolds基本

3、群聚聚算法是是没有领导核心心的;就某种意义义而言,它们都都跟着整整个群体体移动。每个单位位都必须须有行进进的能力力;每个个单位都都必须知道道其局部部周围的的情况,即邻近近单位位位置、方向向以及群群体中与与自身最最靠近的的单位之之间的距离离。在仿真物物理环境境中可以以对仿真真中的单单位施加加转向力使其改改变方向向;在砖砖块环境境中可以以采用视视线方法让单位位改变方方向或朝朝特定点点移动。为了分析析我们这这个群聚聚系统,我们需需要理解解一些基基本的概概念:1,单位的视视野,我我们以r为单位的的视野半半径,以以为视野角角度,落落在这个个圆弧内内的所有有物体都都是可见见的。2,避开规则则(Avoida

4、ncerule),单位位不会被被彼此撞撞上。3,凝聚规则则,单位位离得太太远就应应该靠近近一点,这个规规则和避避开规则则合在一一起,从从而形成成了群聚聚。砖块环境境中的移移动模式式非确定性性方法(加入随随机因素素):1、初始化化路径数数组,移移动数组组2、用Bresenham线段算法法计算不不同的移移动模式式3、将模式式标准化化4、设定前前进速率率,按照照设定好好的移动动模式移移动,当当到达线线段的端端点时检检查移动动数组,以确定定移动方方向。到目前为为止,我我们讨论论的群聚聚规给大大家留下下了深刻刻印象。然而,像这样样的群聚聚行为如如果在游游戏中,这些单单位以群群体形态态移动式式,还能能避免

5、撞撞上游戏戏世界里里的物体体,那就就更实用用了。实际上加加入避开开障碍物物的行为为其实相相当简单单,我们们所要做做的就是是提供某某种机制制给那些些单位使使用,让让他们看看到前方方,再施施加适当当的转向向力,使使其避开开路径中中的障碍碍物。首先,我我们运算算向量a,这只是是该单位位和障碍碍物位置置间的差差值,接接着,取取a和v的内积,将a投射到v上,由此此可得向向量p,把向量量p减去向量量a,可得向向量b,现在要要测试v是否和圆圆的某处处相交,得测试试两种情情况。1.p的数值必必须小于于v的数值。2.b的数值必必须小于于该障碍碍物的半半径r。如果两两者都是是如此,则需要要校正转转向力,否则,该单

6、位位可继续续沿当前前方向前前进。追随领头头者对基本群群聚算法法的修改改不必只只限于避避开障碍碍物。因因为来自自于各种种规则的的转向力力都在同同一变量量中累加加,然后后一次施施加,以以控制该该单位的的方向,所以,我们还还可以在在考虑过过的规则则之上在在叠加其其他许多多有效的的规则。其中一条条有趣的的外加规规则,就就是跟随随领头者者规则。如前所所述,我我们讨论论的群聚聚规则是是没有领领头者的的,然而而,如果果我们把把基本群群聚算法法和某些些领头者者AI结合起来来,就可可以在游游戏中使使用群聚聚功能时时,开启启许多新新的可能能效果。如果我们们在其中中加入领领头者,就能让让群体的的移动更更有目的的性,

7、或或者看起起来比较较有智能能。我们来看看看一个个实际例例子:另一种群群聚方法法简化集群群技术Reynolds的群聚算算法已经经被很好好地证明明了,而而且在生生成若干干组智能能体的逼逼真动作作效果非非常好。但是,该算法法在计算算上的开开销大,尤其是是在有大大量智能能体或者者有复杂杂场景需需要探测测的时候候。因此此,他们们有时候候不适合合实时的的应用程程序,比比如电视视游戏。所以我们们有必要要对集群群技术进进一步的的进行简简化。群聚算法法在模拟拟少量或或中等数数量的生生物的自自然行为为时是完完美的,尤其当当这些生生物的运运动(而而不是生生物和生生物之间间的影响响、以及及生物和和场景之之间的互互动)

8、是是主要的的关注焦焦点的游游戏中(例如任任天堂的的Pikmin)。但是,随随着生物物个数的的增加,传统的的群聚算算法开销销越来越越大。在在群聚中中每个智智能体必必须检查查其他所所有智能能体以确确定是否否因距离离太近而而产生影影响,在在这种情情况下,如果存存在n个智能体体的场景景,需要要计算1/2(n)次独立的的距离计计算(给给出中间间的结果果储存在在交互的的数组里里)。那那么分离离规则,队列规规则和聚聚合规则则必须对对每个智智能体计计算它附附近的每每个智能能体。另另一方面面,因为为影响是是相互的的,所以以保存中中间结果果可以使使计算量量减半。那么如何何对集群群技术进进行简化化呢?以下将对对如何

9、对对集群技技术进行行简化给给出两点点方法:1.从群体初始化方面入手手。2.从群体运动方面入手手。参考资料料:人工智能能游戏编编程真言言-清华大学学出版社社游戏开发发中的人人工智能能-东南大学学出版社社游戏设计计概论清华大学学出版社社参考网站站:http:/ operator(重载运运算符)会替我我们做向向量加法法。DoUnitAI()找出出邻近单单位并收收集信息息后,就就可以使使用群聚聚规则了了。此段程序序第一件件事是检检查邻近近单位数数量是否否大于0.如果是,我们就就能继续续计算邻邻近单位位的平均均位置。做法是是以所有有邻近单单位位置置的向量量总和Pave除以邻近近单位数数量N。最后一行行就

10、是实实际计算算满足凝凝聚规则则的转向向力。凝聚基本上,累加在在FS.X的转向力力是当前前单位的的方向,以及其其邻近单单位平均均位置向向量间的的角度的的线性函函数,也也就是说说,如果果角度大大,则转转向力也也会相对对较大;如果角角度小,则转向向力也会会相对较较小。这这正是我我们想要要的。如如果当前前单位的的方向和和邻近单单位的平平均位置置的方向向相距很很远,我我们会想想让他做做大幅度度的转弯弯。如果果其方向向和邻近近单位平平均位置置的方向向不太远远,我们们只想对对其方向向做小范范围的修修正。返回对齐对齐意指指我们想想让群聚聚中的所所有单位位都大致致朝相同同方向前前进。为为了满足足这条规规则,每每

11、个单位位都应该该在行进进时,试试着以等等同其邻邻近单位位平均方方向的方方向来前前进。中间以粗粗线表示示单位是是沿着和和其相连连的粗箭箭头方向向进行的的。另外外和其相相连的虚虚线箭头头则代表表其邻近近单位的的平均方方向。因因此,就就此而言言,以粗粗线表示示的单位位必须朝朝右侧行行进。我们可以以利用每每个单位位的速度度向量求求出其方方向。把把每个单单位的速速度向量量,换算算成单位位向量,就可以以得出其其方位向向量。上上面收集集邻近单单位方向向数据的的过程,那一行行Vave+=Unitsj.vVelocity;会把每个个邻近单单位的速速度向量量累加在在Vave中,其做做法类似似于Pave累加位置置过

12、程。这段代码码计算了了每个单单位的对对齐转向向力。代代码几乎乎和上面面聚集差差聚集规规则一样样。此处处不再处处理邻近近单位的的平均位位置,而而是把Vave除以邻近近单位数数量N,先求出出当前单单位邻近近单位的的平均方方向。所所得结果果储存在在u中,并换换算成单单位向量量,则为为平均向向量。返回就此例而而言,转转向力是是当前单单位方向向,及其其邻近单单位平均均方向间间角度的的线性函函数。同同意的,只要当当前单位位的方向向,和其其邻近单单位的平平均方向向很接近近,则只只需稍微微作调整整。分隔分隔意指指我们想想让每个个单位彼彼此间保保持最小小距离,即使根根据凝聚聚和对齐齐规则,他们会会试着靠靠近一点点。我们们不想让让那些单单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论