纳金网

标题: Advanced AI Pro - 设计智能化的敌人攻击系统 [打印本页]

作者: 艾西格亚    时间: 2013-10-25 00:16
标题: Advanced AI Pro - 设计智能化的敌人攻击系统
Advanced AI Pro 是一款改良多次的强化版人工智能插件,主要可以用在游戏里面模拟敌人的巡逻与攻击,与其他的AI插件比较起来,Advanced AI Pro 提供了更为进阶的智能化敌人设置,并且增加了AI的队友协同作战功能,如此大大的增强了Advanced AI Pro 在游戏中的实用性。

1.jpg

请注意,本教程使用的Advanced AI Pro 为4.8的版本,请先至论坛下载此一插件:
http://www.narkii.com/club/thread-306270-1.html

安装插件后,打开Showcase > Scenes > Melee Attack场景文件,在Hierarchy面板里面查看场景的内容,DummyAI为我们设置的NPC, First Person Controller作为第一人称的角色模拟,Level Geometry则是地面与障碍物的模型。

1.jpg

如图所示,场景里面的红色物件为NPC,右边的圆柱体是第一人称的角色目前所在的位置。

2.jpg

选择Level Geometry 》 Floor,这个模型属于静态的设置,同时也是NPC的作为巡逻的参考范围。

3.jpg

如图所示,在视图右下方可以勾选Show NavMesh查看Navigation的作用区域,蓝色的部分即为已经烘培过Navigation的巡逻范围。

4.jpg

接着我们先需要了解一下在角色上面增加AI的基本流程,首先是要制作成NPC的角色,Rig模式必须为Legacy,这个设置的部分务必要注意。

6.jpg

Advanced AI Pro提供了五种不同的 AI 模式,可方便的让我们快速的对角色进行AI属性的设置,这五种模式分别是:Advanced AI Enemy - 一般的敌人模式
Advanced AI NPC Aggressive - 主动攻击的敌人模式
Advanced AI NPC Passive - 被动攻击的敌人模型Advanced AI Companion - 伙伴模式
Advanced AI Defender Ally - 防卫模式

7.jpg

在选择AI模式后,角色会成为Advanced AI Pro设置的一个子物件,如图所示,DummyAI是Advanced AI Pro的设置选项,_ProjectileOrigin是默认的添加项,Dummy则是导入的角色模型。

8.jpg

另外就是在角色上添加Advanced AI Pro的组件后,系统会自动增加一个Capsule Collider,如果角色已经具备Capsule Collider的设置则必须先删除,以免重复添加Collider的组件。

9.jpg

如图所示,将Capsule Collider的位置进行调整以匹配到角色的基本外形。

10.jpg

然后在Advanced AI Enemy的脚本里面设置对应的动作即可,如图所示,在Animations的栏位里面分别对AI设置进行动作的写入,例如Chasing Anim,将Size设置为1,Element 0的栏位填入Run,Death Anim填入Death2, Got Hit Anim则是hit...以此类推来完成其他的设置,需要注意的是,填入的动作名称必须与角色自带的动作大小写名称一致才行。

11.jpg

设置完成后进行测试,使用WASD移动第一人称的视角,在接近到一定的范围后,NPC就会对角色进行追踪与攻击,而玩家攻击NPC时也会有特效的处理。

12.jpg
13.jpg

现在我们将其他的角色模型导入场景,然后添加Advanced AI Pro使其对玩家进行攻击,如图所示,这是附件提供的一个僵尸(MaleZombie)模型。

14.jpg

僵尸模型里面已经提供了非常丰富的分段动画,我们将要用这里面的内容来完成Advanced AI Pro的动作设置。

15.jpg

点选MaleZombie模型,在Component的菜单内选择Advanced AI > Add Advanced AI Enemy,如图所示,MaleZombieAI即为自动生成的AI设置物件,底下的MaleZombie则为子物件的结构。

16.jpg

接下来我们需要对Advanced AI 进行设置,在General Parameters的选项Blood Decal Dead栏位内添加BloodDecal这个血迹效果,Hit Particle FX 选择 BloodSplat特效,Target 需选择玩家的角色,此处设置的是第一人称的物件。

17.jpg

在Attack Mode(攻击模式)里面可选择三种类型,默认的Melee为玩家进入NPC的可视范围与距离后即开始进行攻击,这里我们选择的是Melee_Ranged,表示玩家在进入一定的范围后,NPC对其进行近身攻击,如果玩家与NPC在一定的距离时,NPC会进入射击的模式。Patrol Mode里面可以设置三种巡逻的方式,这里我们选的是Dynamic_Wandering,也就是随机的走动模式。

18.jpg

接着设置NPC与Advanced AI的对应动作,如图所示,在Animations里面将每一个动作名称分别输入到动作的栏位内。

20.jpg

设置完成后进行测试,僵尸模型在游戏的一开始会在一定的范围内进行巡逻,待玩家进入设置的区域后,僵尸就会奔向玩家进行攻击。

21.jpg
23.jpg

玩家对NPC进行反击,NPC身上收到攻击时产生的特效也是Advanced AI已经设置好的功能,我们可以随时对特效的内容进行替换,另外就是NPC在收到几次攻击后会出现Death的动作,这个部分也可以用预置好的Ragdoll进行模型的替换。

24.jpg

更多的Unity技术交流与分享请加入:纳金网Unity论坛专属交流群 - 218689657



Animated Zombie Pack1.3.zip

15.64 MB, 下载次数: 1442


作者: 狂风大尉    时间: 2013-10-25 18:55
不错的教程,附件的模型不错
作者: 我没有过去    时间: 2013-10-25 20:34
感谢楼主分享啊
作者: animan    时间: 2013-10-25 20:57
感覺非常實用~~~~~~~~~~~~~~~
作者: unity3D13    时间: 2013-10-25 23:33
很好的教程,版主幸苦了。
作者: 幸福小猪    时间: 2013-10-28 10:10
感谢楼主分享~
作者: PegSan_Li    时间: 2013-11-8 18:37
很好的教程,感谢分享~
作者: orokborokhulu    时间: 2013-11-9 06:02
nice sharing!
作者: cgjch8    时间: 2013-11-9 09:33
感覺非常實用
作者: 所罗门封印    时间: 2013-11-11 14:26
感谢分享教程…………………………………………………………66
作者: qidaozhilong    时间: 2013-11-12 09:44
看看看看看看看看看看看看
作者: ZackD    时间: 2013-11-14 11:12
有没更新的教程啊?
作者: PegSan_Li    时间: 2013-11-18 14:42
"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.
UnityEngine.NavMeshAgent:get_remainingDistance()
AdvancedAiEnemy:Update() (at Assets/Advanced AI/Scripts/AdvancedAiEnemy.cs:767)你们会有这样的错误的吗?
作者: 艾西格亚    时间: 2013-11-18 14:44
PegSan_Li 发表于 2013-11-18 14:42
"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.
Unit ...

Advanced AI Pro v5.0 - 超强而全面的AI系统
http://www.narkii.com/club/thread-308165-1.html

你换这个版本试试

作者: PegSan_Li    时间: 2013-11-18 16:07
艾西格亚 发表于 2013-11-18 14:44
Advanced AI Pro v5.0 - 超强而全面的AI系统
http://www.narkii.com/club/thread-308165-1.html

已经换了那个版本了,还是有同样的错误。我是将它导入到自己的场景中,然后拉一个敌人到场景中,创建一个AI,再设置AI的Capsule Collider的大小,Animations,Layers,General Parameters,然后运行。就出现这错误,走到敌人前面,敌人还是不会攻击的。
作者: ZackD    时间: 2013-11-18 16:11
你是用哪个Unity版本啊
作者: PegSan_Li    时间: 2013-11-18 16:14
ZackD 发表于 2013-11-18 16:11
你是用哪个Unity版本啊

unity 4.2.1
作者: 大大虾    时间: 2013-12-2 16:13
不错的插件~~赞一个!~
作者: fatfatbo    时间: 2014-1-12 01:45
来看看这教程

作者: abaojin    时间: 2014-1-12 16:46
很不错的模型
作者: acomlf    时间: 2014-1-17 10:34
好教程,好东东
作者: likunhan    时间: 2014-2-17 17:14
见识了,感谢版主的详细教程。
作者: ExGamers    时间: 2014-2-18 03:47
Indeed verry nice model and AI system thank's
作者: saviosun    时间: 2014-2-18 10:40
先看看,这个貌似很精致的模型
作者: tangqizuse    时间: 2014-2-19 08:43
新人学习,谢谢楼主分享
作者: 堕落人族王子    时间: 2014-2-24 11:47
正在学习中。。。。。。。。。。。。。。
作者: 堕落人族王子    时间: 2014-2-24 14:41
要是支持mecanim就好了。
作者: BlueGem    时间: 2014-2-24 15:10
感谢分享
作者: rexmsy    时间: 2014-4-1 15:37
谢谢楼主的教程~正好要学习使用AI
作者: kkkisk    时间: 2014-4-29 08:30
感覺非常實用~~~~~~~~~~~~~~~
作者: 鸡贼不差钱    时间: 2014-5-9 10:18
感谢楼主分享
作者: Ethan    时间: 2014-5-27 10:01

不错的教程,附件的模型不错
作者: tamenshimao    时间: 2014-6-9 17:27
很有价值的插件
作者: 蜗牛也很牛    时间: 2014-8-29 15:43
看看,我就看看
作者: 蜗牛也很牛    时间: 2014-8-29 15:44
我就看看,看看
作者: 蜗牛也很牛    时间: 2014-8-29 15:46
我就看看
作者: 蜗牛也很牛    时间: 2014-8-29 15:47
看看啊看看
作者: 蜗牛也很牛    时间: 2014-8-29 15:47
刷点金币
作者: 蜗牛也很牛    时间: 2014-8-29 15:48
还差3个
作者: 蜗牛也很牛    时间: 2014-8-29 15:48
haiyou2ge
作者: 蜗牛也很牛    时间: 2014-8-29 15:49
worenyyima
作者: folish_man    时间: 2014-8-29 20:47
非常好的教程
作者: folish_man    时间: 2014-8-29 20:48
非常好的教程
作者: saberlose    时间: 2014-9-3 20:00
听说 里面模型不错~
作者: U3DZQ    时间: 2014-11-15 11:52
感谢分享!
作者: 摞你命3000    时间: 2014-11-22 16:42
这教程太需要了 及时雨啊 感谢分享
作者: 炒酷酷    时间: 2017-5-7 15:58
PegSan_Li 发表于 2013-11-18 14:42
"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.
Unit ...

我也遇到了这个问题,请问则怎么解决的呀?

作者: lzylzy19871    时间: 2018-8-16 16:35
感谢分享,学习下




欢迎光临 纳金网 (http://course.narkii.com/club/) Powered by Discuz! X2.5