AI巡逻,运用行为树

来源:互联网 发布:python 作用域 编辑:程序博客网 时间:2024/05/16 18:55

-设置TargetPoint数组,让AI在数组中的点之间移动
-我是直接用的第三人称的工程

1. 在场景中拖入TargetPoint作为巡逻点,多放几个

这里写图片描述

这里写图片描述

2.在蓝图中创建一个角色蓝图”BP_AI”和一个AIController”Con_AI”,骨骼选择”SK_Mannequin”,Anim Class 选择”ThirdPerson_AnimBP”,AI Controller Class选择”Con_AI”调整合适位置;

这里写图片描述

这里写图片描述

3.在BP_AI中新建变量”TargetPointList”,类型为“Target Point”的数组,选择”Instance Editable”和”Expose on Spawn”

这里写图片描述

4.将BP_AI拖入场景中,Details中Default里的Target Point List添加元素,自己拖进场景中的Target Point

这里写图片描述

5.创建AI行为树和黑板,分别命名为”BT_AI”和”BLB_AI”

这里写图片描述

6.添加黑板值,这个是作为巡逻点来存储的

这里写图片描述

7.在”Con_AI”中为AI选择黑板以及行为树,选择自己刚建立的

这里写图片描述

8.建立一个Task,命名为”BTTask_FindNextPoint”,这个Task是用来寻找下一个巡逻点的,每次找到之后给黑板值的”TargetPoint”赋值

9.编写Target逻辑。思路就是遍历“TargetpointList”数组,每次找到下一个目标点。

①先设置变量如下:

这里写图片描述

这里写图片描述

这里写图片描述

②EventGraph,首先找到AI控制器

这里写图片描述

③找到Character,获得之前给他的巡逻点

这里写图片描述

④循环遍历数组,设置黑板值

这里写图片描述

10.完善AI行为树,注意此时Task参数和黑板值的关联

这里写图片描述

BTTask_FindNextPoint:
这里写图片描述

MoveTo:
这里写图片描述

11.在场景中添加”Nav Mesh”,至少要铺满包含巡逻点的地板

这里写图片描述

大功告成啦!

原创粉丝点击