UE5学习记录part14

news2025/4/8 1:43:02

第17节 enemy behavior

173 making enemies move: AI Pawn Navigation

按P查看体积

So it's very important that our nav mesh bounds volume encompasses all of the area that we'd like our 因此,我们的导航网格边界体积必须包含我们希望

AI to navigate in and we can simply scale this up. AI 导航到 in,我们可以简单地扩大它。

使用targetpoint

 使用类的全部实例

命令show navigation可以在运行过程中查看导航地图

设置runtime generation为dynamic可以在游戏运行途中动态生成导航(比如如果是static,打碎一个罐子,这个罐子在nav mesh还是显示无法到达则ai不会经过那一片地区,换成dynamic则会动态检测地图上的障碍物;或者角色打开了一扇门,而敌人认为这个门还是没有打开因为导航地图没更新就会卡住)

So changing cell size to a smaller value will make our nav mesh a little bit tighter. 因此,将 cell size 更改为较小的值将使我们的导航网格更紧密一些。

Now you don't want to go too small because you want that nav mesh to give you some leeway. 现在,您不想做得太小,因为您希望导航网格为您提供一些回旋余地。

So that's cell size. 这就是细胞大小。 

cell height 帮助ai跨越具有高度变化的障碍物(但要注意 有一些没有被检测到高度的物品 例如罐子 ai会尝试跨越它们,但实际上不行是因为罐子有碰撞体积。这会导致ai被卡在某个角落)

 

 



174 enemy movement anims: getting more animations for our enemy

175 blendspaces: blending between different animations

按住shift+移动鼠标可以移动动画位置

按ctrl+绿色的x可以移动绿色icon x查看动画混合情况

We don't want it shuffling or sliding without actually orienting to movement, but that's pretty easy. 我们不希望它在没有真正适应运动的情况下随机移动或滑动,但这很容易。

We can go into Beep Enemy and Select Character movement component and search for Orient rotation to 我们可以进入 Beep Enemy 和 Select Character movement 组件,然后搜索 Orient rotation to

movement and check that. 移动并检查它。

And if we're checking that, we should also go to BP enemy self and get use controller rotation. 如果我们要检查这一点,我们还应该去 BP 敌人自身并使用控制器旋转。

Yea. 是的。

And uncheck that. 并取消选中它。

That way our enemy will not orient towards it's controller rotation, which by the way will orient to 这样,我们的敌人就不会朝向它的控制器旋转,顺便说一句,控制器旋转会朝向

the goal target when it's moving in an AI manner. 目标 目标 (当它以 AI 方式移动时)

 



176 patrol targets: adding patrol targets for the enemy

绿色圆圈即是enemy的导航所经过的点



177 selecting patrol targets: patrolling to different targets

178 patrol wait time: adding a wait time between patrol targets



179 pawn sensing component: chasing character when seen

添加pawn sensing 组件

蓝图实现

c++实现



 180 enemy states: patrolling, chasing, and attacking

181: enemy losing interests: back to patrolling

182 attack radius : entering attack state

183 agro when hit: let's anger the enemy

184 weapon alterations: getting more weapons

导出武器的static mesh

 blender中修改武器的原点位置,让角色只使用一个socket位置就能够适配多种武器

在blender编辑模式下,r+坐标轴+度数旋转,g+坐标轴移动物体修改原点位置,s放大缩小,修改完成之后导出为fbx文件

 导入武器时,不要勾选导入material,而是关联已经存在的material

copy原本武器的材料再paste

还需要修改武器碰撞,weaponbox等位置,设置itemmesh和整体的collision为nocollision

 

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

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

相关文章

Docker的备份与恢复

一、两种基本方式 docker export / import 在服务器上导出容器docker export container_name > container_backup.tar这里使用 > 重定向时默认保存路径为当前运行命令的路径,可以自行指定绝对路径来保存,后续加载时也使用对应的路径即可。 恢复为…

DAPP实战篇:规划下我们的开发线路

前言 在DApp实战篇:先用前端起个项目一文中我们起了一个前端项目,在后续开发中笔者将带领大家一步步完成这个DAPP,为了方便后续讲解,本篇将完整说明后续我们要进行的开发和思路。 主打前端 实际上一个完整的DAPP是由前端和智能…

【Elasticsearch】开启大数据分析的探索与预处理之旅

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

状态机思想编程练习

状态机实现LED流水灯 本次实验,我们将利用状态机的思想来进行Verilog编程实现一个LED流水灯,并通过Modelsim来进行模拟仿真,再到DE2-115开发板上进行验证。 ​ 首先进行主要代码的编写。 module led (input sys_clk,input sys_…

前端新增数据,但数据库里没有新增的数据

先看情况: 1.前端,可以进行删查改,但是新增数据之后,显示保存成功,也增加了空白的一行,但是数据没有显示出来。 2.后端接收到了数据,但返回结果的列表里面是空的;同时数据库里面没…

httpx模块的使用

在使用requests模块发起请求时,报以下错误,表示服务器有可能使用的是http2.0协议版本,导致requests无法爬取。 此时就可以使用httpx模块爬取。 先下载httpx模块: pip install httpx[http2]然后用httpx发起请求: impo…

论文阅读10——解开碳排放与碳足迹之间的关系:文献回顾和可持续交通框架

原文地址: Unraveling the relation between carbon emission and carbon footprint: A literature review and framework for sustainable transportation | npj Sustainable Mobility and TransportTransportation decarbonization has drawn enormous attention globally,…

新一代AI架构实践:数字大脑AI+智能调度MCP+领域执行APP的黄金金字塔体系

新一代AI架构实践:数字大脑智能调度领域执行的黄金金字塔体系 一、架构本质的三层穿透性认知 1.1 核心范式转变(CPS理论升级) 传统算法架构:数据驱动 → 特征工程 → 模型训练 → 业务应用 新一代AI架构:物理规律建…

Winform MQTT客户端连接方式

项目中使用到Winform的数据转发服务,所以记录下使用到的方法。 一.创建单例模板 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp.Scripts {public class SingleTon&…

Linux Bash 脚本实战:自动监控域名证书过期并发送邮件告警

在日常运维工作中,SSL 证书的管理是一个非常重要的环节,尤其对于线上业务来说,证书到期会直接导致服务不可用。为了避免证书到期带来的风险,我们可以编写一个 Bash 脚本来自动检测域名的 SSL 证书过期时间,并在证书即将到期时发送告警邮件。 目录 脚本功能概述 代码实现…

【模型量化】GPTQ 与 AutoGPTQ

GPTQ是一种用于类GPT线性最小二乘法的量化方法,它使用基于近似二阶信息的一次加权量化。 本文中也展示了如何使用量化模型以及如何量化自己的模型AutoGPTQ。 AutoGPTQ:一个易于使用的LLM量化包,带有用户友好的API,基于GPTQ算法(仅…

学透Spring Boot — 018. 优雅支持多种响应格式

这是我的专栏《学透Spring Boot》的第18篇文章,想要更系统的学习Spring Boot,请访问我的专栏:学透 Spring Boot_postnull咖啡的博客-CSDN博客。 目录 返回不同格式的响应 Spring Boot的内容协商 控制器不用任何修改 启动内容协商配置 访…

C++中的多态和模板

#include <iostream> #include <cstdlib> #include <ctime> #include <string>using namespace std;// 武器基类 class Weapon { public:virtual ~Weapon() {}virtual string getName() const 0; // 获取武器名称virtual int getAtk() const 0; …

Wireshark 安装保姆教程(图文详解)

一、Wireshark 简介 Wireshark是使用最广泛的一款开源抓包软件&#xff0c;常用来检测网络问题、攻击溯源、或者分析底层通信机制。它使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换&#xff0c;它支持在 Windows、Mac OS、Linux 等多种主流操作系统上运行 &…

下载安装Node.js及其他环境

提示&#xff1a;从Node版本降级到Vue项目运行 文章目录 下载Node.js环境配置配置环境变量 安装 cnpm&#xff08;我需要安装&#xff09;安装脚手架安装依赖安装淘宝镜像&#xff08;注意会更新&#xff09;cnpm vs npm 与新旧版本核心差异包管理器不同功能差异如何选择&#…

MyBatis Plus 在 ZKmall开源商城持久层的优化实践

ZKmall开源商城作为基于 Spring Cloud 的高性能电商平台&#xff0c;其持久层通过 MyBatis Plus 实现了多项深度优化&#xff0c;涵盖分库分表、缓存策略、分页性能、多租户隔离等核心场景。以下是具体实践总结&#xff1a; 一、分库分表与插件集成优化 1. 分库分表策略 ​Sh…

rust 同时处理多个异步任务,并在一个任务完成退出

use std::thread; use tokio::{sync::mpsc,time::{sleep, Duration}, };async fn check_for_one() {// 该函数会每秒打印一次 "write"loop {println!("write");sleep(Duration::from_secs(1)).await;} }async fn start_print_task() -> Result<(), (…

使用注解开发springMVC

引言 在学习过第一个springMVC项目建造过后&#xff0c;让我们直接进入真实开发中所必需的注解开发&#xff0c; 是何等的简洁高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在资源过滤的问题&#xff0c;在maven依赖中加入 <build><resources>&l…

【Axure元件分享】时间范围选择器

时间范围选择器下拉选择开始时间和结束时间&#xff0c;实现效果如下。 源文件截图&#xff1a; 元件获取方式&#xff1a;

【Linux操作系统——学习笔记三】Linux环境下多级目录构建与管理的命令行实践报告

1.在用户主目录下&#xff0c;使用以下方法新建目录&#xff0c;并显示详细执行过程&#xff1a; &#xff08;1&#xff09;使用绝对路径在当前目录下创建 new_dir目录 &#xff08;2&#xff09;使用相对路径、在当前目录创建dir1、dir2、dir3目录 &#xff08;3&#xff09…