游戏开发中的人工智能4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FACULTY OF SOFTWARE
游戏开发中的人工智能
--------群聚
1
FACULTY OF SOFTWARE
群聚
基本群聚 群聚实例 避开障碍物 跟随领头者
2
FACULTY OF SOFTWARE
群聚
群体行为的核心是基本的群聚算法。 本章用“单位”(unit)指代组成群体的个别 实体。
3
FACULTY OF SOFTWARE
基本群聚
Reynolds基本群聚算法核心:凝聚规则、对 齐规则、分隔规则。 凝聚规则:每个单位都往其邻近单位的平均 位置行动。 对齐规则:每个单位行动时,都要把自己对 齐在其邻近单位的平均方向上。 分隔规则:每个单位行动时,要避免撞上其 邻近单位。
4
FACULTY OF SOFTWARE
FACULTY OF SOFTWARE
7
FACULTY OF SOFTWARE
有限视野
狭窄视野
8
FACULTY OF SOFTWARE
4-2宽(270度)、窄(45度)视野的队形
9
FACULTY OF SOFTWARE
群聚实例
行进模式:每个单位视为刚体,在该单位的前端 左侧或右侧施加转向力。转向力的大小是所有规 则应用后的所得的累加值。必须确保不是单一规 则主导一切,即要做好两方面的工作。首先,要 调控好每条规则所贡献的转向力;其次,要调整 行进模式,以确保每个单位都获得平衡。 邻近单位:邻近单位多少的是由视野角度及视野 半径为参数的函数。由于群体中的单位位置会随 时变动,因此,游戏循环每运行一轮,每个单位 都必须更新其视野。当单位数量增加时,邻近单 位搜索将十分耗费运算资源。
5
FACULTY OF SOFTWARE
砖块环境中的移动模组,移动数组 2、用Bresenham线段算法计算不同的移动 模式 3、将模式标准化 4、设定前进速率,按照设定好的移动模式 移动,当到达线段的端点时检查移动数组, 以确定移动方向。
6
4-1单位的视野(宽广视野)
基本群聚
Reynolds基本群聚算法是没有领导核心的; 就某种意义而言,它们都跟着整个群体移动。 每个单位都必须有行进的能力;每个单位都 必须知道其局部周围的情况,即邻近单位位 置、方向以及群体中与自身最靠近的单位之 间的距离。 在仿真物理环境中可以对仿真中的单位施加 转向力使其改变方向;在砖块环境中可以采 用视线方法让单位改变方向或朝特定点移动。
11
FACULTY OF SOFTWARE
避开障碍物
算法思路: 替每 个单位在前方安装 虚拟触角(feeler), 当触角碰到东西, 则需要转向。在3D 游戏中可以用虚拟 的体积代替。
12
FACULTY OF SOFTWARE
跟随领头者
用某些简单规则建立领头者 让领头者完成某些预订模式
13
10
FACULTY OF SOFTWARE
群聚实例
凝聚:让每个单位都呆在同一个群体中。即 每个单位都应该朝其邻近单位的平均位置 (各个位置的向量总和除以总邻近单位数) 前进。 对齐:让群聚中的所有单位都大致朝相同的 方向前进。每个单位应在行进时,试着以等 同于其邻近单位平均方向的方向前进。 分隔:让每个单位彼此间保持最小距离。
游戏开发中的人工智能
--------群聚
1
FACULTY OF SOFTWARE
群聚
基本群聚 群聚实例 避开障碍物 跟随领头者
2
FACULTY OF SOFTWARE
群聚
群体行为的核心是基本的群聚算法。 本章用“单位”(unit)指代组成群体的个别 实体。
3
FACULTY OF SOFTWARE
基本群聚
Reynolds基本群聚算法核心:凝聚规则、对 齐规则、分隔规则。 凝聚规则:每个单位都往其邻近单位的平均 位置行动。 对齐规则:每个单位行动时,都要把自己对 齐在其邻近单位的平均方向上。 分隔规则:每个单位行动时,要避免撞上其 邻近单位。
4
FACULTY OF SOFTWARE
FACULTY OF SOFTWARE
7
FACULTY OF SOFTWARE
有限视野
狭窄视野
8
FACULTY OF SOFTWARE
4-2宽(270度)、窄(45度)视野的队形
9
FACULTY OF SOFTWARE
群聚实例
行进模式:每个单位视为刚体,在该单位的前端 左侧或右侧施加转向力。转向力的大小是所有规 则应用后的所得的累加值。必须确保不是单一规 则主导一切,即要做好两方面的工作。首先,要 调控好每条规则所贡献的转向力;其次,要调整 行进模式,以确保每个单位都获得平衡。 邻近单位:邻近单位多少的是由视野角度及视野 半径为参数的函数。由于群体中的单位位置会随 时变动,因此,游戏循环每运行一轮,每个单位 都必须更新其视野。当单位数量增加时,邻近单 位搜索将十分耗费运算资源。
5
FACULTY OF SOFTWARE
砖块环境中的移动模组,移动数组 2、用Bresenham线段算法计算不同的移动 模式 3、将模式标准化 4、设定前进速率,按照设定好的移动模式 移动,当到达线段的端点时检查移动数组, 以确定移动方向。
6
4-1单位的视野(宽广视野)
基本群聚
Reynolds基本群聚算法是没有领导核心的; 就某种意义而言,它们都跟着整个群体移动。 每个单位都必须有行进的能力;每个单位都 必须知道其局部周围的情况,即邻近单位位 置、方向以及群体中与自身最靠近的单位之 间的距离。 在仿真物理环境中可以对仿真中的单位施加 转向力使其改变方向;在砖块环境中可以采 用视线方法让单位改变方向或朝特定点移动。
11
FACULTY OF SOFTWARE
避开障碍物
算法思路: 替每 个单位在前方安装 虚拟触角(feeler), 当触角碰到东西, 则需要转向。在3D 游戏中可以用虚拟 的体积代替。
12
FACULTY OF SOFTWARE
跟随领头者
用某些简单规则建立领头者 让领头者完成某些预订模式
13
10
FACULTY OF SOFTWARE
群聚实例
凝聚:让每个单位都呆在同一个群体中。即 每个单位都应该朝其邻近单位的平均位置 (各个位置的向量总和除以总邻近单位数) 前进。 对齐:让群聚中的所有单位都大致朝相同的 方向前进。每个单位应在行进时,试着以等 同于其邻近单位平均方向的方向前进。 分隔:让每个单位彼此间保持最小距离。