六一的部落格


行百里者半九十




说明

AI / EQS / Random Roam

AI系统

Environment Query System

EQS帮助NPC在给定的条件下对空间进行分析

本节将给出满足条件的适合NPC的位置区域

目的在于使NPC巡逻更自然


创建类

  • 创建文件夹 AI/EQS

  • 创建EQS资产

    AI/EQS 目录下空白处右键 > Artificial Intelligence > Environment Query, 命名为EQS_RandomRoam

    使用EQS_RandomRoam取代巡逻时生成随机点逻辑

  • 创建蓝图类

    AI/EQS 目录下空白处右键 > Blueprint Class

    -
    基类 EQSTestingPawn
    名称 EQS_TestPawn

    专门用于在虚幻编辑器对EQS进行测试. 游戏成品中不会使用到

    添加到关卡中

  • 在细节面板中设置EQS_TestPawn

    在世界大纲选中 EQS_TestPawn

    Details > EQS > Query Template , 设置为EQS_RandomRoam



介绍EQS资产

文档

类似行为树图表


从Root出发, 可以设置各种生成器



随机目的地

双击打开EQS_RandomRoam

介绍下列生成器

-
Points: Grid 方形点阵
Points: Circle 圆圈点阵
Points: Cone 扇形点阵

方形点阵

EQS_TestPawn身处方形点阵表示的位置区域中

可配置项
GridHalfSize 点阵大小
Space Between 点阵密度



圆圈点阵

只圆形周长存在有效位置

可配置项
Circle Radius 半径



扇形点阵

EQS_TestPawn位于顶点处, 前进向量对应扇形中线

该模板用于选择前进时的下一个目的地, 因为前进向量的改变不会太突兀

可配置项
Aligned Points Distance 射线上的点间距
Cone Degrees 顶角
Angle Step 射线密度
Range > Data Binding = None, Range 半径


  • Projection Data > Track Mode

    设置投影

    -
    Navigation 默认值, 显示投影到导航网格体的点阵
    None 无投影, 会生成无法去到的位置点

    Track Mode = None


  • Range > Data Binding

    半径模板选项

    -
    None 默认, 固定值
    Query Params
    Random number 设置随机数范围

    Range > Data Binding = Random number



为扇形点阵添加限制条件

右键生成器, Add Test > Distance : 根据位置点到顶点的距离对位置点进行筛选


Details > Filter > Filter Type 限制类型
Range 给定范围
Minimum 给定最小值
  • 当前给定筛选距离范围, 最大值和最小值均为0, 所以无合适位置点

    表示位置点的球型显示为蓝色: 不是合适的位置点


  • 给定最小值

    为每个位置计算到顶点的距离, 根据距离, 给出权重: 距离越大的点, 选中的可能性更高

    Float Value Min = 0.0: 颜色从红色到绿色, 权重由小变大



生成附近随机位置

-
生成敌人附近的随机点 环状点阵
寻找敌人 Context

介绍新生成器

-
Points: Donut 环形点阵

环状点阵

Points: Donut

-
Projection Data > Track Mode 设置投影
Inner Radius 内圈半径
Outer Radius 外圈半径
Number Of Rings 半径上的点个数
Points Per Ring 一圈上的点个数
Arc Angle 圆环扇形
Use Spiral Pattern 螺旋模式

为环状点阵添加限制条件

使用Distance

-
Filter > Filter Type 筛选方式
Score > Scoring Factor 权重比: 1则越远越大, -1则越近越大
  • 权重比为1

    最外层有几圈蓝色位置点, 均无效, 权重为0; 有效位置点由红色变为绿色, 权重由0变为1


  • 权重比为-1


  • 给定权重比范围, -1 ~ 1



设置中心点


环状点阵生成器中心点选项

选中环状点阵, Details > Center

-
EnvQueryContext_Querier 默认值, 使用EQS的上级Pawn; 可以自定义EnvQueryrContext



环状点阵距离限制条件距离计算的参照点选项

选中Distance, Details > Distance > Distance To

-
EnvQueryContext_Querier 默认值, 使用EQS的上级Pawn; 可以自定义EnvQueryrContext



设置EQS资产

  • 添加生成器: 扇形点阵

    配置
    Cone Degrees 200
    Angle Step 10
    Range > Data Binding Random number
    Range > Data Binding > Min 1200
    Range > Data Binding > Max 1600
    Track Mode Navigation


  • 为扇形点阵添加距离条件: Distance

  • 设置Distance: 限定筛选类型为最小值, 最小值为400


    小于给定最小值的点, 显示为蓝色, 权重为0


在行为树运行EQS

  • 断开ROOT节点到选择器的箭头

  • 添加序列

  • 为序列添加任务 Run EQSQuery

    Details > EQS > EQSRequest > Query Template, 选择EQS_RandomRoam

    Details > Blackboard > Blackboard Key , 选择AimLocation: 对黑板变量AimLocation进行设置


  • 为序列添加任务 MoveTo

    Details > Blackboard > Blackboard Key , 选择AimLocation: 从黑板变量AimLocation获取目的位置


  • 为序列添加任务 Wait

    等待2s



查看

  • 设置NPC生命值100

    BP_STUAICharacter > Details > MaxHealth

  • 在世界大纲选中AICharacter

  • 按下 ' 打开AI调试界面, 按下小写键盘 3 显示EQS信息

  • 选中位置点显示为浅绿色



使用EQS实现巡逻



说明

AI / EQS / Random Roam

AI系统

Environment Query System

EQS帮助NPC在给定的条件下对空间进行分析

本节将给出满足条件的适合NPC的位置区域

目的在于使NPC巡逻更自然


创建类

  • 创建文件夹 AI/EQS

  • 创建EQS资产

    AI/EQS 目录下空白处右键 > Artificial Intelligence > Environment Query, 命名为EQS_RandomRoam

    使用EQS_RandomRoam取代巡逻时生成随机点逻辑

  • 创建蓝图类

    AI/EQS 目录下空白处右键 > Blueprint Class

    -
    基类 EQSTestingPawn
    名称 EQS_TestPawn

    专门用于在虚幻编辑器对EQS进行测试. 游戏成品中不会使用到

    添加到关卡中

  • 在细节面板中设置EQS_TestPawn

    在世界大纲选中 EQS_TestPawn

    Details > EQS > Query Template , 设置为EQS_RandomRoam



介绍EQS资产

文档

类似行为树图表


从Root出发, 可以设置各种生成器



随机目的地

双击打开EQS_RandomRoam

介绍下列生成器

-
Points: Grid 方形点阵
Points: Circle 圆圈点阵
Points: Cone 扇形点阵

方形点阵

EQS_TestPawn身处方形点阵表示的位置区域中

可配置项
GridHalfSize 点阵大小
Space Between 点阵密度



圆圈点阵

只圆形周长存在有效位置

可配置项
Circle Radius 半径



扇形点阵

EQS_TestPawn位于顶点处, 前进向量对应扇形中线

该模板用于选择前进时的下一个目的地, 因为前进向量的改变不会太突兀

可配置项
Aligned Points Distance 射线上的点间距
Cone Degrees 顶角
Angle Step 射线密度
Range > Data Binding = None, Range 半径


  • Projection Data > Track Mode

    设置投影

    -
    Navigation 默认值, 显示投影到导航网格体的点阵
    None 无投影, 会生成无法去到的位置点

    Track Mode = None


  • Range > Data Binding

    半径模板选项

    -
    None 默认, 固定值
    Query Params
    Random number 设置随机数范围

    Range > Data Binding = Random number



为扇形点阵添加限制条件

右键生成器, Add Test > Distance : 根据位置点到顶点的距离对位置点进行筛选


Details > Filter > Filter Type 限制类型
Range 给定范围
Minimum 给定最小值
  • 当前给定筛选距离范围, 最大值和最小值均为0, 所以无合适位置点

    表示位置点的球型显示为蓝色: 不是合适的位置点


  • 给定最小值

    为每个位置计算到顶点的距离, 根据距离, 给出权重: 距离越大的点, 选中的可能性更高

    Float Value Min = 0.0: 颜色从红色到绿色, 权重由小变大



生成附近随机位置

-
生成敌人附近的随机点 环状点阵
寻找敌人 Context

介绍新生成器

-
Points: Donut 环形点阵

环状点阵

Points: Donut

-
Projection Data > Track Mode 设置投影
Inner Radius 内圈半径
Outer Radius 外圈半径
Number Of Rings 半径上的点个数
Points Per Ring 一圈上的点个数
Arc Angle 圆环扇形
Use Spiral Pattern 螺旋模式

为环状点阵添加限制条件

使用Distance

-
Filter > Filter Type 筛选方式
Score > Scoring Factor 权重比: 1则越远越大, -1则越近越大
  • 权重比为1

    最外层有几圈蓝色位置点, 均无效, 权重为0; 有效位置点由红色变为绿色, 权重由0变为1


  • 权重比为-1


  • 给定权重比范围, -1 ~ 1



设置中心点


环状点阵生成器中心点选项

选中环状点阵, Details > Center

-
EnvQueryContext_Querier 默认值, 使用EQS的上级Pawn; 可以自定义EnvQueryrContext



环状点阵距离限制条件距离计算的参照点选项

选中Distance, Details > Distance > Distance To

-
EnvQueryContext_Querier 默认值, 使用EQS的上级Pawn; 可以自定义EnvQueryrContext



设置EQS资产

  • 添加生成器: 扇形点阵

    配置
    Cone Degrees 200
    Angle Step 10
    Range > Data Binding Random number
    Range > Data Binding > Min 1200
    Range > Data Binding > Max 1600
    Track Mode Navigation


  • 为扇形点阵添加距离条件: Distance

  • 设置Distance: 限定筛选类型为最小值, 最小值为400


    小于给定最小值的点, 显示为蓝色, 权重为0


在行为树运行EQS

  • 断开ROOT节点到选择器的箭头

  • 添加序列

  • 为序列添加任务 Run EQSQuery

    Details > EQS > EQSRequest > Query Template, 选择EQS_RandomRoam

    Details > Blackboard > Blackboard Key , 选择AimLocation: 对黑板变量AimLocation进行设置


  • 为序列添加任务 MoveTo

    Details > Blackboard > Blackboard Key , 选择AimLocation: 从黑板变量AimLocation获取目的位置


  • 为序列添加任务 Wait

    等待2s



查看

  • 设置NPC生命值100

    BP_STUAICharacter > Details > MaxHealth

  • 在世界大纲选中AICharacter

  • 按下 ' 打开AI调试界面, 按下小写键盘 3 显示EQS信息

  • 选中位置点显示为浅绿色