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

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 设置为忽略

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值