游戏中的人工智能(PPT 27张)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

那么如何对集群技术进行简化呢?
• 以下将对如何对集群技术进行简化给出两 点方法: • 1.从群体初始化方面入手。
• 2.从群体运动方面入手。
• • • • •
参考资料: 《人工智能游戏编程真言--清华大学出版社》 《游戏开发中的人工智能--东南大学出版社》 《游戏设计概论—清华大学出版社》 参考网站:
砖块环境中的移动模式
• 非确定性方法(加入随机因素): 1、初始化路径数组,移动数组 2、用Bresenham线段算法计算不同的移动 模式 3、将模式标准化 4、设定前进速率,按照设定好的移动模式 移动,当到达线段的端点时检查移动数组, 以确定移动方向。
• 到目前为止,我们讨论的群聚规给大家留下了深 刻印象。然而,像这样的群聚行为如果在游戏中, 这些单位以群体形态移动式,还能避免撞上游戏 世界里的物体,那就更实用了。
• 实际上加入避开障碍物的行 为其实相当简单,我们所要 做的就是提供某种机制给那 些单位使用,让他们看到前 方,再施加适当的转向力, 使其避开路径中的障碍物。 • 首先,我们运算向量a,这 只是该单位和障碍物位置间 的差值,接着,取a和v的内 积,将a投射到v上,由此可 得向量p,把向量p减去向量 a,可得向量b,现在要测试 v是否和圆的某处相交,得
追随领头者
• 对基本群聚算法的修改不必只限于避开障碍物。 因为来自于各种规则的转向力都在同一变量中累 加,然后一次施加,以控制该单位的方向,所以, 我们还可以在考虑过的规则之上在叠加其他许多 有效的规则。
• 其中一条有趣的外加规则,就是跟随领头者规则。 如前所述,我们讨论的群聚规则是没有领头者的, 然而,如果我们把基本群聚算法和某些领头者AI 结合起来,就可以在游戏中使用群聚功能时,开 启许多新的可能效果。 • 如果我们在其中加入领头者,就能让群体的移动 更有目的性,或者看起来比较有智能。
Байду номын сангаас
• http://wenku.baidu.com/view/df809645be1e650e52ea998d. html • http://blog.csdn.net/nightelve/article/details/8982647
初始化
• 初始化智能体最简单的方法就是把它们从 幕后搬出来。
• 让集群智能体从天花板上落到玩家头上, 让它们从墙上漩涡式地钻出来,或者大群 智能体生物从深谷裂口中瀑布般地涌出来 (最好是在玩家占领的地盘上)都是最大 限度利用集群生物出场的方法。集群生物 也可以用“爆炸”的方式进入场景的某个 区域,当某个容器被破坏(如笼子)或者 被打开(如棺材)。 返回
如果智能体不是下落的,那么它的操纵方 式和运动方向根据它在内层区域或外层区 域分别按如下进行修正: • 外层区域:如果未到速度的最大值就增加 智能体速度。每个智能体的最大速度应该 不同。如果智能体的运动方向大致是正确 的,给这个智能体的y-rotation一个小小的 扰动否则就马上改变y-rotation,指向正确 方向。 返回 • 内层区域:按照智能体的速度改变它的
我们来看看一个实际例子:
另一种群聚方法——简化集群技 术
• Reynolds的群聚算法已经被很好地证明了, 而且在生成若干组智能体的逼真动作效果 非常好。但是,该算法在计算上的开销大, 尤其是在有大量智能体或者有复杂场景需 要探测的时候。因此,他们有时候不适合 实时的应用程序,比如电视游戏。 • 所以我们有必要对集群技术进一步的进行 简化。
• 为了分析我们这个群聚系统,我们需要理 解一些基本的概念: • 1, 单位的视野,我们以r为单位的视野半 径,以θ为视野角度,落在这个圆弧内的所 有物体都是可见的。 • 2, 避开规则(Avoidance rule),单位不 会被彼此撞上。 • 3, 凝聚规则,单位离得太远就应该靠近 一点,这个规则和避开规则合在一起,从 而形成了群聚。
运动
• 对每一个活动的智能体保存其当前的位置, 根据其速度和运动方向更新x,z坐标,并且 根据重力增加下落速度时修改其y坐标。计 算智能体的位置和目标对象的位置之间的 差异,给出x,y和z坐标的增量。再算出从 目标对象到智能体的相对夹角(angle) (atan(dz,dx)-agent->yrot)。如果智能体是 逃离目标对象(因为它的定时器timer大于 某个特定值),angle取负值。如果玩家在距 离智能体某个范围之内(用适当的距离检
Reynolds基本群聚算法核心
群体行为的核心是基本的群聚算法。 “单位”(unit)指代组成群体的个别实体。
• 凝聚:每个单位都往其临近单位的平均位 置行动。 • 对齐:每个单位行动时,都要把自己对齐 在其临近单位的平均方向上。
Reynolds基本群聚算法是没有领导核心的; 就 某种意义而言,它们都跟着整个群体移动。 每个单位都必须有行进的能力;每个单位都 必须知道其局部周围的情况,即邻近单位位 置、方向以及群体中与自身最靠近的单位之 间的距离。 在仿真物理环境中可以对仿真中的单位施加 转向 力使其改变方向;在砖块环境中可以采用视 线方
小组成员:xx
游戏中的人工智能——群聚
什么是群聚呢?
• 群聚,就是多个非玩家角色一起行动,而不 是个别行动。比如说:你看到的是一群大雁, 它们的飞行是有一定的规律,而且你完全可 以看出来它们会排成一字或者人字,不会是 乱糟糟的飞行。那么,我们在游戏中,诸如 巡逻小队之类的移动又是什么样的呢? • 1987年,Craig Reynolds发表了一篇名为 《Flocks,Herds and Schools: A Distributed Behavial Model》的论文,在这篇论文中,他 提出了基本的群聚算法模型,甚至可以这样
• 群聚算法在模拟少量或中等数量的生物的 自然行为时是完美的,尤其当这些生物的 运动(而不是生物和生物之间的影响、以 及生物和场景之间的互动)是主要的关注 焦点的游戏中(例如任天堂的Pikmin)。
• 但是,随着生物个数的增加,传统的群聚 算法开销越来越大。在群聚中每个智能体 必须检查其他所有智能体以确定是否因距 离太近而产生影响,在这种情况下,如果 存在n个智能体的场景,需要计算1/2(n²)次 独立的距离计算(给出中间的结果储存在 交互的数组里)。那么分离规则,队列规 则和聚合规则必须对每个智能体计算它附
相关文档
最新文档