查看: 472|回复: 0

[引擎的各个功能] 14.构建行为树

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2017-4-8 07:16:49 | 显示全部楼层 |阅读模式

14.构建行为树



       
     
     
     Unreal Engine 4.9

       
     
         



            
            
Previous Step


        
            
        
Next Step


   
            
        
Quick Start Home


   
   
现在构建行为树的所有部件都已准备就绪:


14.构建行为树



我们来看看存在哪些逻辑。


检测到 Pawn 是 AI 角色时,AI 不会开始行动。


AgroCheck Service 将不断寻找符合条件的目标。


发现目标后,最左边的分支打开,AI 开始追赶目标 Pawn。


和 Pawn 之间的距离足够近之后,分支将阻止行动继续执行,而将其返回至图表顶端。


如目标 Pawn 隐藏,将运行最右边的分支,使 AI 向目标 Pawn 的最后已知位置前进。


到达此位置后,AI 将等待,然后返回出发地。


在任何时候,一旦发现符合条件的目标,最右边的分支将强制停止执行,最左边的分支将被打开。


一起来看看如何创建行为树。

步骤

基础设置


该指南第八部分中应该已经执行过此操作,以防您未保存,再次梳理一遍创建行为树基础架构的步骤。


如果行为树资源还没有打开并处于编辑状态,在 内容浏览器 中 双击 打开进行编辑。


切换至行为树模式


14.构建行为树



在最初编辑行为树时,它只有 Root 节点:


14.构建行为树



可在图表编辑器中 单击右键 创建节点


添加一个 Composites -> Sequence 节点。


14.构建行为树



添加两个 Composites -> Selector 节点。


14.构建行为树



将 Root 节点和 Selector 节点之一连接起来。


14.构建行为树



将新连接的 Sequence 节点和 Selector 节点,以及其他 Sequence 节点连接起来。按此方法进行整理:


14.构建行为树



第二个 Selector 节点在左边,Sequence 节点在右边。

添加 Service 节点


使用最上方 selector 节点上的 右键单击 快捷菜单,添加一个 Services -> Agro Check 节点。


14.构建行为树



选择 Selector 节点上的 Agro Check 框,然后使用 Details 面板将 Target to Follow 属性设为 TargetToFollow、Target Location 设为 TargetLocation、将 Interval 调至 0.5、Random Deviation 调至 0.0。


       
14.构建行为树



添加 Tasks


在图表区域中 单击右键 打开快捷菜单,然后添加 4 个 Tasks:1 个 Rapid Move To 节点、1 个 Wait 节点、2 个 Move To 节点。


14.构建行为树



将偏下方的 Selector 和 Rapid Move To 节点连接起来。


将 Sequence 节点和两个 Move To 节点,以及 Wait 节点连接起来。


按以下方式排列节点:


14.构建行为树



从左至右:Rapid Move To、Move To、Wait、Move To。


选择最左边的 Move To 节点,然后使用 Details 面板将其 Blackboard Key 属性设为 TargetLocation


将最右边 Move To 节点上的 Blackboard Key 属性设为 HomeLocation


       
14.构建行为树




选择 Wait 节点,然后使用 Details 面板将 Wait Time 属性设为
  1. 2.5
复制代码



       
14.构建行为树




选择 RapidMoveTo 节点,然后使用 Details 面板将 Target to Follow 属性设为 TargetToFollow。

添加 Decorators 节点


在偏下方的 Selector 节点上 单击右键,选择 Add Decorators..-> Blackboard。


在偏下方的 Selector 节点上 单击右键,选择 Add Decorators..-> Close Enough。


       
14.构建行为树




将 黑板 decorator 上的 Observer Aborts 属性设为 Both、Key Query 设为 Is Set、Blackboard Key 设为 TargetToFollow


将 Close Enough decorator 上的 Acceptable Distance 属性设为 100.0、Target to Follow 属性设为 TargetToFollow。


       
14.构建行为树




在 Sequence 节点上 单击右键,选择 Add Decorators..-> Blackboard。


在 Sequence 节点上 单击右键,选择 Add Decorators..-> Is At Location。


在 Sequence 节点上 单击右键,选择 Add Decorators..-> Blackboard。


添加全部 decorators 后,整个节点块的外观如下:


14.构建行为树



在第一个 黑板 decorator 上,将 Key Query 设为 Is Not Set、Blackboard Key 设为 TargetToFollow


在第二个 黑板 decorator 上,将 Key Query 设为 Is Set、Blackboard Key 设为 TargetLocation


在 Is At Location decorator 上,启用 Inverse Condition 属性并将 Blackboard Key 设为 HomeLocation。


对这些属性进行设置后,整个节点块的外观如下:


14.构建行为树



大功告成!使用 Play in Editor 时打开 行为树 编辑器可以看到树的运行方式。玩家进入判定区域中 AI 的视线时,它将开始追赶玩家。如 AI 视线受阻,它将前往玩家的最后已知位置、等待、然后回到出发点。


            
            
Previous Step


        
            
        
Next Step


   
            
        
Quick Start Home


   
   




                                       
                                       
完整内容索引
                                       
                               
                       
                       
            

            
            

     2004-2017, Epic Games, Inc. 版权所有。Unreal 及相关的商标是 Epic 在美国和其他国家的注册商标。


    使用条款 | 隐私政策

            
        
               
       
   
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部