39. UE5 RPG角色释放技能时转向目标方向

在上一篇,我们实现了火球术可以向目标方向发射,并且还可以按住Shift选择方向进行攻击。技能的问题解决,现在人物释放技能时,无法朝向目标方向,接下来我们解决人物的问题。

实现思路:
我们将使用一个官方的新插件叫Motion Warping来实现它,然后在蒙太奇中设置它的旋转即可。

添加Motion Warping

这个插件默认是不会开启的,需要我们单独去开起,打开插件,搜索Motion Warping
在这里插入图片描述
开启并重启,因为它是测试插件,会提示你
在这里插入图片描述
打开角色的蓝图,添加插件
在这里插入图片描述

修改蒙太奇

插件添加了,使用它需要我们修改蒙太奇,在蒙太奇中确定在什么时候要朝向目标,当角色播放动画时,也会进行对应的旋转操作。
我们先在蒙太奇添加一行通知,和事件的分开,方便查看
在这里插入图片描述
在这一行中,添加通知状态中选择Motion Warping
在这里插入图片描述
它有一个开始和结束,方便我们设置移动的时间范围
在这里插入图片描述
选中通知,在细节那里修改它的名称,我们需要一个名称
在这里插入图片描述
我们只需要修改角色旋转,不需要修改移动,所以将移动关闭,并且将旋转类型修改为朝向目标点
在这里插入图片描述

这里记得打开动画文件(蒙太奇的源动画),设置开启根运动,开启这一项以后,动作中的修改角色旋转移动的值会应用到角色身上
在这里插入图片描述
在动画中设置完成了,只是实现了逻辑,比如角色需要朝向那里我们还没有设置,接下来我们将实现角色朝向的目标的设置。

设置角色应该朝向的目标位置

打开角色蓝图,我们需要添加一个自定义事件来实现对目标位置的添加。
然后通过自定义事件调用Motion Warping组件的上的函数节点来实现,
它需要两个值,一个值是名称,就是我们前面设置蒙太奇动画里面添加的通知的名称,这个名称最好cv,避免出错。
另一个值就是需要设置的朝向位置,这个我们在技能中调用设置,所以作为参数传入设置。
在这里插入图片描述
接着打开技能,在技能蓝图类里面,获取到目标位置后,将Avatar转换为角色类,接着再调用事件,实现对目标位置设置
在这里插入图片描述
接着就可以运行测试了。
虽然这样实现了功能,但是获取角色时需要转换的耦合度太高,如果切换了使用的角色,我们是不是每次都要修改,肯定不是我们想要的方式,我们没必要将其必须转换为对应的,我们可以将其转换为对应的接口就行,接口就是为这种情况而生的。
接下来,我们将实现通过接口设置Motion Warping的函数。
打开代码,找到我们之前创建的战斗接口,和战斗有关的角色类都会继承此接口,它不但会实现通用,而且还能节省转换性能消耗。
在战斗接口内增加一个需要蓝图可以覆盖的函数(BlueprintImplementableEvent),并且在蓝图中也可以去调用(BlueprintCallable)。

	UFUNCTION(BlueprintImplementableEvent, BlueprintCallable)void UpdateFacingTarget(const FVector& Target);

我们还需要将战斗接口设置为蓝图类型,这样在蓝图中可以将其转换为对应的接口

UINTERFACE(MinimalAPI, BlueprintType)
class UCombatInterface : public UInterface
{...

编译打开蓝图,将我们实现的角色内的自定义事件,修改为通过UpdateFacingTarget去调用
在这里插入图片描述
接着,修改技能里的转换接口,转换成战斗接口,调用函数
在这里插入图片描述
这样,只要继承了战斗接口,不管是什么角色,都可以实现此接口的调用。

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

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

相关文章

大一考核题解

在本篇中,将尽力使用多种解法,来达到一题多练的效果。 1: 1.原题链接: 238. 除自身以外数组的乘积 - 力扣(LeetCode) 这道题首先一眼肯定想到拿整体的积除以当前元素,将结果作为ans,…

Redis的主从复制

引入:分布是系统涉及到一个非常关键的问题:单点问题(如果摸个服务器程序,只有一个节点(只搞一个物理服务器,来部署这个服务器程序)会出现: 1.可用性问题,如果这个机器挂…

轧铝机液压站比例阀控制器

轧铝机液压站是用于铝材轧制过程中提供动力和控制的系统,它对于确保铝材的质量至关重要。轧铝机液压站通常包含以下几个关键组成部分: 液压泵:为系统提供压力油,是液压系统的动力源。 控制阀组:包括方向控制阀、压力控…

由于磁盘空间不够导致服务无法访问的情况

昨天服务出现了一些“小状况”,这里做下记录,为了以后类似的问题,可以作为参考。 具体情况是,如下: 本来一直访问都好好的服务突然间访问不到了,首先确定了下服务器上的 docker 服务是否正常运行。确认正…

【触摸案例-触摸事件介绍 Objective-C语言】

一、触摸事件 1.接下来,我们来说这个,触摸事件, iOS当中的事件,可以分为三大类: 1)触摸事件 2)加速计事件 3)远程控制事件 事件呢,这个里面呢,使用app的过程当中呢,产生各种各样的事件,事件呢,分为三大类,在iOS里边儿啊,分为三大类,首先,有一个叫做触摸事…

MySQL中的“IS NULL”优化

MySQL中的“IS NULL”优化 在MySQL数据库中,查询性能的优化是保持应用高效运行的关键。一个常见的情况是处理空值(NULL),尤其是在查询条件中使用IS NULL时。 理解IS NULL 在MySQL中,IS NULL运算符用于检查列中的值是…

2024年学浪视频怎么保存到本地相册

2024年已至,学浪应用上的视频购买人数持续攀升,然而一些课程已不再提供永久回放,这对那些在学浪购买了课程的人来说确实是一大困扰。在这里,我将为大家提供一种方法,让我们能够将学浪视频中那些非永久回放的内容下载到…

游戏录屏软件免费使用,超高清画质,让你爱不释手!

“最近迷上了一款动作冒险游戏,里面的剧情和打斗场面简直太燃了!就想通过录屏的方式,把我自己的游戏过程保存下来。可是我发现市面上的录屏软件不是免费的就是功能有限,你们有没有用过什么好用又免费的游戏录屏软件啊?…

教科系统诗词大会竞赛活动方案

本次诗词大会竞赛由个人追逐赛、亲友团淘汰赛、冠军争霸赛三部分组成。 一、个人追逐赛 由每个参赛团选出一位挑战者,共六位挑战者首先参加个人追逐赛的比拼,每位挑战者最多可答九道题,题型可为识别诗句题、对句题、填字题,题目可…

【数据结构项目】通讯录

个人主页点这里~ 原文件在gitee里~ 通讯录的实现 基于动态顺序表实现通讯录项目1、功能要求2、代码实现file.hfile.cList.hList.ctest.c 基于动态顺序表实现通讯录项目 准备:结构体、动态内存管理、顺序表、文件操作 1、功能要求 ①能够存储100个人的通讯信息 ②…

arm版Linux下安装大数据集群各种组件

背景:由于本人是用的Macbookpro m2来进行开发的,很多环境和Intel芯片的都不一样,期间安装各种软件遇到各种问题,为了以后不走之前的老路,现记录各种软件的安装步骤。 系统安装组件说明 序号组件名称组件版本1jdkjdk-…

如何部署npm私有仓库以及在项目中如何使用

如何部署npm私有仓库以及在项目中如何使用 为什么要部署npm私有仓库? 安全性:私有仓库允许团队存放内部研发的、不宜公开发布的代码包,只对特定用户或者团队可见和可用,从而保护公司的知识产权和商业秘密。模块的复用性&#xf…

Oracle进阶(2)——物化视图案例延伸以及序列、同义词

一、物化视图 物化视图(Materialized View)是 Oracle 数据库中的一个对象,它是一个预先计算和存储的查询结果集,类似于视图,但与视图不同的是,物化视图会将查询结果保存在物理存储中,而不是动态…

C语言练习——上三角矩阵

前言 今天我们来看看如何使用代码实现上三角矩阵吧。首先我们来了解一下上上三角矩阵是什么,上三角矩阵就是在矩阵从左上到右下的对角线之下的数组元素都为0的数组方矩阵,例如: 以一个三阶矩阵为例,在对角线元素之下,就…

面试(06)————MySQL篇

目录 问题一:在MySQL中,如何定位慢查询? 方案一:开源工具 方案二:MySQL自带慢日志 模拟面试 问题二:这个SQL语句执行很慢,如何分析的呐? 模拟面试 问题三:了解过索引…

OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核

本文主要介绍如何使用Python和OpenCV库通过卷积操作来应用不同的图像滤波效果。主要分为几个步骤:图像的读取与处理、自定义卷积函数的实现、不同卷积核的应用,以及结果的展示。 卷积 在图像处理中,卷积是一种重要的操作,它通过…

ES中文检索须知:分词器与中文分词器

ElasticSearch (es)的核心功能即为数据检索,常被用来构建内部搜索引擎或者实现大规模数据在推荐召回流程中的粗排过程。 ES分词 分词即为将doc通过Analyzer切分成一个一个Term(关键字),es分词在索引构建和数据检索时均有体现&…

【力扣 Hot100 | 第六天】4.21(最长连续序列)

文章目录 10.最长连续序列10.1题目10.2解法:哈希法10.2.1哈希思路10.2.2代码实现 10.最长连续序列 10.1题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时…

葡萄书--关系图卷积神经网络

异质图和知识图谱 同质图与异质图 同质图指的是图中的节点类型和关系类型都仅有一种 异质图是指图中的节点类型或关系类型多于一种 知识图谱 知识图谱包含实体和实体之间的关系&#xff0c;并以三元组的形式存储&#xff08;<头实体, 关系, 尾实体>&#xff0c;即异…

Python 全栈安全(二)

原文&#xff1a;annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第二部分&#xff1a;认证与授权 本书的第二部分是最具商业价值的部分。我这样说是因为它充满了大多数系统需要具备的实用工作流示例&#xf…