虚幻基础:AI
能帮到你的话,就给个赞吧 😘。
·
能帮到你的话,就给个赞吧 😘
文章目录
- 配置NPC AI
- AI 测试
- get blackboard:角色蓝图也可直接调用
- 停止和启用AI
- cool down 和 wait 的 区别
- 观察黑板值:节点实时按照黑板值运行,而无需运行完再更新
- do once 在 任务中不起作用
- 获取actor位置和获取世界位置 区别
- 获取玩家角色
- AI move to
- 获取AI控制器
- AI—AI控制器:同玩家控制器一样,NPC由AI控制器控制
- AI控制器:通过行为树或代码 实现 控制:将控制器与角色解耦,使得可以独立编写。
- 行为树:AI逻辑:节点的执行流:根据黑板执行行为
- 感知组件:使AI可以发现周围的目标,并更新到黑板中:AIperception:只能感知角色
- EQS:计算测试值,从生成的item中选择所需要的item,并将其更新到黑板中
- 导航网格系统:负责AI自动寻路,被大部分寻路节点调用。p:调试键
- 黑板:基于黑板键存储各类型的容器:需要与行为树绑定
- AI动作控制器:AI决策出的动作具体执行
- AI调试器
- AI事件
- 装饰器
- 行为树蓝图(任务/服务)的变量 退出后值不会消失,下次进入依旧还在
- 控制器
- EQS测试
配置NPC AI
NPC指定控制器
控制器运行行为树
AI 测试
’键:开启debug模式
屏幕中心要对准要测试的NPC
4:显示感知数据
get blackboard:角色蓝图也可直接调用
停止和启用AI
获取控制器——获取大脑——停止和开始
cool down 和 wait 的 区别
观察黑板值:节点实时按照黑板值运行,而无需运行完再更新
do once 在 任务中不起作用
获取actor位置和获取世界位置 区别
获取玩家角色
AI move to
Target Actor:跟踪对象,持续跟踪此Actor——有值时,Destination失效
Radius:与目标间的距离
stop:到间距时是否停止
获取AI控制器
AI—AI控制器:同玩家控制器一样,NPC由AI控制器控制
AI控制器:通过行为树或代码 实现 控制:将控制器与角色解耦,使得可以独立编写。
控制器可直接使用黑板变量
创建控制器:蓝图——AI controller
角色指定控制器
功能
运行行为树
处理导航系统,控制移动
处理感官系统
初始化黑板数据——通过黑板与其他AI模块通信
获取黑板
创建文字命名
行为树:AI逻辑:节点的执行流:根据黑板执行行为
节点类型
流程节点:非叶节点:可以生长
任务节点:叶子节点:不能生长
附加节点:附加在流程&任务节点
行为树执行流:行为树的每次执行必须从根开始
第一次执行:从根节点到叶子节点
第二次执行:只有从根节点返回到叶子节点 才会开始第二次执行
节点优先级:行为树左侧节点优先级更高,优先执行:序号提示
流程节点
选择:分支节点:一次只能有一个分支成立&且只能由上到下判断:等价于Switch
继续执行:子节点执行失败后,继续下一节点。
返回
任一一支分支成功,selector返回成功
全部节点执行失败,返回失败
没有子节点,返回失败
顺序:并非分支而是一组任务:任务之间顺序执行:等价于代码块
继续执行:子节点执行成功后,继续下一节点。
返回
任一一支分支失败,sequence返回失败
全部节点执行成功,返回成功
没有子节点,返回失败
并行:主&辅任务并行执行。即单个任务的成功或失败不影响其他任务的执行。
直接:主任务完成,并行直接结束。
延迟:主任务完成,等待次任务完成结束。
任务节点:叶子节点:执行流的返回节点
完成执行:叶子节点返回
接收执行AI:重载
控制器
控制角色
附加节点:为控制节点和执行节点提供判断
装饰器:分支执行前的条件
装饰器
分支执行前的条件
分支执行时的中止:相当于break
新建装饰器
重载:perform condition check AI:
黑板键
观察器中止:中止分支并返回失败
self:结果改变时,终止自身整个分支的执行流
both:结果改变时,终止自身和兄弟的执行流
通知观察者
结果改变:黑板键的 导致条件结果改变的 改变
值改变:黑板键的任意改变
服务:为节点提供数据服务。数据由节点指定。服务会在后台实时更新数据——只要分支运行,就一直在后台运行
装载节点必须将黑板key公开,使得可以由节点指定。
行为树由控制器指定:运行行为树
感知组件:使AI可以发现周围的目标,并更新到黑板中:AIperception:只能感知角色
感官配置
视觉:使AI可以看到物体
听觉
事件
目标感知信息更新时:获取和丢失目标时 触发
目标感知更新时:感知组件感知到外界刺激源
actor:感知到的actor
stimulus:感知到的刺激物
successfully:接收到Actor的刺激信号
从刺激物获得感官类:判断当前感官类型
视觉:设置视线范围,视线范围内的物体都会被感知:视线会被物体遮挡
视线半径:视野距离
失去视线半径:丢失视野但仍能追踪的最大距离
视觉半角:视野半角
按归属检测:通常需要全部勾选
年龄:记忆时间:0:不会消失
主导感官:多个感官同时触发时,主导感官触发。
听力:监听声音,需要其他对象主动调用声音。
制作噪点:发出声音,触发感官更新。
触觉
预感:预测actor几秒后的状态,需要主动调用预感。
请求pawn预感事件:预测目标几秒后的状态。触发感官更新。
move to预感位置,必须 勾选 观察到的黑板值容差
EQS:计算测试值,从生成的item中选择所需要的item,并将其更新到黑板中
eqsTestingPawn:测试EQS
测试结果
橙色为保留
蓝色为删除
run EQS
运行EQS
返回最优的item
将item更新到黑板
EQS原理:测试器计算每个item的测试值,再根据测试值筛选出最优的item,并更新到黑板中
生成器:生成item
投射数据
检测模式:item的生成位置
导航:在导航网格体上生成
通道几何体:在几何体上生成:几何体必须要有碰撞
投射垂直偏移:item的z轴高度
donut:环形
弧形方向:指定环形方向
角度:以弧形方向两边各角度值生成环形
测试器:计算每个item的测试值
distance:计算 item 到 上下文 的距离
trace:判断 item 到 上下文 之间 是否有障碍物
pathFinding Batch:判断 item 到 上下文 是否可达
overlap:判断 item 与 场景物体 是否发生 重叠
dot:计算两个向量的乘积:值域[-1:1]:常用于区分 前方&后方&两侧
旋转:上下文的向前向量
1:完全同向
-1:完全反向
0:垂直
过滤器
布尔匹配:设置要保留的item
环境查询上下文:运行EQS所必要的信息
指定生成actor和测试actor
envEqsContext_Query:返回运行eqs的actor
自定义:envQuertContext_BlueprintBase
重载:provideSingleActor
分数:根据测试结果 计算每个item的得分
水平轴:测试结果
垂直轴:分数
生成器:选择生成器,生成 检测点item
数据绑定:查询参数:可以在run eqs中进行设置,并且还可以绑定到黑板中
测试:选择测试项,对每个item得出测试结果,再对测试结果过滤和评分
先过滤
再评分
水平轴:测试结果:由低到高
垂直轴:得分:由低到高
run EQS:行为树运行EQS查询,将查询出最符合条件的item赋值给黑板键
运行模式—25%随机项:用于从多个符合条件的item中随机选择一个
导航网格系统:负责AI自动寻路,被大部分寻路节点调用。p:调试键
设置:项目设置——导航网格体
绘制多边形边缘
绘制多边形开销
运行时生成——仅动态修改器
cost default:成本:成本越大,则越不能走,为障碍
障碍
静态障碍
导航修改器体积
区域类
自制区域类:NavArea:修改成本
动态障碍
actor:通过运行时生成actor生成障碍
添加碰撞体/并 设置 动态阻碍
添加修改器
导航链接:实现跳跃:也可用射线检测实现跳跃
黑板:基于黑板键存储各类型的容器:需要与行为树绑定
通过黑板键访问数据:通常作为行为树节点参数使用
读
指定黑板键:黑板键选择器
获取键值
写
指定黑板键:黑板键选择器
设置键值
通过黑板访问数据:通常在行为树外部使用
读
获取黑板
获取黑板值:指定键名
写
获取黑板
设置黑板值:指定键名
创建变量
actor
创建object
将基类改为actor
黑板键:用于访问黑板变量。黑板键无法在节点内直接设置值,只能公开在节点外设置。
行为树间的节点 数据并不互通,可将节点看作一个单独函数,函数间要通信,则必须通过黑板这个全局数据库。
每个节点可直接 访问 全局数据库
行为树指定黑板
控制器获取黑板
AI动作控制器:AI决策出的动作具体执行
AI调试器
AI事件
Receive Activation AI
Receive Execute AI
事件接收启用AI
装饰器
流控制
观察器中止:装饰器是否可以中止节点
self:中止自身
low priority:中止权限更低的节点:数字大于self的节点
both:中止self和low
cooldown 冷却:使节点只执行一次,并进入CD。红色代表节点已执行过。
行为树蓝图(任务/服务)的变量 退出后值不会消失,下次进入依旧还在
控制器
获取受控pawn
EQS测试
overLap:检测是否存在指定的东西
pathFinding:路径查询:检测从context到item可达的路径,删除不可达的item。可达分数为1
trace:射线检测:检测看不见context的item:从item发出射线,检测到context 中是否有障碍物。存在分数为1
布尔匹配:反转结果
distance:距离:检测item与context间的距离:距离越远分数越大
得分因数:反转结果
更多推荐
所有评论(0)