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

ops/2024/11/15 5:54:49/

文章目录

  • 一、创建动画蓝图
  • 二、创建 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.ppmy.cn/ops/90010.html

相关文章

2024 7.29~8.4 周报

一、上周工作 2024 7.22~7.28周报-CSDN博客 二、本周计划 修改论文 三、完成情况 3.1 论文修改 3.1.1 摘要 问题:所写问题是一般性的深度网络问题(过拟合),并没有针对FWI的问题(边缘不清晰、深层不清晰、速度慢…

解决VideoReader出现Thread worker: Error sending packet报错

问题现象:对于个别视频,单独读取该视频是正常,使用decord中的VideoReader读取会报如下的错误: [06:56:29] /github/workspace/src/video/ffmpeg/threaded_decoder.cc:292: [06:56:29] /github/workspace/src/video/ffmpeg/threade…

【Android】Kotlin实现选取相片拍照截图图片上传(兼容android 9-14)(超详细完整版)

需求 技术栈 : android 原生 & kotlin 1.6.20 需求 : ① 选取相片&拍照 ② 截图(CropImage) ③ 上传图片(含网络接口请求封装) 代码 一. build.gradle (Module: app) 配置依赖 // 网络请求implementation com.squareup.okhttp3:okhttp:4.9.0implementation "co…

Jmeter--http信息头管理器的使用(转载)

本文转载自: Jmeter—什么时候需要配置HTTP信息头管理器以及对应的参数如何输入_信息头管理器中的参数怎么调用-CSDN博客 1、抓包查看Request Headers(请求头)里Content-Type的信息,如下图: Content-Type的格式为&…

C#—串口和网口之间的通信详解

C#—串口和网口之间的通信 串口转网口、网口转串口,就是将网口发送来的数据包发送给串口设备,将串口设备返回的数据转发给网口客户端。 在C#中,将串口数据转换为网络数据并发送到网络,通常涉及以下步骤: 1. 创建一个…

前端构建工具Webpack 与 Vite 大对比

在现代前端开发领域,构建工具扮演着至关重要的角色。它们不仅可以帮助我们管理项目依赖关系,还可以优化我们的代码,使其在生产环境中运行得更快更高效。其中两个最受欢迎的构建工具就是 Webpack 和 Vite。在这篇文章中,我们将深入…

Go 语言中操作映射

1. 定义映射 大多数主流编程语言都支持映射,因为它们可以说是存储数据的最重要的数据结构之一。映射是成对值的集合,在每对值中,其中一个称为 “键” ,另一个则为它对应的 “值”。 可以使用映射的键来引用它对应的值,…

Vue3 开发中常见的问题和解决办法

目录 1. 使用 reactive 封装基础数据类型 2. 解构 reactive 对象 3. 使用 .value 造成的困惑 4. Emitted事件 5. 声明组件选项 6. 使用 Reactivity Transform 7. 定义异步组件 8. template中使用不必要的包装元素 9. 生命周期函数 1. 使用 reactive 封装基础数据类型 …