Unreal Engine 4 RPG 系列教程(四):远程魔法

1,231 阅读3分钟

施放魔法(远程)

上文中我们完成了对冷兵器的操作,今天我们来看看如何让角色施放魔法技能。首先来看下施放远程魔法的实现。

动画资源准备

还是在 MixMao 上去下载施放远程魔法的动画资源,我下载的资源如图:

eee5.png

动画状态

打开动画蓝图,为其添加一个状态 Cast, 并新增 Bool 变量 Cast(角色蓝图中也需要新增一个bool变量 Cast,下文中会讲到) 用于标识角色是否在施放技能。

111715.png

然后构建其状态逻辑。

111736.png

112053.png

112108.png

打开它的 Event Graph,完成如下蓝图:

2206.png

魔法蓝图对象

虚幻商城为开发者提供了免费的特效 Pack 供下载,开发者可以搜索 FX Variety Pack 添加到工程中使用。

114234.png

新建一个 Blueprint Class -> Actor, 命名为 ThunderBall_BP, 然后 Add Particle System Component, 粒子特效选择 P_ky_thunderBall 闪电球,然后再添加一个 Projectile Movement Component 用于闪电球移动,并配置它的速度为 1000 - 1100000, Gravity = 0。

112641.png

nnnn.png

施放事件

闪电球和动画准备完成以后,接下来就该将这俩结合在一起了,添加一个事件用于施放技能,我这里映射了键盘按键 1,当按下 1 时施放技能。

打开角色蓝图,添加 Casting 函数,并新增俩个变量分别是 bool 类型的 Cast 和 ThunderBall_BP 类型的 ThunderBall(记得初始化)。

然后构建其蓝图逻辑,如下:

17.png

这时候在编辑器中运行,按住键 1 角色就会施放魔法技能的动画,但是没有出现闪电球。接下来就来为其添加上闪电球,打开施放魔法的动画,在动画合适的地方添加一个事件 CastSpell 来表示在这帧上生成闪电球。

18.png

回到角色蓝图上,右键新建一个自定义消息 CastingSpell 用于生成闪电球。

19.png

再给角色创建一个 Arrow Component 来标识闪电球生成的位置。在这之前先调整角色动画的姿态,以便于将 Arrow 摆放到正确的位置,如图:

20.png

创建 Arrow,

21.png

调整 Arrow 的位置到角色伸出的手上,

22.png

回到角色蓝图的 Event Graph,为 CastingSpell 函数添加逻辑,利用 SpawnFromClass 节点来生成闪电球,

23.png

最后,将角色蓝图的 CastingSpell 函数与动画中的 CastSpell 消息关联起来,

24.png

回到编辑视图里运行,按住按键1,施放闪电球的技能就完成了。

未命名.gif

我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!

往期文章:

请你喝杯 ☕️ 点赞 + 关注哦~

  1. 阅读完记得给我点个赞哦,有👍 有动力
  2. 关注公众号--- HelloWorld杰少,第一时间推送新姿势

最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**