ue4蓝图和ai的区别_UE4 AI基础

本文只是介绍AI使用到的基础组件的作用的理论介绍,对你马上能上手操作制作一个AI用处不大。请读者注意,

AIPawn/AICharacter/AI角色AI角色,就是AI的角色蓝图

与玩家操控的角色一样,需要赋予对应的Mesh/Animation/

去掉与用户输入相关的

指定AIController这一步很重要,这就连接了角色和控制器;

在Controller里面可以添加AI感知组件AIController/AI的控制器作用:与Player的PlayerController是一样的,区别在于:Player的PlayerController是玩家告诉PlayerController该怎么做,PlayerController再来操纵PlayerController对应的Pawn。

AI的AIPawn是通过行为树来根据不同的情况来操纵AIController,AIController再来操纵AICharacter。

注意:BeheviorTree是在AIController里面开始运行的,

这一操作链接了BeheviorTree和AIController

官方文档中的第三人称AI要求勾上UseControlledRotationYaw,这样角色就可以正常旋转,不然会执行错误,因为,

行为树里面做的任务:Rotate to face BB entry 行为树的这个任务会将任务传递给AIController,如果不勾选这个,

AIController的旋转方向将不会应用到AI角色上,这个任务节点会返回失败,所以,行为树就会运行失败。但是上述的旋转方式过于僵硬,事实上,如果你使用的是带有CharacterMovementComponent的AI角色,组件中有对应的方法可以同样代替 UseControlledRotationYaw,将Controller的旋转信息传递给AI角色,使得任务节点成功,如下:

CharacterMovementComponent组件的RotationSetting,这里可以勾选UseControllerDesireRotation,这样就可以有一个更平滑的旋转,里面有一个参数RotationRate,可以通过设置该值的大小来控制旋转的速度。BeheviorTree/行为树作用:本质上是AI的处理器,可以根据这些决策的结果做出决策并执行各种分支。

根据不同的情况执行不同的分支。如:AI角色有没有发现敌人,找到敌人要干嘛,是跑向敌人还是直接射击,还是边跑边射击,如何外部的任务是怎么执行的,外部任务可以自定义,行为树并不关心,行为树关心的不是怎么做,而是做什么,你也可以把它理解为一种流程控制。BlackBoard黑板作用:存放数据用的,行为树上的很多节点的执行和判断都是从黑板上取值或者修改值;

关键方法:

SetBlackBoradValueAsVector/bool/String/float...BT_Decorate/装饰器作用根据黑板上的值,来判断节点能否往下执行;

在其他行为系统中名为:条件系统

新建同BT_服务节点

使用:行为树的Selector/Sequence节点右键添加BT_Service/服务节点作用检测和更新黑板的值

新建两种方式:通过行为树工具栏新建在ContentBrowser新建使用在行为树的Selector和Sequence节点右键添加BT_Task/任务作用:用来执行任务即具体操作,比如:MoveTo到规定的位置,Wait/自定义任务等等AI感知等组件听觉/视觉/声觉

下篇我会具体讲一下AI关于各种感知组件的作用以及使用方法

你可能感兴趣的:(ue4蓝图和ai的区别)