UE5 大鹅的点击移动 第三人称

news2024/11/14 17:19:47

文章目录

  • 一、创建动画蓝图
  • 二、创建 Location 地标
  • 三、Character 和 PlayerControl 的控制
  • 四、实现效果

在这里插入图片描述

一、创建动画蓝图

这里以 UE5 从零开始制作跟随的大鹅-CSDN博客 创建的动态资产创建动画蓝图;需要用到的资产列表有:大鹅的骨骼网格体,大鹅物理资产,Idle 动画和 Walk 动画以及一些材质;

首先我们将 Physics Asset 配置给 Skeletal Mesh,然后使用两个动画创建一个 Blend Space 1D 资产;命名为 BS_goose;在 Blend Space 中,命名横坐标为 speed,并设置最大值为 120,将两个动画拖入到资产之中;

处理完毕后我们创建动画蓝图,命名为 ABP_goose;进入到 AnimGraph 中,配置 BlendSpace 1D 资产;

处理完毕后,进入到 Event Graph 之中,在这里我们需要做一个东西,那就是按照 Tick 来更新 Speed 参数进而改变 Animation 的状态;

到这里动画资产就创建完毕了;

二、创建 Location 地标

地标可以直接从网上下载也可以自己随便定义,这里是从网上下载得到:Download - MEGA;下载完毕后拖入到 UE5 中资源的文件夹中,得到如下:

其中材质可能需要重新配置,材质页面如下,这里是使用 A 通道连接到 Opacity Mask;

接下来使用静态网格体创建一个 Blueprint Actor 对象,命名为 BP_Location,该 Actor 中实现的功能很简单,简单配置 Static Mesh 和 Materials,然后在 BeginPlay 中实现一个延迟摧毁功能

Location 地标创建完毕!

三、Character 和 PlayerControl 的控制

首先创建一个 Character 命名为 BP_Character_Goose,配置好 Skeletal Mesh Asset 和 动画,调整好 Transform;接着创建一个 Spring Arm,在其中放置一个 Camera;

由于是 TopDown 游戏模式,需要调整一下 SpringArm 的长度和旋转角度,在这里需要固定旋转角度不受方向的变化,因此这里不能使用相对旋转而应该使用绝对旋转

接着我们需要关闭掉 Use Controller Rotation Yaw 和 开启 Orient Rotation to Movement 可以让 Character 转向;

然后我们可以降低一下鸭子的速度,这里设置最大速度为 200;

在这里 Character 的基础配置就完成了,接下来创建 PlayerControl:在 UE5 初始化的 TopDown 游戏中,采用的就是 PlayerControl 来控制输入;同时,为了实现按住不放运动的功能,这里可以使用 Input Mapping Context 来实现输入;创建好 Input Action 和 Input Mapping Context 如下;

配置 Input Mapping Context 如下;

这样 Input Mapping Context 就配置完毕了,接下来进入 PlayerController 中实现功能;首先是配置 Input Mapping Context 到事件中;

添加完毕后就可以正常使用 Mapping Context 功能,在这里先创建一个函数命名为 GetLocationUnderCursor,该函数主要用来获取鼠标下的位置;并设置为 Pure 而不需要主线链接;

接下来创建一个函数命名为 Follow,该函数用于实现按住不放引导 Character 移动的功能;在 Inputs 端口接受一个目标位置 Vector 变量;

接下来创建一个函数命名为 MoveTo,实现将 Character 移动到目标点的功能;在 SpawnActor 中,我们可以将 Class 提升为变量方便后续进行设置;这里的 Location 需要在 z 轴上加一个小数避免被遮挡;

最后将函数和 AI_Click 搭配如下,并在 Class Defaults 中设置 show Mouse Cursor 以至于在游戏中可以看到鼠标;其中提升了两个变量,第一个变量 Cached Location 是用来缓存 Location 方便后续移动到指定位置;第二个变量 PressedThreshold 可以防止频繁的点击移动;

设置完毕后我们可以对参数进行配置;FXCursor 可以配置为之前设置的 BP_Location,PressedThreshold 可以设置为 0.5;

四、实现效果

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

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

相关文章

【大模型从入门到精通4】openAI API 分类

这里写目录标题 分类理解 SYSTEM 和 USER 在 AI 对话中的角色System MessageUser Message工作原理示例分类示例更多分类示例理论问题理论 分类 理解 SYSTEM 和 USER 在 AI 对话中的角色 在分类任务中,通常需要向模型提供一个需要将其分类到预定义类别中的文本场景…

【数据结构与算法】堆顶删除

堆顶的删除 一.堆顶出列的原理二.堆顶出列的实现1.覆盖最大元素并出列2.向下调整成为堆 三.堆排序四,总结 一.堆顶出列的原理 还记得我们刚开始说的嘛,如果我想要拿出最大的,那么下一个最大的会花落谁家. 那么就需要用到堆顶出列的原理了. 然后我们再对顶节点,进行向下调整就可…

9-springCloud集成nacos config

本文介绍spring cloud集成nacos config的过程。 0、环境 jdk 1.8maven 3.8.1Idea 2021.1nacos 2.0.3 1、项目结构 根项目nacos-config-sample下有两个module,这两个module分别是两个springboot项目,都从nacos中获取连接mysql的连接参数。我们开工。 …

被遗忘的哑终端 —— 键盘键位演变的启发者

注:机翻,未校对。 The Forgotten World of Dumb Terminals 被遗忘的哑终端世界 A quick journey through the lost age of “glass teletypes.” 快速穿越失落的“玻璃电传打字机”时代。 From the earliest days of digital computers, researchers o…

【C++】-----继承(复杂的多继承及虚拟继承)

目录 前言 一、多继承 认识 继承顺序 二、菱形继承 三、菱形虚拟继承(重难点) 认识 底层原理(细致) 四、继承与组合 五、总结 前言 在前面我们所举的例子都是单继承,就是一个子类只有一个直接父类的关系&…

用Manim在图形和坐标轴上画线条

用Manim在图形和坐标轴上画线条 .画图像函数的切线 angle_of_tangent(x, graph, dx1e-08) angle_of_tangent(x, graph, dx1e-08)是 Manim 中用于计算图形在给定点的切线角度的函数。以下是对该函数参数的解释: 参数说明 x: 这是你想要计算切线角度的 x 坐标。在…

C++进阶之C++11

个人主页:点我进入主页 专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 C进阶 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂 目录 一.列表初始化 1.1一切皆可用列表初始化 1.2init…

代码随想录 day 29 贪心

第八章 贪心算法 part03 134. 加油站 本题有点难度,不太好想,推荐大家熟悉一下方法二 https://programmercarl.com/0134.%E5%8A%A0%E6%B2%B9%E7%AB%99.html 135. 分发糖果 本题涉及到一个思想,就是想处理好一边再处理另一边,不…

MySQL基础操作全攻略:增删改查实用指南(上)

本节目标: CRUD : Create, Retrieve , Update , Delete 新增数据 查询数据 修改数据 删除数据 1. CRUD 注释:在 SQL 中可以使用 “-- 空格 描述 ” 来表示注释说明 CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、…

什么是 IDR —— Linux 内核中的一种整数管理机制

文章目录 1 什么是 IDR1.1 IDR 的设计目的 2 IDR 的结构和实现2.1 核心数据结构2.2 常用操作2.2.1 分配 ID2.2.2 查找指针2.2.3 删除映射 2.3 IDR 的优点 3 Linux 内核中的整数 ID3.1 作用3.2 常见的整数 ID 示例 4 为什么要将整数 ID 与指针关联4.1 举例说明4.2 好处4.3 示例代…

学习笔记-Cookie、Session、JWT

目录 一、验证码的生成与校验 1. 创建生成验证码的工具类 2. 写一个 Controller 3. 实现验证码验证 1. 获取验证码 2. 验证码请求过程 3. 验证码的校验 4. 原理说明 5. 验证 6. 总结 二、JWT登录鉴权 1. 为什么要做登录鉴权? 2. 什么是 JWT 3. JWT相比…

MATLAB优化模型(2)

一、前言 在MATLAB中实现动态规划、图论、网络流模型(如最短路、最大流、最小生成树)的优化模型,可以通过多种方法完成,但通常会依赖于MATLAB内置的函数或工具箱,比如Optimization Toolbox、Graph Theory Toolbox等。以…

Python 实现股票指标计算——SKDJ

SKDJ (Stochastic KDJ) - 慢速随机指标 1 公式 LOWV:LLV(LOW,N); HIGHV:HHV(HIGH,N); RSV:EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,M); K:EMA(RSV,M); D:MA(K,M); 2 数据准备 我们以科创50指数 000688 为例,指数开始日期为2019-12-31,数据格式如下&#…

Leetcode 第 135 场双周赛题解

Leetcode 第 135 场双周赛题解 Leetcode 第 135 场双周赛题解题目1:3222. 求出硬币游戏的赢家思路代码复杂度分析 题目2:3223. 操作后字符串的最短长度思路代码复杂度分析 题目3:3224. 使差值相等的最少数组改动次数思路代码复杂度分析 题目4…

SQL注入 报错注入、文件上传、布尔盲注、时间盲注

第7关 文件上传 ---面试官常问 1、MySQL上传shell的满足条件 如果面试官问你如何通过MySQL向网站上传一个shell脚本或者其他语言的一些脚本 ---就可以通过outfile导出的方式进行上传; outfile导出的前提条件:1、必须知道网站的物理路径&#xf…

Java每日一练_模拟面试题2(循环依赖)

一、啥事Spring里面的循环依赖 SpringBoot 循环依赖通常发生在两个或多个Bean相互依赖对方时,例如:A依赖B,同时B也依赖A。 二、如何解决? 解决方案: 构造器注入:如果循环依赖发生在构造器中,S…

[YashanDB认证]YashanDB个人版安装

为什么选择YashanDB? 崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,经工信部下属机构权威检测,内核代码自主率100%。在经典数据库理论基础上,融入原创的有界计算理论、近似计算理论、并行可扩展理论和跨模融…

Taro学习记录(具体项目实践)

一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件,可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…

荒原之梦考研:专科考研成功的可能性大吗?

专科还是本科不是决定考研能否成功的关键因素,决定考研能否成功的关键因素是自己是否有清晰的规划、是否有足够的专注能力,以及是否能够吃得了考研的“苦”。 首先要有清晰的规划,比如说,不是我们每个人足够努力就都能考上 TOP1 …

electron-updater实现electron全量更新和增量更新——主进程部分

同学们可以私信我加入学习群! 正文开始 前言更新功能所有文章汇总一、更新插件选择二、在main.js中引入我们的更新模块三、更新模块UpdateController.js暴露的方法checkUpdate四、更新模块UpdateController.js中的监听4.1监听是否有新版本需要更新?4.2 监…