问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

UE5 GAS RPG 实现远程攻击武器配合角色攻击动画

创作时间:
作者:
@小白创作中心

UE5 GAS RPG 实现远程攻击武器配合角色攻击动画

引用
CSDN
1.
https://blog.csdn.net/qq_30100043/article/details/139560925

在制作游戏中,我们制作远程攻击角色,他们一般会使用弓箭,弩,弹弓等武器来进行攻击。比如你使用弓箭时,如果角色在播放拉弓弦的动画,但是弓箭武器没有对应的表现,会显得很突兀。所以,我们在这一篇文章里,将介绍如何实现在远程敌人攻击时,武器也能够实现它对应的效果。

要实现这个效果,我们需要给武器也增加一个动画蓝图,在动画蓝图中,在角色攻击时,对拉弦的那只手的位置进行监听,然后通过在动画蓝图中,修改骨骼的位置,实现在拉弓时,让弦也根本动画修改。

添加武器动画蓝图

我们的武器也是骨骼网格体,所以他们它是支持动画蓝图的,所以我们直接基于武器的骨骼创建一个动画蓝图即可。

右键,创建一个动画蓝图

骨骼选择使用弹弓的骨骼

打开动画蓝图,首先在里面添加一个状态机

在状态机里面设置使用武器的Idle动画

返回,然后在外面增加一个slot,用于播放蒙太奇,在拉弓完成后,我们要播放武器恢复默认状态的动画。

我们创建动画蓝图就是为了能够在动画蓝图中修改骨骼位置跟随手部移动,所以我们要在角色骨骼中设置插槽,方便武器查询位置

在蓝图运行时,我们将角色骨骼模型的引用存储下来

然后在每一帧运行时,将当前角色右手的变换存储下来,方便后续使用

然后我们使用Transform(Modify)Bone节点去在动画中修改骨骼的位置,理论上动画也是在修改骨骼的位置,所以

然后将手部插槽的变换分割

我们只需要使用它的位置和旋转

设置这里,我们需要设置使用的骨骼,并且对于变换需要设置模式和使用的空间

对于不需要的引脚,我们可以选择对其关闭

制作完成后,接着时最重要的一步,就是将动画蓝图设置给武器骨骼网格体

然后,你就会发现弹弓能够附着在右手上面

接着在项目中测试

控制是否启用变换

接下来,我们想使用一个变量控制当前的变换在执行技能的时候,要播放弹弓弹回的动画,所以我们需要执行关闭。

我们在弹弓的动画蓝图中,增加一个布尔变量,默认值为true,来用于设置释放需要启用变换

然后在动画图标里面,增加通过使用布尔混合动画,我们就实现了通过布尔变量控制是否需要切换。

在模型蒙太奇动画中触发骨骼通知

接下来,我们要实现在播放蒙太奇的时候,触发骨骼通知,这个通知可以在动画蓝图中监听回调,我们就可以在后续通过事件去修改变量的值。

我们为了防止出错,在开始时触发GrabPouch(抓住弹弓袋),然后拉动弹弓,在释放的位置松开弹弓,并在最后再抓起弹弓的弹袋,进入待命状态。

接下来,我们要在动画蓝图中获取到武器,由于在c++中我们没有设置可以在蓝图获取,所以修改代码

接下来打开动画蓝图,添加一个自定义事件,用于获取武器的动画蓝图实例

接下来我们要在事件开始时,调用父函数

然后再调用自定义事件获取武器动画蓝图实例

然后添加通知事件返回,在触发ReleaseRock的时候,设置变量为false,关闭变换

在抓住弹袋的时候,设置变量为true

弹弓收回设置蒙太奇

接下来,我们想实现在松开以后,播放一个弹弓攻击的蒙太奇。

先创建一个蒙太奇

然后在松开动画通知里面,设置蒙太奇播放

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号