游戏编程新⼿教程:怪物AI设计简述
王珂身高怪物AI应该说是这是⼀个程序问题,如果从策划的⾓度来说,作为设计者,则需要了解怪物AI整体的设计流程,这样才能提出⾃⼰的需求,从⽽让游戏战⽃的整体体验符合设计预期,毕竟怪物AI也是属于战⽃和体验的重要部分。
AI的设计,如果从程序⼝中说,可能会跳出诸如“⾏为树”“ 决策树”“有限状态机”之类的程序名词,听起来很专业有⽊有?但是策划没学过肿么办?不要急,我们先抛开这些程序名词,仅仅从策划设计⾓度来梳理⼀下怪物AI的策划设计。当然,如果理解有错误,希望⼤家指出,共同学习进步。
1、什么是怪物AI?
在策划意义上来说,怪物的AI实际上是⼀种交互体验,换句话说就是怪物或NPC等虚拟⾓⾊在⾯对玩家操纵的⾓⾊的时能够给出合适恰当反应。实际上,在游戏实际的设计中并不是⼀味地需求怪物的AI越⾼越好越真实越好。在游戏中,我们的⽬的是让玩家和怪物或NPC的交互能够产⽣⼀种近似真实的可对抗性,这种接近真实的对抗才是怪物AI设计的⽬的,这样才能吸引玩家去继续战⽃,甚⾄不断的提⽰⾃⼰的装备属性和能⼒,引⼊进⼀步的对抗。
怪物的弱⼩和强⼤,聪明和愚蠢其实都是设计的需求。
所以说,怪物的AI设计⽬的是期望和玩家的交互中可控的,平衡的以及具有诱导性的。
2、怪物的ai包括什么?
怪物的AI说⽩了就是多种状态之间的转换,这种转换是基于逻辑的,符合常理的逾期。
在怪物的状态则是基于怪物的特⾊本⾝来设定的。
我们以《暗⿊破坏神2》的骷髅怪AI为例:
在暗⿊2中,在这个⽂件中有aip1~aip8中这⼏列设定怪物的ai⾏为参数,暗⿊2的检定⽅式为随机数,即是以随机取⼀个0到100的数字来和表中的参数数字⽐较,如果⼩于或者等于该数值则视为检定成功,否则失败。
Skeleton (骷髅)
描述:骷髅战⼠是⼀个迟钝的AI,它发现敌⼈后会试图接近,有敌⼈在攻击范围内时则持续攻击,但是它经常会毫⽆理由的停⽌动作⼀段时间,站着发呆。
腾讯充值1.当⾁搏范围内没有敌⼈时,继续接近敌⼈的⼏率
2. par1,par3检定失败后等待的时间(单位:帧)
3. 当⾁搏范围内有敌⼈时,攻击敌⼈的⼏率
4. 攻击时,以A2代替A1的⼏率
5. n/a
6. n/a
7. n/a
七夕节怎么发朋友圈8. n/a
通过这⼏条我们可以看到在暗⿊2中骷髅的⾏为⽅式实际上⽐较简单,只有接近敌⼈,失败等待以及攻击等⼏种简单的状态,⼀旦随机数进⾏判定,也只会从这⼏种状态中进⾏反应交互。
实际上来说暗⿊2的ai设计思路主要还是以随机数判断加上条件⾏为为主,这个实际上也是⽬前绝⼤部分游戏采⽤的⽅式。
小可爱美瞳这种思路来说,虽然⽐较原始和传统,但是优点在于简单好维护,理解和调试⽐较简单, 当然缺点也
⽐较明显,就是容易出现怪物⾏为单调,千⼈⼀⾯,因此也对怪物设计和条件的设定提⾼了要求。
如果来拆解暗⿊3的AI,我们可以看到有这么⼏条是必需的。
1、怪物AI的判定⽅式。⼀般采⽤随机数,也就是掷骰⼦的⽅式,这是⽐较常见的⼿法。⽤来判断ai是否开始执⾏。
2、怪物的范围设定。
怪物的范围简单来说就是怪物的战⽃范围,实际上也可以精确的说是怪物的听觉视觉,如果要说细⼀点,那还会分为战⽃前和战⽃中两个阶段,在战⽃前会有游荡范围,听觉警戒范围和视觉警戒范围,⽽在战⽃中会区分为追击范围,近战攻击范围、魔法攻击范围和呼喊范围。
听觉警戒范围为360度,视觉警戒范围为120到180度不等,⼆者可以共享半径,也可以让半径不同。
具体拆分如图所⽰:
设置这些范围有什么⽤处呢?这些范围实际就是处理各种不同的AI⾏为条件的基础了。
3、AI⾏为条⽬
AI的⾏为条⽬是只怪物所能够采取的⾏为策略,在实际上,怪物的⼀个完整的流程是指怪物的从出⽣到死亡的整个过程。
六一儿童节送孩子什么礼物出⽣,是指怪物的创建⽣成情况,这个⽐较好理解,这时对应的战⽃前范围。怪物的状态可能是游荡,巡逻,静⽌等各种⾏为条⽬,这些就属于第⼀类的AI⾏为。
⽽后的情况,则是怪物⾯对的战⽃情况,即如何进⼊战⽃?⼀般来说,游戏会设定⼀个“仇恨值”或者主被动的设定。
仇恨列表相当于另⼀个系统了,这⾥就不展开说了,⽽对于AI来说,有了仇恨值,则可以进⾏⼀系列基于仇恨的⾏为了,⽐如进⾏攻击,释放技能,是否追击,是否呼喊召唤⽀援等等。
最后就是怪物进⼊濒死阶段的⼀些特殊⾏为,这些是基于特定条件的⽐如HP⾎量下降到⼀定程度,怪物会有溃败逃跑、呼叫救兵或者使⽤特殊技能⽐如“⾃爆”等其他⾏为。
以上就是基于条件⾏为相关的⼀类基础的怪物AI⾏为的设计逻辑。属于⽐较基础的AI设计,当然也是⽐较好⽤的⼀类设计。
主要可以⽤表格或者⽂本来制作,当然具体的实现和调试则需要策划和程序⼤神⼀起共同完善了。
随着游戏制作技术的进步,关于怪物AI的制作也越来越⼯具化了,感谢程序⼤神们的提供的各类⾼端⼯具,这⾥也顺便介绍⼀下,希望后续能和⼤家交流。
⼀类是基于编辑器的怪物AI编辑。⽐如暴雪⼀般会提供⼀个功能相当强⼤的游戏编辑器,在编辑器中则会有专门关于怪物AI的编辑内容。
⽐如星际2中的编辑器,推荐⼤家学习使⽤,这⾥就不展开说了。
其次是怪物AI的⾏为树编辑。⾏为树这个概念也是⽐较久的⼀个⼯具,不少商业引擎都⽀持⾏为树的编辑,⽐如Spore(孢⼦),Crysis2(孤岛危机)都是采⽤⾏为树来制作对应的AI模型。
如图⽰意(⽰意图来源为⽹络,仅做⽰意)
上图所⽰为⼀个怪物的⾏为树,作为策划来说,需要关注的是上图中⼏类不同的颜⾊区分,代表了不同的⾏为,条件和控制节点。
在我看来,⾏为树最好的⽅⾯在于如何去控制AI携带者的⾏为的路从初始到最终实现是如何⾛的,在⾏为树上来有多个节点以及⼀系列控制条件帮助携带者的做出正确及时的选择,这种选择过程是充满乐趣的。
兜的仙人模式相⽐之前的在excel表上的写写画画,这⽆疑是打开了新的⼀扇门。
从根节点从左往右可以看,怪物的每⼀步选择以及判断都会有对应的⾏为分⽀来控制,犹如⼀颗树⼀样枝繁叶茂,每⼀条分叉都有对应的⾏为和条件,就这样多条分⽀的执⾏来搭建成⼀个完整的⾏为模型。
因为我们的最终展现的仍然是怪物所执⾏的⾏为结果,即为⾏为节点的内容,不同是执⾏⾏为节点的判断以及⾏为过程的控制⼒度,⾏为树可以增加任意多的节点选择分⽀,这就给怪物的⾏动判断加多了更多的可能性,制作⼈员在理解上也会⽅便很多,当然更重要的优点是程序上处理的优势,这⾥就不展开讨论了。
总⽽⾔之,怪物AI制作博⼤精深,这⾥只是粗浅描述,难⼊窥门⼦径,唯望可抱砖引⽟,共飨同好。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论