admin管理员组

文章数量:1565349

文章目录

  • 前言
    • 相关介绍
    • 其他介绍
    • 上一篇笔记
    • 下一篇笔记
    • 动态预览图
  • 一、AI可移动区
  • 二、AI黑板
  • 三、AI行为树
    • [1]. 创建
    • [2]. 绑定黑板
    • [3]. 序列合成节点
    • [4]. 添加自定义任务
      • (1) 变量
      • (2) 触发事件
      • (3) 传随机点的坐标值至变量
      • (4) 结束任务标识
      • (5) 获取AI坐标
      • (6) 生成随机点
      • (7) 添加任务节点至行为树
    • [5]. 添加移动任务
    • [6]. 添加等待任务
  • 四、AI控制器
  • 五、AI角色

前言

AI的随机移动,不需要导入任何的包,下方的博客是有关AI行为树、黑板等内容的概念介绍
在实现AI随机移动之前,可以先去了解相应的概念

虚幻引擎版本: 4.23.1

相关介绍

虚幻引擎4-AI基础概念

哔哩哔哩-UE4初学者系列教程-AI行为树入门全集

其他介绍

虚幻4官方文档

虚幻4中文官网

虚幻引擎蓝图API参考文档

虚幻引擎4蓝图节点-小狐狸FM

HelloCJC虚幻引擎社区

上一篇笔记

虚幻引擎(8)-射击准星

下一篇笔记

虚幻引擎(10)-切换控制权

动态预览图

一、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的角色蓝图类到场景中使用了。

本文标签: 虚幻引擎AI