网站建设工作标准,某企业网站建设方案,做网站咨询,建站系统多少钱一#xff0c;打开敌人的角色蓝图#xff0c;编写以下蓝图#xff0c;该蓝图只是创建一个敌人并非ai行为树
1.编写蓝图 2.打开主界面#xff0c;创建一个导航网格体积#xff0c;上一章都有讲#xff0c;在添加体积这里面#xff0c;找到导航网格体积#xff0c;点击创…一打开敌人的角色蓝图编写以下蓝图该蓝图只是创建一个敌人并非ai行为树
1.编写蓝图 2.打开主界面创建一个导航网格体积上一章都有讲在添加体积这里面找到导航网格体积点击创建自己弄范围可以看到我图下是绿色的就行了 3.运行一下可以发现角色移动到玩家并进行攻击
二创建以下基础篇有讲
第一个是ai控制器第二个是黑板第三个是task任务第四个是AI行为树
其中黑板和task是在AI行为树里创建的 注意敌人的角色蓝图点击类默认选择我们创建的ai控制器 打开我们上一章建立的ai_tree
1.打开黑板创建一个变量名为AttackTarget,并在右侧黑板细节处打开键类型基类选择Actor
定位目标 回到行为树创建一个moveto并命名为MovetoTaget,选中它并右侧细节黑板键选择我们刚刚创建的变量 2.打开我们创建的ai控制器 3.编写以下蓝图注意选择对应的ai行为树 4.在变量ai处拖出blackboard变量编写以下蓝图紫色那块是拖出来提升为变量的
记得命名 5.我们把之前创建好的object变量的命名复制粘贴到key name的变量里选中我们这变量 6.添加以下蓝图 三尝试一下只使用ai行为树打开敌人的角色蓝图断开事件触发链接可以发线角色只追着玩家
这里的Attack不要断掉我这里错了 四.打开我们在ai行为树创建好的task
1.这是我们上一章ai行为树讲的ai巡逻我们段开事件触发链接 2.打开敌人的角色蓝图
添加一个事件分发器 OnAttackEnd 再把刚创建的事件分发器放播放蒙太奇之后调用 3.回到我们的task事件执行触发链接如下 如果没有事件触发器就会导致敌人攻击的时候会卡在的行走和攻击之中
4.打开我们的ai行为树
链接我们的task 这个可以不选目前不起什么作用我们没有在黑板设置attack变量优先级比较次
好的我们运行就可以很流畅的攻击主角了 我们可以加一个wait打完后停一下 如果你没有给敌人添加npc的头部旋转看向主角的操作那么你的敌人会背对着打你我们需要以下操作
五让敌人精准打击主角
1.继续在我们的ai行为树里创建一个task蓝图基础的task,命名为BTTask_FocusTaget 2.打开后创建一个变量注意该变量的引用类型设置一下我们还要选中该变量在右侧细节栏处把默认改为键或者输入英文keys并勾选可编辑实例
编写以下蓝图时注意success要勾选 为了更好的设置敌人的转向如果你的敌人是复制的其他角色的蓝图那么你需要更改一下它的控制器 如果敌人打到我们那么敌人应该要扫射一下周围才进行追玩家
六敌人扫射周围的创建
1.还是像之前创建task那样创建一个蓝图基础命名为BTTask_ClearFocus不在敌人视野范围时
我这是已经创建了的 2.打开该task后 3.回到行为树
加上这个task 七添加武器——非ai行为树版
1.给角色上武器 2.创建该武器的actor蓝图创建一个静态网格体选择该武器资产网格体还要改它的碰撞预设为nocolistion
3.打开敌人的角色蓝图,给敌人附加武器注意class还有武器插槽和位置 在事件开始运行调用事件运行游戏试试 好的我们只断开事件开始运行
八添加武器——ai行为树版
1.再来到ai行为树再创建一个task命名为BTTask_WieldSword我这已经创建了 2.打开后编写以下蓝图调用之前的事件WieldSword 3.回到行为树链接该task 为了能在跑的时候不攻击攻击的时候不移动这样就更好了
九给BTTask_WieldSword创建一个装饰器
1.打开ai行为树
左上角创建一个装饰器命名为BTDecorator_isWieldingSword 2.打开后在函数重载一个执行条件检测AI 3.打开敌人的角色蓝图创建一个布尔是否挥舞武器 4.设置附加武器的条件 5.回到我们的装饰器蓝图 6.打开行为树右键对应的武器task添加装饰器 6.点击装饰器右侧翻转条件以判断武器挥舞是否为假 如果它挥舞失败了sequence后面的就不会执行了但我们只是想判断这个条件而已这就需要用到我们的selector上一篇讲过其用法
我们就需要加一个selector判断条件无论是否为真假后面的都执行而唯有自己为真执行自己为假自己单独不执行 结束我们运行一下