当前位置: 首页 > news >正文

【UE5.1】NPC人工智能——06 NPC攻击

目录

前言

效果

步骤

一、准备NPC狮子攻击的动画

二、NPC狮子攻击玩家造成伤害


前言

        在上一篇中(【UE5.1】NPC人工智能——05 给NPC添加视觉感知)我们已经给NPC添加了感知功能,使其在感知到玩家后就跑向玩家。本篇要实现的功能是,当NPC跑向玩家后攻击玩家的功能。

效果

步骤

一、准备NPC狮子攻击的动画

1. 准备使用狮子攻击的动画为“ANIM_Lion_ClawsAttack” 

2. 找到狮子的动画蓝图“ABP_Lion”

打开“ABP_Lion”,在动画图表中添加一个状态,这里命名为“ClawAttack”

添加一个变量“IsCrawAttacking”,用于表示狮子是否开始用爪子攻击

编辑过度到“ClawAttack”状态的规则如下

编辑“ClawAttack”状态回到Idle状态的规则如下

添加“ClawAttack”状态的动画输出姿势

3. 打开狮子蓝图“Character_Lion”

在事件图表中先获取到动画蓝图“ABP_Lion”的引用

添加一个狮子用爪子攻击的自定义事件,然后设置动画蓝图的“IsCrawAttacking”为true,1.33s后再设置为fasle。1.33s正好是动画序列“ANIM_Lion_ClawsAttack”单次播放时间。

二、NPC狮子攻击玩家造成伤害

1. 打开狮子骨骼网格体“SK_Lion”

找到狮子右手指的骨骼

添加一个插槽

2. 回到狮子蓝图“Character_Lion”,添加一个球形碰撞组件。该组件的作用就是用来判断狮子的爪子是否接触到玩家。

在细节面板中设置球形碰撞组件的父项套接字为我们刚才创建的插槽

减小球形碰撞组件的球体半径,这里设置为15

同样的方法,我们再给左爪添加一个插槽

给左爪添加碰撞组件

3. 回到狮子蓝图“Character_Lion”中,当球形碰撞组件接触到玩家后就通过应用伤害节点对玩家造成10点伤害。

4. 打开行为树“BT_Lion”,新建一个任务

这里命名为“BTTask_CrawAttack”

在该任务的事件图表中添加如下节点

5. 在行为树中添加刚创建的任务“BTTask_CrawAttack”

此时运行可以看到在狮子追上玩家后就会攻击玩家

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在Ubuntu 部署 Grafana且监控MySQL数据
  • PDF文件切割,无大小限制
  • WPF中的XAML是如何转换成对象的?
  • react面试题一
  • Vue实现表格数据的增删改查
  • 死锁如何产生及避免
  • 【计算机三级-数据库技术】操作题大题(第六套)
  • python数组列表操作简记二
  • MS SQL Server partition by 函数实战二 编排考场人员
  • 提升录制效率,这些录屏软件快捷键你不可不知
  • 【C++ 面试 - 面向对象】每日 3 题(十)
  • 加速边缘智能技术落地!移远通信推出全功能ARM主板QSM560DR、QSM668SR系列
  • Midjourney推出网页版编辑器应对Ideogram 2.0冲击
  • 【ACL2024】基于长尾检索知识增强的大语言模型
  • nginxlvshaproxy负载均衡的区别
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • HashMap ConcurrentHashMap
  • iOS | NSProxy
  • Java程序员幽默爆笑锦集
  • KMP算法及优化
  • PhantomJS 安装
  • SpringBoot几种定时任务的实现方式
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Swoft 源码剖析 - 代码自动更新机制
  • 闭包--闭包之tab栏切换(四)
  • 机器学习中为什么要做归一化normalization
  • 聊聊sentinel的DegradeSlot
  • 如何利用MongoDB打造TOP榜小程序
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 带你开发类似Pokemon Go的AR游戏
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #100天计划# 2013年9月29日
  • #if等命令的学习
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (C语言)共用体union的用法举例
  • (Java数据结构)ArrayList
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (Qt) 默认QtWidget应用包含什么?
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)opengl函数加载和错误处理
  • (四)进入MySQL 【事务】
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转) 深度模型优化性能 调参
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net 4.0发布后不能正常显示图片问题
  • .net framework 4.8 开发windows系统服务
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET/C# 获取一个正在运行的进程的命令行参数