Unity转Unreal5从入门到精通之如何实现一个简单的AI寻路

news2024/11/13 9:04:17

前言

我们今天使用最基础的引擎知识,来给大家创建一个简单的AI,可以追踪目标,攻击目标。
使用Unity类比的话,就是一个怪物预制体,放到了寻路上,当他视野看到目标后,就一直追踪目标,然后攻击目标

步骤

1.创建Character

在这里插入图片描述

2.转换蓝图

即使把一个游戏对象,转为预制体,并添加脚本
在这里插入图片描述

3.认识蓝图

蓝图就是对应unity中的预制体
左侧就是蓝图的详情节点,对应预制体的结构
右侧是他的每个组件的详情,对应Uniyt的Inspector
中间是它的视图显示,分为3哥不同功能
视口,就是类似场景中这个蓝图的显示
Construction Script,就是蓝图的构造函数
事件图标,相当于给uniyt的预制体,默认添加了一个组件,这个组件有几个生命周期
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.设置模型和动画

选中蓝图下面的网格图,在他的细节面板,可以设置模型和动画
在这里插入图片描述
在这里插入图片描述

5.设置寻路组件PawnSensing

在这里插入图片描述

添加完PawnSensing组件后,我们看到一个锥形的辅助线,即AI的视觉角度
在这里插入图片描述

6.添加看见Pawn的事件

在这里插入图片描述
切换事件图表,我们看到除了原来的3个事件函数,又多了 一个看见Pawn上的事件,我们就可以通过它来做AI看到目标后的寻路追踪和攻击了。
在这里插入图片描述
追击目标的蓝图逻辑
在这里插入图片描述
使用AIMoveTo来追击目标
在这里插入图片描述

7.地形烘焙

添加组件 导航网格体边界体积,NavmeshBoundsVolume
调整Volume的大小,如下所示
通过按P键,可以切换是否显示烘焙的结果
在这里插入图片描述

8.AI蓝图逻辑

完成AI怪物的蓝图逻辑,即可让AI追击主角
在这里插入图片描述

在这里插入图片描述

9.动画蓝图设置

为了让怪物追击的动画更加平滑,我们需要创建一个动画蓝图,让怪物可以在不同速度追击时,分别播放走,跑动画。
在资源目录,创建一个动画蓝图
在这里插入图片描述
在弹出的创建面板中,选择父类AnimInstance,
目标骨骼选择你的指定模型的骨骼即可
在这里插入图片描述

10.创建混合空间1D动画

在这里插入图片描述
分别设置待机,走,跑动画到帧事件位置,从资产管理器中直接拖拽过来即可
在这里插入图片描述
最大速度时600的情况下,分别设定速度为0,300,600,动画为Idle,walk,run
在这里插入图片描述

11.使用混合空间1D动画

然后在动画蓝图中使用这个混合空间1D动画即可,如下所示:
speed是角色的蓝图上面进行设置的
这里直接获取speed,然后控制混合空间动画1D的动画播放,最后把姿势输出。
在这里插入图片描述

12.给怪物AI设置动画蓝图

设置动画蓝图给怪物AI
在这里插入图片描述
好了,这就是一个简单的AI
后面我们再来做一个拥有复杂逻辑的行为树的AI
希望这篇博客可以对你有所帮助。

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

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

相关文章

转账记录是怎样使用ZK实现证明的

目录 转账记录是怎样使用ZK实现证明的 1. 准备阶段 2. 生成证明 3. 转账记录的验证过程 4. 隐私保护 5. 应用场景 结论 转账记录是怎样使用ZK实现证明的 转账记录使用ZK(零知识证明)实现证明的过程,主要依赖于零知识证明技术中的协议,如ZK-SNARKs(Zero-Knowledge S…

72、docker资源管理

一、docker数据卷 容器和宿主机之间数据共享-----------挂载卷------------容器内的目录和宿主机的目录进行挂载。实现数据文件共享。 容器的生命周期是有限的,一旦重启所有对容器内部文件数据的修改以及保存的数据会被初始化,所以为了防止数据丢失&am…

Java语言程序设计基础篇_编程练习题16.22(播放、循环播放和停止播放一个音频剪辑)

题目:16.22(播放、循环播放和停止播放一个音频剪辑) 编写一个满足下面要求的程序: 使用AudioClip获取一个音频文件,该文件存放在类目录下。放置三个标记为Play、Loop和Stop的按钮,如图16-46a所示。单击Pla…

什么是调度中心控制台,它在现代运营管理中扮演什么角色?

在现代复杂多变的运营环境中,调度中心控制台作为企业内部信息管理的核心枢纽,扮演着至关重要的角色。它不仅是一个技术平台,更是企业高效运营和智能决策的重要支撑。接下来就给大家科普一下关于调度中心控制台知识点,及在现代运营…

HarmonyOS笔记4:从云数据库获取数据

移动应用获取数据的方式主要有: 1.从网络中获取数据接口API。 2.从华为云数据库获取云数据库的资源。 3.从移动终端直接获取本地的数据 在HarmonyOS笔记3中已经完成了方式一从网络中获取数据接口API的方式。在本篇笔记中,将讨论从云数据库中获取数据。 因…

极狐GitLab CI/CD 如何构建镜像并推送到 azure 镜像仓库?

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…

远程访问安全:rsync、ProFTPD、OpenSSH和VNC漏洞分析

文章目录 rsync未授权访问概念复现个别工具检测批量工具检测 proftpd远程命令介绍CVE-2015-3306复现 openssh信息泄露介绍复现 libssh身份绕过介绍条件危害复现 向日葵远程RCE介绍条件靶场: VNC配置不当介绍复现 在当今高度互联的数字时代,远程访问工具已…

[Qt][Qt 事件][上]详细讲解

目录 1.事件介绍2.事件的处理3.鼠标事件4.按键事件5.moveEvent6.resizeEvent 1.事件介绍 事件是应⽤程序内部或者外部产⽣的事情或者动作的统称 在Qt中使⽤⼀个对象来表⽰⼀个事件,所有的Qt事件均继承于抽象类QEvent 事件是由系统或者Qt平台本⾝在不同的时刻发出的…

深入理解C#中的yield关键字:提升迭代性能与效率

文章目录 前言一、yield return二、yield break总结 前言 在C#中,yield 关键字是特别用于迭代器块和方法中的,它允许你逐个返回序列中的元素,而不是一次性返回整个集合。使用 yield 可以显著提高处理大数据集或进行复杂迭代时的性能和内存效率…

【数据结构初阶】队列经典习题两道

hello! 我是云边有个稻草人 目录 一、用队列实现栈 二、用栈实现队列 Relaxing Time ! 正文开始—— 一、用队列实现栈 225. 用队列实现栈 - 力扣(LeetCode) 根据题目要求,我们要用两个队列来实现栈的相关功能&…

虚拟机上使用Ubuntu1804上编译qt5.12.9部署到jetson nano上

开发qt界面,基于Qt5.12.9,开发环境使用虚拟机加载Ubuntu1804,开发完成后的qt程序最后部署到jetson nano上,使用的通用编译器是gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu 安装编译器 本文中直接将gcc-linaro-7.5.0-2019.…

汇昌联信做拼多多店铺如何运营?

汇昌联信如何在拼多多上运营店铺,是许多电商新手和希望扩展市场的商家所关注的问题。在这个快速发展的电商平台上,掌握正确的运营策略,对于提升店铺销量、增强品牌影响力至关重要。接下来,我们将详细探讨如何有效运营拼多多店铺。…

Angular由一个bug说起之九:AWS S3 文件下载问题

引言 在现代 Web 开发中,我们经常需要处理来自全球不同地区的数据,这包括文件名中可能包含的非拉丁文字符。最近,在一个项目中,我们遇到了一个与 Amazon S3 服务相关的挑战,涉及到文件名编码的处理。当从 S3 下载文件…

Redis分布式部署方式-主从复制

分布式部署Redis方式 分布式系统,涉及到一个非常关键的问题:单点问题 单点问题:如果某个服务器,只有一个节点(只搞一个物理服务器,来部署这个服务器程序),会遇到一些困难&#xff…

多线程学习之ThreadLocal详细笔记

ThreadLocal详细笔记 一、ThreadLocal的基本概念二、ThreadLocal的独特性2.1 数据访问方式2.2 线程安全实现2.3 适用场景 三、ThreadLocal 的简单使用四、ThreadLocal 的工作原理五、ThreadLocal和内存泄漏的关系5.1 ThreadLocalMap的Entry的Key设计成弱引用5.2 弱引用会导致内…

超简单4行代码-STM32F103的HAL实现有源蜂鸣器报警

1、概述 在嵌入式项目开发中,使用蜂鸣器作为简单的报警或提示装置非常常见。根据不同的应用场景,我们可能会选择有源蜂鸣器或无源蜂鸣器。本文将重点介绍如何通过STM32F103系列单片机,利用HAL库,仅通过4行代码实现对有源蜂鸣器的…

django学习入门系列之第九点《初识MySQL》

文章目录 9.1 初识网站9.2 初识MySQL下载安装创建配置文件初始化启动MySQL服务进入mysql查看已有文件夹退出(关闭连接)忘记密码 往期回顾 9.1 初识网站 Python相关:基础、函数、数据类型、面向、模块。前端开发直观:HTML、CSS、JavaScript、jQuery:[静态…

【运维】JetBrains Gateway (Pycharm) SSH免密连接,改为免密连接

一直要求输入密码,很烦人: 如何免密连接? 1 重新打开gateway,来到这个界面点新建连接: 2 点这里设置: 3 在这一页,你可以改你的所有配置,只要设置为password并且保存密码&…

详解Redis 高可用的方式 Redis Cluster

Redis 高可用方式 Redis 提供了多种高可用性方案,主要包括以下几种方式: 主从复制(Replication) 主从复制是最基本的高可用性方案,通过将数据从一个主节点复制到多个从节点来实现数据的冗余和读写分离。主节点负责所…

数据结构--数据结构概述

一、数据结构三要素 1. 数据的逻辑结构 数据的逻辑结构是指数据元素之间的关系和组织方式,通常分为线性结构和非线性结构。 线性结构:例如线性表,其中数据元素按照顺序排列,彼此之间存在一对一的关系。 非线性结构:…