虚幻引擎4笔记(9)-AI随机移动

前言

蓝图是虚幻引擎的一个可视化编码语言,不会编程的朋友也能通过蓝图来实现游戏的制作。
本人于2020年的3月份入坑虚幻4,可能技术上有些欠缺,要是有大佬发现哪里错了的话敬请指出。写文章的主要目的是为了记录自己的学习过程,不过也希望能帮助到其他像我一样的朋友学习虚幻蓝图。不同版本的虚幻引擎有进行不同程度的汉化,相应蓝图节点也会变化
此文章中使用的虚幻引擎版本: 4.23.1
随着学习的深入,后面的笔记会慢慢省略一些前面笔记写的内容,有需要的话可以去看较基础的笔记内容

虚幻4官方文档
虚幻4中文官网
虚幻引擎蓝图API参考文档
虚幻引擎4蓝图节点-小狐狸233

注:此篇文章主要是介绍一下AI的随机移动,不需要导入任何的包,下方的博客是有关AI行为树、黑板等内容的概念介绍,在实现AI随机移动之前请先去了解了解相应的概念。

虚幻引擎4-AI基础概念

上一篇笔记

虚幻引擎4蓝图笔记(8)-射击准星

动态预览图

在这里插入图片描述

一、AI可移动区

在模式的放置中搜索Nav Mesh Bounds Volume并拖动放置到地图中
在这里插入图片描述
调整相应的大小和位置
在这里插入图片描述
按下键盘的P键,绿色区域即为AI可移动的区域
在这里插入图片描述

二、AI黑板

在内容浏览器中创建一个黑板
在这里插入图片描述
在这里插入图片描述
打开AI黑板后,新建一个键值,这个值是用来保存AI需要移动的目标位置信息
在这里插入图片描述

三、AI行为树

[1]. 创建

创建一个行为树
在这里插入图片描述
在这里插入图片描述

[2]. 绑定黑板

双击打开行为树将会看见一个根节点,如果你已经创建了黑板的话,默认会帮你直接选定已创建的黑板
在这里插入图片描述

[3]. 序列合成节点

创建一个序列合成节点Sequence,这个节点的作用是先执行左子树,左子树执行完毕后将会按顺序执行相邻的右子树。
在这里插入图片描述
创建完毕后,将两者相连,Sequence节点右上角出现0,表示该节点第一个执行
在这里插入图片描述

[4]. 添加自定义任务

行为树中有自带一些任务,要实现自定义的功能的话得新建任务。
在这里插入图片描述
创建完毕后会在同目录下生成一个以BT名称开头的任务,为了方便区分就重命名了AI任务
在这里插入图片描述

(1) 变量

打开任务蓝图类,创建一个变量用于存储来自黑板的值
在这里插入图片描述
点击刚刚创建的变量,变更变量的类型为Blackboard Key Selector
在这里插入图片描述
将这个变量变为公有,之后的行为树调用时可以返回相应的坐标信息
在这里插入图片描述

(2) 触发事件

添加事件Receive Execute AI节点
当AI任务被执行时,事件Receive Execute AI节点将会被触发
在这里插入图片描述

(3) 传随机点的坐标值至变量

添加Set Blackboard Value as Vector节点
这个节点的作用是将位置信息传到输入接口Key对应的变量的值变为Value坐标值。
在这里插入图片描述
将变量拖动到蓝图中,选择获取。
然后按下图进行连接。
在这里插入图片描述

(4) 结束任务标识

添加Finish Execute节点
这个节点的作用是让一个任务结束,要不然在行为树中运行这个任务时将会停滞在该任务。
在这里插入图片描述
Success选择为ON表示运行该节点之后,将标志这个任务的完成
在这里插入图片描述

(5) 获取AI坐标

添加GetActorLocation节点
该节点能获取某个物体的坐标信息并输出
在这里插入图片描述
在这里插入图片描述

(6) 生成随机点

添加GetRandomPointInNavigableRadius节点
这个节点主要是用来在一个已知的圆中,生成一个随机的点并输出该点坐标
在这里插入图片描述
以AI的位置为圆点,以1000为半径的圆内,生成一个随机点的坐标并输出。
在这里插入图片描述

(7) 添加任务节点至行为树

点开之前创建的行为树,搜索刚刚创建的自定义任务并添加节点
在这里插入图片描述
任务节点只有一个输入接口,所以任务节点没法触发另一个任务节点。
连接完毕后右上角出现一个数字,表示该节点会第2个执行
在这里插入图片描述

[5]. 添加移动任务

在这里插入图片描述
右上角的-1表示不会被执行

在这里插入图片描述
在这里插入图片描述

[6]. 添加等待任务

如果没有添加等待任务的话,AI会一直来回地跑动不会停下来,要更好地观察AI移动的话就需要添加等待任务。
在这里插入图片描述
在这里插入图片描述

四、AI控制器

在创建AI前需要先创建一个AI Controller蓝图类
在这里插入图片描述
创建完毕如下图
在这里插入图片描述
在事件图表中,创建如下图的蓝图节点并连接
当AI控制器被调用时,将会触发事件On Possess节点,执行Run Behavior Tree节点从而调用刚刚创建的行为树。
在这里插入图片描述
编译保存

五、AI角色

先创建一个角色蓝图类
在这里插入图片描述
添加一个立方体到角色中,如果你需要用自己的模型时可以去看之前的笔记内容。
虚幻引擎4蓝图笔记(4)-角色模型导入

在这里插入图片描述
点击AI(自身),打开相应的细节面板
在这里插入图片描述
AI Controller Class中选择你刚刚创建的AI控制器,
Auto Possess AI设置成放置在场景中就会被AI控制器控制。
在这里插入图片描述
设置完毕后编译保存,之后你就可以直接拖动AI的角色蓝图类到场景中使用了。

六、已创建好的项目

在这里插入图片描述
下载链接
提取码: ryly

原创文章 31 获赞 11 访问量 6117

猜你喜欢

转载自blog.csdn.net/smallfox233/article/details/105796658