在UE4中创建冲刺效果
我最近在几个 Facebook 群组中发布了一段关于这种效果的短视频,第二天醒来时收到大量来自人们询问它是如何完成的消息,所以我决定编写本教程。感谢 Kirill 和 80lv 提供了一个平台,我可以在其中分享这些信息!另外,感谢Noa Barlow 帮助我将这种效果推到了现在的水平。
通过在蓝图、材料和粒子之间进行大量来回迭代以及在它们之间进行实验,效果达到了现在的水平,但希望我能够以一种可以理解的线性方式解释这一点。
材质参数集合:
我正在使用的材质设置中最重要的部分是材质参数集合的使用,它本质上是蓝图将参数值(浮点数或向量)传达给您的材质的方式。
在内容浏览器中,右键单击 > 材质和纹理 > 材质参数集合
在这个效果中,我们将在一个集合中使用 2 个浮点参数:
“GhostVisible”和“PlayerVisible”,默认值都设置为 1。
这些将决定我们玩家的可见性和我们玩家的鬼魂的可见性。
鬼影材质:
这是我们的玩家的幽灵在冲刺开始时生成时将使用的材料。
混合模式需要设置为半透明。
它包含一些基本的菲涅耳遮罩(如果你想走这条路,使用菲涅耳函数也可以)乘以插入我们不透明度的材质收集参数“GhostVisible”。
这种材料对最终结果的影响很小,如果你想用不同的材料制作鬼魂,那就去吧。唯一真正重要的部分是插入其不透明度的 MPC。
玩家的不透明材质:
这是我制作的一种非常基本的材质,唯一重要的部分是您的混合模式设置为遮罩,并且您的 MPC“PlayerVisible”已插入不透明遮罩。
显然,如果您的角色使用更复杂的材料,您可以随意设置。
颗粒材料:
当我使用灰度蒙版时,我总是喜欢将它们组合到单个纹理的 RGB 通道中。有多种方法可以做到这一点,但我的方法通常是使用 Substance Designer 中的 RGBA 组合节点,因为我经常在那里创建此类蒙版。只需确保在导入后将压缩设置更改为“Masks”。
如果您使用此方法,您将需要创建几个开关参数来选择您使用的纹理样本的哪个通道。
着色模型设置为未点亮,混合模式设置为半透明。
输出乘以粒子颜色和粒子颜色的 alpha。这将使我们能够在粒子编辑器中控制粒子的颜色和不透明度。
最后一点是我们的不透明度乘以深度淡入淡出。这有助于保持诸如烟雾之类的东西与另一个网格或相机连接起来产生刺耳的线条。
乌鸦材料:
首先,你需要一个鸟的精灵动画,或者任何你想要跟踪角色的东西(并记住网格数,例如 4×4)。
注意:我没有制作乌鸦精灵动画。它是几个月前从谷歌上撤下的,经过大约一个小时的再次搜索,我找不到链接(对不起,感谢最初制作它的人)。另请注意,我已将不透明蒙版打包到精灵动画的 alpha 中。
不要将纹理拖到材质编辑器中,而是在材质编辑器中右键单击并找到 Particle SubUV,您将在其中选择您的精灵动画。
从那里简单地将不透明蒙版乘以粒子颜色的 alpha 并将纹理乘以粒子颜色。
材质实例:
由于我们的 Ghost、Crow 和 Player 材质不使用任何参数,因此我们将保留它们的原样。但是,我们需要为未来粒子的灰尘和烟雾设置几个材质实例。
右键单击主粒子材质并选择“创建材质实例”。这样做两次,一次用于烟雾,一次用于灰尘,选择我们设置的适当 RGB 开关参数。
我们现在已经完成了材料的设置!
粒子:
此效果仅使用一种粒子效果和四个发射器。
为了便于制作本教程并避免使用 TLDR,我将仅包含粒子设置的图像以及一些简要说明。如果您感兴趣,我强烈建议您深入研究。
乌鸦发射器:
SubImage Index 节点将您的精灵设置为动画。根据您的精灵有多少帧,您可能需要相应地调整值。
Skel/Vert Surface Location 节点根据玩家的骨骼名称/位置告诉乌鸦在哪里生成。您需要从您正在使用的角色中复制骨骼名称才能使其正常工作。
Particle Attractor 节点告诉乌鸦在它们生成后要去哪里,这将是我们设置的下一个发射器。确保吸引器的名称是您要使用的吸引器发射器的名称(在我的情况下,它只是“吸引器”)。
吸引器发射器
确保将此发射器命名为与您在吸引器节点中使用的相同。
初始大小设置为 1,速度设置为 0。
烟雾和粉尘发射器:
这些只是几个基本的发射器,我不会深入探讨。在网上很容易找到一些基本的烟雾粒子示例。
使用不同的生成率、大小、旋转和位置。
确保它不会循环并且持续时间合适。
玩家幽灵蓝图:
这将是您的玩家向前冲刺时留下的幽灵。
有多种方法可以做到这一点,例如使用粒子中的垂直/冲浪位置来创建重影效果,但我发现这种方法最简单,效果最好。
为此,请创建一个新的 Actor 蓝图。
添加组件“PoseableMesh”,并使其成为蓝图的根(替换并删除“Scene”组件)。
在可摆姿势的网格的详细信息面板中,选择播放器的网格并应用我们之前制作的幽灵材质。
此外,请确保此可摆姿势的网格没有使用碰撞。
从这里我们将投射到我们的玩家,瞄准我们玩家的网格并复制其当前位置以创建我们想要的姿势。
一旦我们设置了网格的姿势,我们想要创建一个时间轴来驱动我们之前为我们的幽灵创建的材质参数集合的值并设置这些值。
一旦时间线完成,我们刚刚创建的actor就被销毁了。
玩家蓝图:
在你的角色的蓝图中,我们需要添加一个名为 Ghost 的布尔参数,以确保我们不能在已经冲刺的情况下冲刺。
使用您选择的输入来启动破折号,并通过您的幽灵参数将其分支。
从那里我们将我们的玩家的速度设置为较高的速度以伪造传送效果。
一旦破折号开始,我们需要通过将 MPC 设置为零来伪造我们玩家的隐形,从而产生我们的粒子以及我们的 Ghost 蓝图。
Set Actor Parameter 正在与 Crow 发射器通信,告诉它它正在寻找的骨骼在哪里。在节点中,从 Param 引脚拖出并提升到变量并命名为您想要的(老实说,我不记得我几个月前做了这个之后引用了什么)。
在我们决定冲刺的时间量内使用延迟节点(在本例中为 0.6),然后通过将布尔值设置为 false 来结束冲刺,使角色的速度恢复正常并将 MPC 值设置回 1 到使它们再次可见。
一旦这一切都设置好了就试试吧!
可能的改进:
由于这只是我的实验,我觉得我可以扩展一些东西。
最明显的是,由于我们使用的是第三人称角色,当摄像机直接位于角色身后时,乌鸦精灵会朝向侧面。
我相信这可以通过根据角色面对的世界旋转来调整不同的精灵动画来解决。
谢谢大家的关心!