【UE5.1】NPC人工智能——04 NPC巡逻

效果

步骤

一、准备行为树和黑板

1. 对我们之前创建的AI控制器创建一个子蓝图类

这里命名为“BP_NPC_AIController_Lion”,表示专门用于控制狮子的AI控制器

2. 打开狮子蓝图“Character_Lion”

在类默认值中将“AI控制器类”修改为“BP_NPC_AIController_Lion”

3. 创建一个行为树

这里命名为“BT_Lion”

4. 创建一个黑板

这里命名为“Blackboard_Lion”

5. 打开行为树“BT_Lion”,在左侧的“黑板资产”选项中设置为刚创建的“Blackboard_Lion”

6. 打开AI控制器“BP_NPC_AIController_Lion”,在事件开始运行后运行“BT_Lion”行为树

此时我们就建立了AI控制器、行为树、黑板之间的关联。行为树负责提供AI的行为准则,黑板负责存储AI行为参考的数值。

下面我们即将完成的功能是NPC狮子在一定区域内巡逻,如果看见玩家就跑过去。因此我们需要将巡逻的点先放入黑板,然后在行为树中获取黑板的值并控制狮子。

二、NPC狮子巡逻

1. 打开行为树“BT_Lion”,添加一个序列合成节点

接下来我们需要获取一个随机点,点击新建任务

这里任务命名为“BTTask_GetRandomLocation”

此时在行为树中就可以搜索到我们刚才创建的任务“BTTask_GetRandomLocation”

在获取到随机点后就通过“Move To”任务节点让NPC狮子移动到指定位置

然后等待1.5s~2.5s时间,再次重复执行前两个任务

2. 打开黑板

由于我们需要一个随机点的位置,因此在黑板中新建一个向量,这里命名为“RandomLocation”

3. 在行为树中双击任务节点进入任务“BTTask_GetRandomLocation”

我们需要在 “BTTask_GetRandomLocation”添加的逻辑是在狮子周围随机添加一个点,然后将其保存到黑板中。在这里添加如下节点

4. 回到行为树中,选中“BTTask_GetRandomLocation”任务节点可以看到此时默认有两个参数值,这两个参数就是我们在任务蓝图中创建的变量

设置默认值

设置“Move To”的目的地为黑板中“Random Location”的值

此时运行可以看到NPC狮子每隔2s左右就随机移动一次。

如果我们希望狮子只是在固定半径范围内随机移动,我们可以修改一下任务蓝图的逻辑,即只保存1次狮子所在位置,然后后面每次移动都以第1次所在位置为中心的区域内进行移动。

最终效果如文章开头所示。

相关推荐

  1. WHAT - npmnpx

    2024-07-21 00:12:03       24 阅读
  2. ubuntu 16.04 安装 新版npm

    2024-07-21 00:12:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 00:12:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 00:12:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 00:12:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 00:12:03       55 阅读

热门阅读

  1. std::bind 简单实验

    2024-07-21 00:12:03       16 阅读
  2. 中电金信:语言服务游戏行业解决方案

    2024-07-21 00:12:03       17 阅读
  3. 数据库之数据类型

    2024-07-21 00:12:03       14 阅读
  4. 代码保存板块

    2024-07-21 00:12:03       20 阅读
  5. Git 代码管理面试59题(一)

    2024-07-21 00:12:03       19 阅读
  6. Kudu节点数规划

    2024-07-21 00:12:03       24 阅读
  7. Emacs

    2024-07-21 00:12:03       18 阅读
  8. 提升 Google 对网站兴趣的关键:颜值与内容并重

    2024-07-21 00:12:03       14 阅读
  9. 【js自学打卡8】filter / 类与原型链 / 转字符串

    2024-07-21 00:12:03       21 阅读
  10. 2024年交安安全员考试题库及答案

    2024-07-21 00:12:03       15 阅读
  11. [C/C++入门][for]23、求阶乘

    2024-07-21 00:12:03       20 阅读
  12. [rustlings]13_error_handling

    2024-07-21 00:12:03       19 阅读