想要做一个AI随机漫游,有两种方法,一种是直接在AI角色蓝图中写,一种是使用行为树来移动。
用角色蓝图非常简单,但如果AI有复杂的行为,那么就需要使用行为树。
下面介绍两种方法如何使用。
一、基础设置
- 制作AI角色蓝图
- 添加AI控制器
- 添加寻路网格体
角色蓝图是具体的动作逻辑。
控制器通过角色蓝图控制AI移动。
寻路网格体提供移动的场景。
1.制作AI蓝图
不管使用哪种方法,都要先建立一个AI的角色蓝图。
可以直接复制一个第三人称角色蓝图,这样比较快速。
简单介绍一下蓝图的各组件作用:
- 胶囊体——控制碰撞
- 网格体——控制骨骼、动画、材质
- Camera Boom——控制摄像机视图
- 角色移动组件——控制角色移动、游泳、飞行等动作
a.拷贝第三人称角色蓝图——删掉事件图表中所有的节点(因为AI不需要输入数据)
b.删除一些与输入有关的变量:“基础转动速率”、“基础俯仰速率”
c.删除摄像机组件:camera Boom(摄像机升降臂)、跟随相机
2.AI控制器
需要给AI蓝图绑定控制器,不然AI无法移动。
a.添加AI控制器 - 替换刚刚删除的玩家控制器的功能
b.建立AI控制器蓝图
c.打开AI_ThirdPersonCharacter蓝图——PAWN——AI控制器类——绑定AI控制器蓝图
UE5这个界面里没有,可以在蓝图编辑器的细节面板中找到。
3.添加寻路网格体
没有寻路网格体,AI也无法移动。
a.添加寻路网格体
模式 - 寻路网格体(Nav Mesh Bounds Volume)拖入场景
“细节”面板调整笔刷尺寸。
让网格体覆盖AI需要行走的场景。
寻路网格体大小不需要特别准确。
b.显示网格体
视口选项 - 显示 - 导航(快捷键P)
二、角色蓝图控制随机漫游
- 自定义事件:AI通过控制器向某点移动
- 获得随机目标点
- 定时器循环漫游事件
原理:游戏开始后,产生一个计时器,并开始漫游事件——AI获得一个随机点,通过控制器移动到这个点——计时器开始计时,1.5s后AI前往下一个点——循环
给角色蓝图新建一个自定义事件,包含随机漫游逻辑 - 增加一个函数,在游戏中反复调用自定义事件。
<