• UE4中的AI行为树简单介绍


    UE4引擎中可以实现简单AI的方式有很多,行为树是其中比较常用也很实用的AI控制方式,在官网的学习文档中也有最简单的目标跟踪AI操作教程,笔者在这里只作简单介绍。

    AIController->和playcontroller一样,但区别于玩家控制器,AIController负责管理的是AI,也称AI控制器。

    Blackboard->黑板,作用是用来标记关键值,为AI存储或者提取相关记忆。

    Behavior Tree->行为树,从黑板里读取关键值,做出决定和执行。

    Animation BluePrints->动画蓝图 配合行为树调用,之后详细讲。

    Task->任务 

    Services ->常用于检查和更新黑板.

    NavMeshBoundsVolume->导航

    拉出NavMeshBoundsVolume,导航网格,按下P键可以看到场景变成绿色,证明构建成功。导航网格是AI行为中必不可少的,在其范围内是AI可以执行相关行为的地方,而出了这范围就无法再生效。图示中的LinkeProxy表示连接跳跃,Modifier表示修正,具体用法可以自己实验。

    第二步,创建AIPawn,AIController以及行为树和黑板,任务Task等,(Task的创建是由蓝图继承Task类创建的,其他的右键创建)。

    在AIController跑起行为树,并将自己创建的AIController替换到要执行的AI上。

    黑板里面增加一个变量TargetLoc,用来储存AI移动的目标坐标,这里就只做AI随机行走。

    Task(Idle)里面的设置,蓝图如图内解释,记得最后要执行完成函数,变量Idle是用来储存要移动的目标点坐标,储存进黑板里刚刚设置的变量TargetLoc,在行为树里用来给其他函数进行调用。

    关于行为树里面的设置如下

    这里说下两个节点

    Selector 从左到右在其子项中运行,直到其中一个成功才返回。

    Sequence 从左到右在其子项中运行,直到其中一个失败返回。

    这样行为树的意思就是执行下来从左往右,先Idle执行随机目标点的储存,然后等待5S,接着进行MoveTo移动,MoveTo函数的坐标点调用使用的就是黑板里刚存储的TargetLoc

    简单的Demo完成了,接着就去场景跑吧。

  • 相关阅读:
    ACM——Points on Cycle
    ACM——A Simple Problem with Integers(线段树的精华版)
    HDU2524——矩形A+B
    ACM——Hero(类似贪心算法)
    用N个三角形最多可以把平面分成几个区域——acm
    ACM——敌兵布阵(经典的线段树)
    ACM——I Hate It(线段树的进化版)
    ACM——今年暑假不AC
    ACM题目Who's in the Middle
    内部排序算法
  • 原文地址:https://www.cnblogs.com/songiveideas/p/learnmore10.html
Copyright © 2020-2023  润新知