高级AI记录笔记(五)

news2024/11/27 21:50:23

学习位置

  • B站位置:红豆丨泥 UE AI 教程
  • 原作者Youtube位置:https://youtu.be/-t3PbGRazKg?si=RVoaBr4476k88gct
  • 素材自备

改良近战AI格挡行为

  • 把近战AI的格挡行为从行为树中单独一个任务分块中给删除掉,因为我们希望敌人在受到伤害后立即进行阻止在接收伤害函数中处理它
    在这里插入图片描述
  • 新建一个函数用来尝试概率性进行格挡
    在这里插入图片描述
  • 重写近战AI的TakeDamage函数,在受到伤害之前尝试进行格挡
    在这里插入图片描述
  • 改写一下格挡的函数
    在这里插入图片描述
    在这里插入图片描述

团队敌人

检查AI是属于同一团队

  • 在伤害系统接口里面添加一个获取团队的函数
    在这里插入图片描述
  • 在玩家与敌人基类蓝图中实现一下这个函数
    在这里插入图片描述
    在这里插入图片描述
  • 在AI控制器中添加一个函数用来判断感知到的人是否与自身在同一团队
    在这里插入图片描述
  • 在AI的视觉感官中,不需要只针对玩家进行攻击了,判断是否看到的Actor是不是同一团队就行了
    在这里插入图片描述
    在这里插入图片描述

同一团队不会相互造成伤害

  • 将近战AI的攻击碰撞检测,由单体换为多体的
    在这里插入图片描述
  • 这样也会造成一个bug,就是AI攻击一次,会多次击中同一Actor,我们要确保每次挥刀只击中一次Actor一次

检查是否在同一团队,是否多次击中

  • 在攻击接口里面添加个函数用来检测
  • 新建一个伤害所有非团队成员函数
    在这里插入图片描述
    在这里插入图片描述
  • 这样这个函数就让多次检测到同一Actor,只受到一次伤害的计算,并且同一团队的不会相互造成伤害
  • 修改近战AI伤害检测的逻辑
    在这里插入图片描述
    在这里插入图片描述

远程AI的伤害检测修改

  • 远程AI攻击到第一个非同团队Actor造成伤害,如果中间格挡一个同团队Actor,子弹会穿过队友,打中攻击的那个敌对Actor
  • 在攻击接口中新建一个函数,跟近战AI那个检测伤害非团队函数差不多
    在这里插入图片描述
    在这里插入图片描述

修改一个小bug

  • 如果攻击队友的话,它会来攻击你,这是因为,在伤害感官系统,敌人蓝图基类中的受击反应事件哪里,受到攻击时,有个设置是否知道上一个攻击目标,但是没有新的攻击目标时,这个时候队友攻击它,就会把队友设置成新的攻击目标
  • 在基类的受击反应设置攻击对象这里做个判断就行
    在这里插入图片描述

制作法师AI

素材自备

在这里插入图片描述
在这里插入图片描述

  • 实现一些需要的基本接口函数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

法师AI攻击行为

  • 重写一下法师AI的攻击接口事件
    在这里插入图片描述

法师AI瞬移技能攻击

  • 瞬移特效资产来自
    在这里插入图片描述
  • 在法师AI中添加一个瞬移事件与瞬移结束后重置一下属性的事件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 瞬移结束事件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 为远程AI的行为树添加一个任务,用来作为法师AI的瞬移技能,注意一点,之前做绑定事件分发器动没有进行取消绑定,这样是有些问题的,当我们完成事件分发器的调用要完成的逻辑时,最好是需要结束绑定的。
    在这里插入图片描述

瞬移行为树逻辑

在这里插入图片描述

修复法师AI瞬移Bug

  • 限定瞬移的状态,不能一下子执行多次瞬移
    在这里插入图片描述
  • 瞬移时停止当前的蒙太奇播放。例如:攻击

在这里插入图片描述

  • 瞬移结束停止一下移动,然后恢复一下可以瞬移的限定变量
    在这里插入图片描述
    在这里插入图片描述
  • 瞬移过程后攻击会打中自己,是因为攻击忽略自己应该是忽略胶囊体组件,告诉这个射弹忽略自己的胶囊体组件
    在这里插入图片描述

AI控制器对瞬移技能问题

  • !!!!如果瞬移速度很慢,那么就把AI控制器改回为群集AI控制器,因为改为群集AI跳跃又会出问题,所以之前就改回普通AI控制器了
    在这里插入图片描述

制作法师AI(二)

制作单独法师AI的行为树

  • 将之前法师AI用的远程AI的行为树回复成原样,法师AI要单独用自己的行为树
    在这里插入图片描述
  • 复制一份远程AI的行为树,作为法师AI的行为树,进行一些更改,首先将法师AI的移动到视线范围内的EQS范围设置为,我们的防御范围,应该这个比攻击范围更远一点,这个里面的Value500并不重要,这个是如果我们没有设置黑板键,它就会是默认值为这个Value
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

法师瞬移的EQS

  • 新建一个法师瞬移的EQS,让法师瞬移到玩家看不到的身后点
  • 老样子,进行测试时,将测试目标换成玩家生成位置,且不能在狭窄的位置,因为法师AI要发射魔法球
    在这里插入图片描述
  • 首先将路径测试换成道路存在
    在这里插入图片描述
  • 追踪测试的检测形状为球形,设置半径,这样就会淘汰掉窄的位置了
    在这里插入图片描述
  • 添加一个路径测试,来只会瞬移到离玩家远点的位置,最小范围在350,最大范围这里只是临时给个500好看测试结果,因为这个最大范围要进行数据绑定,与AI的攻击范围进行绑定
    在这里插入图片描述
    在这里插入图片描述
  • 还需要添加一个距离测试,保证自己离是玩家最远的点,离玩家最远的点都是最高的
    在这里插入图片描述
    在这里插入图片描述
  • 记得将最大范围值进行数据绑定,换回测试目标为玩家
    在这里插入图片描述
    在这里插入图片描述

法师的行为树

  • 添加一个任务用来单独作为法师AI的攻击任务
    在这里插入图片描述
    在这里插入图片描述
  • 行为树逻辑
    在这里插入图片描述
    在这里插入图片描述

法师的治疗功能制作

  • 添加一下资产包
    在这里插入图片描述
  • 在法师AI蓝图中添加两个事件用来生成回血的AOE法阵,与结束销毁法阵
    在这里插入图片描述

添加法师回血Task

在这里插入图片描述

回血行为树逻辑

  • 行为树逻辑
    在这里插入图片描述
  • 给回血生成AOE那个位置添加一个射线检测,让生成位置在AI脚下
    在这里插入图片描述
    在这里插入图片描述
  • 运行结果
    请添加图片描述

解决一些细节问题

  • 如果,治疗AOE由于什么原因永远不会走到调度程序就会造成一些bug,所以我们将调度程序移到前面
    在这里插入图片描述
  • 如果AI正在攻击时,玩家消失在AI视线中,AI就会进行Move To Line of Sight这个序列,那敌人就会一边攻击一边移动,滑步现象,所以我们需要将检测AI是否看见玩家的这个装饰器中止模式给调成None,这样这个序列就会执行完整不会提前中断。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

彻底解决 macOS 下Matplotlib 中文显示乱码问题

彻底解决 macOS 下Matplotlib 中文显示乱码问题 在使用 Python 的 Matplotlib 库进行数据可视化时,中文字符的显示常常会出现乱码问题,尤其在 macOS 系统上。在网上找了一大堆方法,花了很久,发现不是要安装各种字体就是要改配置&…

11.25.2024刷华为OD

文章目录 HJ76 尼科彻斯定理(观察题,不难)HJ77 火车进站(DFS)HJ91 走格子方法,(动态规划,递归,有代表性)HJ93 数组分组(递归)语法知识…

突破性算法:让无人机集群在狭窄空间内穿针引线

导读 在建筑救援、森林搜索等任务中,无人机集群经常会遇到狭窄空间限制和动态障碍物变化等挑战。这些挑战会导致集群内部冲突,或在执行任务时因避让动态障碍物而导致系统混乱。实际应用场景和任务的严格特征往往使得全局搜索难以优化,而局部避…

Python中的简单爬虫

文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…

【Shell】运维快捷键及shell各种不同实际运维场景

一,控制台使用技巧 1,操作快捷键 Ctrlr :可以快速查找历史命令 Ctrll :可以清理控制台屏幕 Ctrla \ Ctrle :移动光标到命令行首\行尾 Ctrlw \ Ctrlk :删除光标之前\之后的内容 2,VIM文件编辑快捷键 快捷键ZZ :文件保存并退出 3&#xff…

SlickGrid复选框

分析 1、先在columns首列添加复选框; 2、在SlickGrid注册刚添加的复选框; 3、添加复选框变化事件; 4、注册按钮点击事件,点击获取已选中的行。 展示 代码 复选框样式(CSS) .slick-cell-checkboxsel {bac…

基于单片机的智慧小区人脸识别门禁系统

本设计基于单片机的智慧小区人脸识别门禁系统。由STM32F103C8T6单片机核心板、显示模块、摄像头模块、舵机模块、按键模块和电源模块组成。可以通过摄像头模块对进入人员人脸数据进行采集,识别成功后,舵机模块动作,模拟门禁打开,门…

【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容

目录 0 总结 0.1pd.Dataframe有一个比较麻烦琐碎的地方,就是引号 和括号 0.2 pd.Dataframe关于括号的原则 0.3 分清楚几个数据类型和对应的方法的范围 0.4 几个数据结构的构造关系 list → np.array(list) → pd.Series(np.array)/pd.Dataframe 1 python 里…

Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)

3 个月前阿虚就已经写文章告警过大家,Chromium 内核的浏览器将在 127 以上版本开始限制仍在使用 Manifest V2 规范的扩展:https://mp.weixin.qq.com/s/v1gINxg5vMh86kdOOmqc6A 像是 IDM、油猴脚本管理器、uBblock 等扩展都会受到影响,后续将无…

基于Spring Boot的装饰工程管理系统论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大,容错率低&#x…

路由器的工作原理

网络拓扑结构 主机A: IP地址:10.1.0.1/16 MAC地址:MACA 主机B: IP地址:10.2.0.1/16 MAC地址:MACB 网关G0/0/0: IP地址:10.1.0.2/16 MAC地址:MACC 网关G0/0/1&#…

【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神经网络)是transformer特征增强的重要组成部分!

【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神经网络)是transformer特征增强的重要组成部分! 【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神…

51单片机从入门到精通:理论与实践指南(一)

单片机在智能控制领域的应用已非常普遍,发展也很迅猛,学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出,但51单片机价格低廉、易学易用、性能成熟,在家电和工业控制中有一定的应用,而且学好了51单片机&…

java写一个石头剪刀布小游戏

石头剪刀布是一款经典的手势游戏,通常由两人参与,玩法简单且充满趣味。玩家通过出示手势代表“石头”、“剪刀”或“布”,并根据规则比较手势决定胜负。它广泛用于休闲娱乐、决策或解压活动。 一、功能简介 用户与计算机对战。 用户输入选择:石头、剪刀或布。 计算机随机生…

MATLAB深度学习(六)——LSTM长短期神经网络原理与应用

LSTM的应用可以参见一个相当好的视频:小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x,,xn的神经网络结构&#xff0c…

音视频技术扫盲之预测编码的基本原理探究

预测编码是一种数据压缩技术,广泛应用于图像、视频和音频编码等领域。其基本原理是利用数据的相关性,通过对当前数据的预测和实际值与预测值之间的差值进行编码,从而实现数据压缩的目的。 一、预测编码的基本概念 预测编码主要包括预测器和…

第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024)

重要信息 会议官网:itca2024.iaecst.org 会议时间:2024年12月06-08日 会议地点:中国-广州(越秀国际会议中心) 会议简介 第六届信息技术与计算机应用学术会议(ITCA 2024) 依旧作为第六届国际科技创新学术交流大会…

Leetcode 将有序数组转换为二叉搜索树

算法思想及代码解析: 这段代码的目的是将一个有序数组转换为 高度平衡的二叉搜索树(Balanced Binary Search Tree, BST)。以下是算法的详细解释: 1. 什么是高度平衡的二叉搜索树? 二叉搜索树:对于树中的每…

15 go语言(golang) - 并发编程goroutine原理及数据安全

底层原理 Go 的 goroutine 是一种轻量级的线程实现,允许我们在程序中并发地执行函数。与传统的操作系统线程相比,goroutine 更加高效和易于使用。 轻量级调度 用户态调度:Go 运行时提供了自己的调度器,这意味着 goroutine 的创建…

ESP-KeyBoard:基于 ESP32-S3 的三模客制化机械键盘

概述 在这个充满挑战与机遇的数字化时代,键盘已经成为我们日常学习、工作、娱乐生活必不可少的设备。而在众多键盘中,机械键盘,以其独特的触感、清脆的敲击音和经久耐用的特性,已经成为众多游戏玩家和电子工程师的首选。本文将为…