Unity3D人工智能架构模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Unity3D是近几年非常流行的一个3D游戏开发引擎,已经成为手
机游戏主要的开发工具之一。该引擎也可以用于计算机虚拟现实领域
的开发工作,比如模拟飞行、模拟射击、模拟驾驶等。手机(或其他
平台)中的游戏逐渐高档化、复杂化,游戏角色需要具有更高的“智
能”,特别是在大型三维网络游戏中,AI(人工智能)的开发占有重
要的比例。游戏中角色的AI水平直接决定着游戏的惊险性、刺激性、
趣味性,优秀的游戏会使人玩不释手。
本书的核心是采用Unity3D游戏引擎,使用C#脚本编程来实现这类
智能任务。
人工智能(Artificial Intelligence,简称AI),是指由人工制造出来
的系统所表现出来的模拟人类的智能活动,通常也指通过计算机实现
的这类智能。在游戏中,对于AI,应该关注的问题是如何让游戏角色
能像人或动物那样“感知”、“思考”和”行动”,让游戏中的角色看
上去像具有真实的人或动物的反应。
本书用“AI角色”来表示游戏中由计算机控制,具有一定智能的
非玩家角色。
事实上,对于游戏中的AI角色,可以认为它们一直处于感知
(Sense)→思考(Think)→行动(Act)的循环中。
感知:是AI角色与游戏世界的接口,负责在游戏运行过程中不
●●断感知周围环境,读取游戏状态和数据,为思考和决策收集信
息。例如,是否有敌人接近等。
思考:利用感知的结果选择行为,在多种可能性之间切换。例
●●如,战斗还是逃跑?躲到哪里?一般说来,这是决策系统的任
务,有时也可能简单地与感知合二为一。
第1章
Unity3D人工智能架构模型
2Unity3D人工智能编程精粹
行动:发出命令、更新状态、寻路、播放声音动画,也包括生命值减少等。这是运动●●系统、动画系统和物理系统的任务,而动画和物理系统由游戏引擎提供支持。
多年以来,从街机游戏《PaC Man(吃豆人)》中的小魔鬼到《使命召唤:现代战争3》、《光晕》等,AI给无数的游戏角色赋予了鲜活的生命力。
1. 决策系统中的“有限状态机”技术
《PaC Man》(见图1.1)游戏中的AI或许
是很多玩家曾经见过的最早的AI角色,该游
戏中的敌人角色能和玩家作对,在关卡中像
玩家一样移动,给玩家留下了深刻的印象。
《PaC Man》采用了非常简单的“有限状
态机”技术。在游戏中,每个小魔鬼都处于
追逐PaC Man或当PaC Man长大后被小魔鬼追
逐而逃跑的状态中。对于每个状态,小魔鬼
在交叉点处都会采用半随机的方式选择移动
路线。在追逐模式下,每个小魔鬼都有不同
的概率追逐PaC Man;在逃跑模式下,它们或
者选择以最快速度跑开,或者选择一个随机的方向移动。
《PaC Man》之后很久一段时间,AI游戏的开发几乎是在原地踏步,直到1990年代中期,AI又开始成为游戏的热点,一些游戏的宣传中甚至特别提到了AI来做为卖点。
有限状态机技术是最早产生的AI技术,时至今日依然有着强大的生命力,是AI中应用最为广泛的技术之一。同时,行为树技术也得到了越来越广泛的应用。
2. 潜行类游戏中的感知技术
在现代游戏中,感知与触发技术的使用十分普遍,它们会为玩家带来更加逼真的游戏体
验。尤其是在潜行类游戏中,感知系统是最
为重要的部分之一。
1997年的《G o l d e n e y e 007(黄金眼
007)》游戏中,尽管采用了只包含少量状态
的角色,但是加入了一个AI感知系统,使游
戏中的角色能够看到他们的同伴,如果同伴
被杀死,他就会感知并调整自身行为。1998
年的《Thief:The Dark Project》和《Metal
Gear Solid(合金装备)》(见图1.2)游戏
中,引入了更加强大的AI感知,大大提升了
游戏体验。
图1.1
《PaC Man》游戏截图图1.2 《Metal Gear Solid》游戏截图
3
第1章 Unity3D人工智能架构模型3. 运动系统中的自主移动与编队移动技术——“操控行为”与“A*寻路”技术
1994年,一款经典的即时战略游戏《星
际争霸》(见图1.3)横空出世,在很短的
时间里盖过了C&C系列的风头,成为RTS
(Real-Time Strategy Game,即时战略游戏)
游戏的新潮流,并且这股潮流一卷就是十
几年。在玩家非常熟悉的《星际争霸》游戏
中,广泛使用了寻路技术与战场上士兵的编
队移动,而《星际争霸2》中采用了第2章将
介绍的群体操控行为。
时至今日,群体操控行为依然是游戏中
最广泛采用的群体模拟技术,而A*寻路则是
应用最为广泛的寻路算法。1.1 游戏AI的架构模型
尽管每种游戏需要的AI技术都有所不同,但绝大多数现代游戏中对AI的需求都可以用三种基本能力来概括。
运动:移动角色的能力;
●●决策:做出决策的能力;
●●战略:战略战术思考的能力。
●●根据上面的需求,我们采用的AI架构模型如图1.4所示。在这个模型中,将AI任务划分为三个层级,分别为运动层、决策层和战略层。运动与决策层包含的算法是针对单个角色的,战略层是针对小队乃至更大规模群体的。在这三个层次
的周围,是与AI密切相关的其他部分:与游戏世界的接
口、动画系统、物理仿真系统等。
需要注意的是,这只是一种基本的AI架构模型。
实际中,根据游戏的种类和需求,可能会有所细化或增
删。例如,棋类游戏就只包含战略层,因为这种游戏中
的角色不需要自己做出决定,也不用考虑如何移动。而
其他许多非棋类游戏中,就不包含战略层,如平台游戏
中的角色,可能是纯反应型的,只需要每个角色自己做
出简单的决定,并且依此行动,而不需要角色之间的分
工协作。在另一些类型的游戏中,可能还需要对这三层
中的某层进行进一步细分,以满足更多的需求等。图1.3
《星际争霸》游戏截图
图1.4 通用的AI架构模型