• 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完成了,接着就去场景跑吧。

  • 相关阅读:
    文件上传之 MultipartFile
    EL表达式从数组 Map List集合取值
    Servlet监听器
    分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)
    分页技术框架(Pager-taglib)学习二(SSH数据库分页)
    分页技术框架(Pager-taglib)学习一(页面分页)
    从request获取各种路径总结
    jsp的页面包含——静态包含、动态包含
    Java对象的浅克隆和深克隆
    Java序列化与反序列化学习(三):序列化机制与原理
  • 原文地址:https://www.cnblogs.com/songiveideas/p/learnmore10.html
Copyright © 2020-2023  润新知