虚幻4学习笔记(11) 蓝图实现AI移动、AI树实现移动、看见后寻找玩家

虚幻4学习笔记

B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732

蓝图实现AI移动

导航网格体

添加导航网格体边界体积 (AI可活动的区域)

按P键可以显示/隐藏区域范围

导航网格体边界体积 分为静态、动态

动态会实时计算导航网格内AI行进的路径 静态则不会

如何设置

人物移动

点选小白人蓝图ctrl+w快速复制出AI_BP

新建正式开始AI文件夹 并将AI_BP放入

删除AI_BP所有节点 及摄像机

添加AI move to

属性说明

pawn 连接移动对象 self 本身移动

destination 目的地

target actor 目标跟踪

acceptance radius 接触半径方位内会停止

stop on overlap

添加get random point in radius 获取可导航半径内的随机点 radius属性设为500(在导航网格原点500半径内的随机点)

添加event begin play 事件开始运行

添加set timer by event 以事件设置定时器

添加random float in range 范围内随机浮点

添加get actor location

连线

AI跟随样条线移动

新建Actor 添加样条组件 Spline 保存

拖入场景 后按Alt 创建路线


AI树实现移动

内容浏览器右键-人工智能 添加黑板和行为树

添加蓝图类 AI controller

AI controller 控制AI_BP

AI行为树 书写AI的行为逻辑

黑板为存储变量的地方

黑板添加变量 布尔 是否看见玩家 向量

AIcontroller 添加AIPerception AI感知组件

细节-AI感知-添加元素

添加AI实力配置

次要视觉半角 视觉锥形夹角

按归属检测 勾选检测中立方 (友方敌方需要C++底层完成)

点击目标感应更新时事件

添加 Cast to first personcharacter

stimulus引出中断AIStimulus

类型转换的作用 只有看到类型转换的对象时才会响应之后的逻辑

添加打印字符串

更改AI_BP中的AI控制设置为AIcontroller_new

打开行为树 根为起始的出发点

添加selector (选择器)sequence(序列)

右键sequence-添加装饰器 blackboard 对黑板中变量的进行判断

细节选择对应的变量

左边为键查询 已设置 右边为未设置

观察器终止设置为Both

AIcontroller_new

添加get blackbroad 添加黑板 引出 set value as bool 设置为布尔值 key name 引出 make...创建文字命名 输入黑板中变量的名字

时间开始运行 引出 run behavior tree 行为树运行 选择对应的行为树

新建 任务父类 重命名为 随机找点

打开随机找点

新增-重载函数 -时间接受执行AI

添加AI move to

添加get actor location

添加get random point in radius 获取可导航半径内的随机点 radius属性设为500(在导航网格原点500半径内的随机点)

添加Finish execute 完成执行 勾选success

行为树引出随机找点任务

引出wait

看见后寻找玩家

新建任务寻找玩家

新增-重载函数 -时间接受执行AI

添加AI move to

添加get player character 获取玩家角色

添加Finish execute 完成执行 勾选success

使AI一直朝向玩家

打开AI_BP 选中角色移动 细节搜索 角色移动(旋转设置) 将旋转朝向运动 勾选

类默认设置 勾选 使用控制器旋转 YAW

寻找玩家任务 添加设置焦距

随机找点任务 添加消除焦距

靠近玩家挥拳

AI_BP添加 Sphere cillsion 球体碰撞 设置球体半径 80

添加组件开始重叠时事件、组件结束重叠时事件

添加类型转换为第一人称

添加打拳动作

拖入Mesh 模型 引出 get anim instance获取动画实例 引出 montage play 蒙太奇播放 选择播放动画

蒙太奇的创建:动画序列 右键

蒙太奇播放 引出 set time by event 以时间设置定时器 添加计时器持续挥拳 inplay rate 改变播放速度

添加custom event loop

返回值是直接获取动画的长度,直接连到time效果如下:

当播放蒙太奇的同时,触发计时器,计时器开始倒计时,时间为蒙太奇的总时间

倒计时计时结束时。正好是动画播放完触发自定义事件,就会再一次播放动画。

触发计时器,勾选looping之后,就会如此反复播放动画

返回值引出Clear and Invalidate Timer by Handle 以句柄清楚定时器并使之无效

复制动画到正式开始AI 更名为AI_AimBP mesh动画中添加该动画蓝图类

双击打开 AI_AimBP 选择动画图层 双击

引出SLOT插槽 类似于 标签 用于区分蒙太奇是哪一个

mesh 碰撞 将碰撞预设改为Custom 检测响应 Camera 设置为忽略

相关推荐
bitbrowser2 小时前
giffgaff突然停用?先分清闲置停用和长期境外断开
笔记
九硕智慧建筑一体化厂家2 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
小席是个热心肠2 小时前
AI相关的自我学习
java·人工智能·学习
AI云海3 小时前
天幕红尘笔记
笔记
何事误红尘5 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山5 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.7 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd7 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_446260859 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
DeviceHub9 小时前
硬件工程师选型笔记:ALPS SKPMAPE010 与 Tonevee TS-3025 贴片轻触开关 PIN TO PIN 评估指南
笔记