技术美术师西蒙妮·伦巴多(Simone Lombardo)实施了UE4的一项实验,并在该实验中用枪支创造了产生植物的效果。


在UE4中设置树叶枪效果


灵感


我展示了Ember Lab的这款外观精美的游戏Kena,在预告片中,有草露出的效果,我认为它很棒。因此,像往常一样,当我打开UE4时,我开始尝试并尝试是否可以重现它。我想获得更多的互动,更多的控制权。我想“拍”草。


效果的结构


结构非常简单。首先,火炮开火并将行踪迹引至某个地点。在该位置,事件触发一个动画蒙版,该蒙版会增长并修改“渲染目标”,基本上是“绘画”该蒙版。此遮罩在树叶中驱动“物质功能”,从而使它们得以生长。叶子总是在那里,只是顶点的大小。很棒的是,如果您停止播放,它会保留下来。这就是为什么当我按Stop时植被仍然存在的原因。由于“渲染目标”已被修改,UE4保留了该修改。我确实包括了一个小的“编辑器蓝图”,可以“清除”渲染目标,以便在需要时可以重新启动。


资产


所有资产均来自Quixel Megascans。因为它们都使用与父级相同的“材质”,因此我只需要将“材质”功能放到“父级”中,然后我就可以加载任何植被了,它就起作用了!


UE4中的效果设置


总而言之,设置非常简单,并且绝对可以进行优化。


第一件事是来自植被的材料本身。我建立了一个小的“材质功能”,以便可以在不同的材质上重复使用它。这个想法是利用世界位置偏移。材质功能的作用是添加一个基于时间的小型动画,该动画通过对顶点进行动画处理来根据其轴心缩放网格。


完成此操作后,我需要以某种方式触发植被,否则,如果以这种方式离开,它将在EventBeginPlay处生长。首先,我使用一个将控制它的SphereMask和Material Param Collection来确保所有树叶都以相同的方式受到影响。这对于原始的“圆”显示效果非常好,让我轻松地在圆上添加了发光边缘以产生额外的效果。


在UE4中设置树叶枪效果


但是试图在多个地方实现它很烦人。所以我想到了另一种控制它的方法。我想从字面上“绘画”我的面具,而不是使用SphereMask。为此,我选择了“渲染目标”路线。我没有使用SphereMask来控制效果,而是使用了平面投影的Render Target。可以通过BP轻松访问“渲染目标”,并且可以在运行时对其进行绘制。


在UE4中设置树叶枪效果


为了修改渲染目标,我使用了另一种材质作为“绘画”,该材质在游戏过程中基本上会添加到渲染目标中。该材质非常简单,只是一个动画的SphereMask乘以基于纹理的整体噪波蒙版,产生了一些变化。


在UE4中设置树叶枪效果


从Pawn蓝图中,当我按“Fire”时,我会进行一小段线跟踪,然后在动画并添加到“ Render Target”的跟踪位置触发“ Paint Material”。然后,“渲染目标”控制用于树叶生长的蒙版(也将其固定在此处),将其显示并触发其动画。


在UE4中设置树叶枪效果


拍摄->绘画蒙版->蒙版触发增长->增长影响WPO


使用此技术或SphereMask,可以完成很多工作。例如,类似于这种版本的植被遵循播放器的步骤。可以用于生产吗?


这个特定的版本绝对可以优化,它也有一个缺点,因为它仅适用于已经在关卡中的叶子(我的“材质功能”中有一个参数,可以让我轻松地在叶子可见/生长模式之间切换)。一方面,具有此控件很不错,但另一方面,它不允许对叶子位置进行太多修改。


增长的+渲染目标相对便宜(渲染目标仅为128x128)。如果完全显示的叶子平滑运行,则fx不会对性能产生太大影响。


项目的未来发展


我正在努力改善这种效果并添加更多选项。它可以用来根据需要实际生成实例网格,而不是将它们放置在关卡中并仅在某些位置显示。在那种情况下,没有“准备”,玩家将决定叶子在哪里以及他想要什么样的叶子(我张贴了一个蓝图显示如何完成)。


我还使用生成方法将其移植到Hololens 2上玩。我现在正在为此做更多的工作,希望在有时间的时候将其发布。如果时间允许,我还将提供一个小型的可玩演示程序。我的计划是随项目一起发布。它显示了可以使用此功能的多个游戏案例,并向用户提供了更多控制权,包括影响树叶和何时受影响。但是我当然总是对其他测试和工作感到厌烦,所以我不知道何时完成。应该很快。

,Unreal Engine技巧,Unreal Engine教程