前言
我们今天使用最基础的引擎知识,来给大家创建一个简单的AI,可以追踪目标,攻击目标。
使用Unity类比的话,就是一个怪物预制体,放到了寻路上,当他视野看到目标后,就一直追踪目标,然后攻击目标
步骤
1.创建Character
2.转换蓝图
即使把一个游戏对象,转为预制体,并添加脚本
3.认识蓝图
蓝图就是对应unity中的预制体
左侧就是蓝图的详情节点,对应预制体的结构
右侧是他的每个组件的详情,对应Uniyt的Inspector
中间是它的视图显示,分为3哥不同功能
视口,就是类似场景中这个蓝图的显示
Construction Script,就是蓝图的构造函数
事件图标,相当于给uniyt的预制体,默认添加了一个组件,这个组件有几个生命周期
4.设置模型和动画
选中蓝图下面的网格图,在他的细节面板,可以设置模型和动画
5.设置寻路组件PawnSensing
添加完PawnSensing组件后,我们看到一个锥形的辅助线,即AI的视觉角度
6.添加看见Pawn的事件
切换事件图表,我们看到除了原来的3个事件函数,又多了 一个看见Pawn上的事件,我们就可以通过它来做AI看到目标后的寻路追踪和攻击了。
追击目标的蓝图逻辑
使用AIMoveTo来追击目标
7.地形烘焙
添加组件 导航网格体边界体积,NavmeshBoundsVolume
调整Volume的大小,如下所示
通过按P键,可以切换是否显示烘焙的结果
8.AI蓝图逻辑
完成AI怪物的蓝图逻辑,即可让AI追击主角
9.动画蓝图设置
为了让怪物追击的动画更加平滑,我们需要创建一个动画蓝图,让怪物可以在不同速度追击时,分别播放走,跑动画。
在资源目录,创建一个动画蓝图
在弹出的创建面板中,选择父类AnimInstance,
目标骨骼选择你的指定模型的骨骼即可
10.创建混合空间1D动画
分别设置待机,走,跑动画到帧事件位置,从资产管理器中直接拖拽过来即可
最大速度时600的情况下,分别设定速度为0,300,600,动画为Idle,walk,run
11.使用混合空间1D动画
然后在动画蓝图中使用这个混合空间1D动画即可,如下所示:
speed是角色的蓝图上面进行设置的
这里直接获取speed,然后控制混合空间动画1D的动画播放,最后把姿势输出。
12.给怪物AI设置动画蓝图
设置动画蓝图给怪物AI
好了,这就是一个简单的AI
后面我们再来做一个拥有复杂逻辑的行为树的AI
希望这篇博客可以对你有所帮助。