行为树一种在游戏中常用的实现AI嘚方式单纯用蓝图也可以构成复杂的AI,而行为树算AI的规范化也比较直观明朗,因此这篇主要给大家讲解行为树的使用先说一下其中幾个简单的概念。
Blackboard->黑板就跟以前上学时用的黑板一样,他的作用就用来标记关键值为AI存储或者提取相关记忆。
Behavior Tree->行为树从黑板里读取關键值,做出决定和执行
例子就选官方的第三人称模板吧。
拉出NavMeshBoundsVolume导航网格,按下P键可以看到场景变成绿色证明构建成功,图示中的LinkeProxy表示连接跳跃Modifier表示修正,具体用法可以自己实验
第二步,创建AIPawn,AIController以及行为树和黑板任务Task等,(Task的创建由蓝图继承Task类创建的其他的右鍵创建)为了方便我把文件放一起。
黑板里面增加一个变量TargetLoc,用来储存AI移动的目标坐标这里就只做AI随机行走。
Task(Idle)里面的设置,蓝图如图内解释,记得最后要执行完成函数,变量Idle用来储存要移动的目标点坐标储存进黑板里刚刚设置的变量TargetLoc,在行为树里用来给其他函数进行调用
Selector 從左到右在其子项中运行,直到其中一个成功才返回
Sequence 从左到右在其子项中运行,直到其中一个失败返回
这样行为树的意思就执行下来從左往右,先Idle执行随机目标点的储存然后等待5S,接着进行MoveTo移动MoveTo函数的坐标点调用使用的就黑板里刚存储的TargetLoc
行为树里也封装了许多有用嘚函数,就不一一讲了关于动画蓝图等之后有时间再讲。
简单的Demo完成了接着就去场景跑吧。