游戏中的人工智能(一)

人工智能的本质:让计算机能够像生物体一样,具有思考和决定的能力来执行某些特定操作。

人工智能研究的三个主大类领域:

① 计算机视觉:

从视觉输入源获取信息并对它们进行分析,以执行特定操作。(ex:脸部识别、对象识别、光学字符识别)。

② 自然语言处理:

让机器能够像我们平常那样阅读和理解语言的能力。通过网络上大量可获取的数据集合,研究人员对语言进行自动分析。(ex:人工小冰、微软Cortana)。

③ 常识推理:

对一些常识问题进行推理。比如常识性知识我们人类可以通过理解某些问题再结合混合上下文、背景知识和语言能力让问题相互影响、相互作用得到答案,但是机器不行,而常识推理就是研究人员根据各种数据的处理并使机器综合分析然后推断答案的过程。

 

游戏中为什么要有人工智能?完善提高游戏的品质。

什么游戏有吸引力?具有挑战性的游戏一定好玩。

意味着:一个游戏不应该太过困难,让玩家没有击败对手的可能,也不应该让玩家轻而易举取得胜利。难度合适

所以,我们制作人工智能的目的不是复制人类或者其他动物的整个思维过程,而是通过让NPC对游戏世界不断变化的情形,产生对玩家来说足够合理、有意义的反应,让他们看起来更加智能。

 

游戏中的人工智能:

① 有限状态机

状态机:一组数量有限的可以相互转换的状态。

组成:状态(ex:站立、跳跃、奔跑、巡逻、攻击等)

转移:改变状态

规则:触发状态转移

事件:触发检查规则

通过if elseswitch就可以轻松的实现状态机


② 人工智能中的随机性和概率

意义:防止出现完美或者愚蠢的对手降低游戏的乐趣

随机的情况:

1、非故意:做出何种决定无关紧要,简单的做个随机决定即可
2、故意:防止完美或愚蠢的人工智能,所以用随机性增加可玩率


③ 感应器设定

作用:了解其周围的环境,以及与它们互相影响的游戏世界,以便做出某个特殊的决定。

1、轮寻:用if/elseswitch在简单的人工智能角色的FixedUpdate方法中进行检查,然后采取行动。(适用于没有太多事情需要检查的角色)

2、消息系统:决策响应世界中的事件。(对世界中的物体发出的所有信息都进行接收与检测,使监听者响应需要发生的事件)

一般游戏中的事件接收都是轮寻和消息系统一起使用的。


④ 群组、蜂拥和羊群效应

作用:实现整个组群的复杂的智能全局行为。

方法:为每个个体单位设定三个规则

分离:保持群体里每个个体的最短距离

队列:保持每个个体与周围个体的平均方向一致

凝聚:保证个体质量与组群的质量中心最短距离


⑤ 路径的跟随与引导

作用:使人工智能角色跟随一个粗略的引导路径进行跟随(适用于赛车的人工智能等)

包涵三个层次:

1、行动选择:策略,目标,计划

2、行为控制:路径确定

3、动作:关节动画


⑥ A*寻路算法

作用:使跟随玩家的角色或者怪物避开障碍到达指定地点

方法:把地图划分为N个网格,在网格中避开障碍物计算最短路径


⑦ 导航网格

作用:减少计算成本而使用的网格导航

方法:选出航点,并使人工智能角色经过航点到达目标点

缺点:更新障碍物后必须重新更新航点


⑧ 行为树

作用:把角色的所有活动划分为不同的任务,然后根据以下四个组件来使用

1、选择节点任务:去判断是否执行某任务,执行成功,任务完成并返回到父节点,任务失败则尝试兄弟节点的任务

2、顺序节点任务:从第一个节点任务开始,逐个执行,如果任务完成,继续执行下一个任务,失败返回上一级执行下一个任务

3、并行节点任务:同时执行所有的子任务

4、装饰节点任务:它只有一个子任务,但是可以改变其子任务的行为,比如是否运行这个子任务或者这个任务应该运行多少次等等。


⑨ 运动系统

作用:使用动物的骨骼、肌肉、关节和其他组织做出各种姿势完成各种事。

Unity自带的有一个运动扩展系统,这里不多做介绍。


⑩ Dijkstra算法(最短路径算法)

以其设计者的名字命名,是在不含权值为负的边的图中求最短路径的最著名的算法之一。

作用:从一个开始点找到目标节点的最短路径。但是,当这个算法找到最短路径后,却会继续运行寻找其他的路径,这会造成资源的浪费,所以在大多数游戏中都不是特别有效。

在人工智能需要对地图进行战术决策时,Dijkstra算法仍是一个重要算法。在其他领域也有很广泛的应用。

 

总结:

学术领域的人工智能能尝试解决真实世界中的问题,并需要在不消耗过多有限资源的情况下证明某个理论。

游戏领域的人工智能致力于在资源有限的条件下,构建对于玩家来说看上去很智能的NPC。游戏人工智能的目标就是提供一个挑战性的对手,让游戏玩起来更加的有趣。

猜你喜欢

转载自blog.csdn.net/qq_33575542/article/details/78555176