• 中文
    • English
  • 注册
  • 查看作者
    • 分解: UE4 中的动画雨滴材质

      Harry “deBug” Emelianov 好心地准备了他在UE4 中制作的动画雨滴不透明和透明材料的逐步分解。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      介绍

      你好!我的名字是Harry “deBug” Emelianov,我是一名来自莫斯科的自学艺术家。

      CG 成为我 14 岁时的爱好。我一直在做 ArchViz 和高多边形建模,但我对电脑游戏的热爱使我选择了 Gamedev。那时,我开始学习游戏引擎(当时的 UE3 和 Unity4),并学习 C#、C++ 以及如何使用 GLSL 和 HLSL 编写着色器。有一段时间,我外包给了TraceStudio 和Fox3D,参与了很多有趣的项目,比如使命召唤:无限战争、北极星 1、瘟疫传说:无罪等等。现在我是一名自由职业者,并在莫斯科的ScreamSchool教授环境设计和游戏纹理课程。

      UE4 中的动画纹理

      虚幻引擎非常适合创建简单好看的动画着色器和效果,因为它不需要很强的编程技能,只需要基本的数学知识。您需要两个参数来调整动画材质:会改变纹理的时间相关坐标,以及您可能已经猜到的时间。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      雨滴材质

      动画水滴的工作流程几乎相同。我开始制作一些包含材质所需信息的静态纹理。

      它需要创建一些地图:

      • 静态滴的法线贴图和打包的蒙版。

      • R,一个时移掩码,负责水滴在正确的时间出现和消失。

      • G,用于将液滴与表面混合的蒙版。

      • B,一个噪音遮罩,使水滴看起来更混乱。

      • 用于移动水滴和包装蒙版的法线贴图。

      • R,滴本身的掩码。

      • G,滴路径的掩码,不允许其他静态滴出现在运行滴的路径上。

      • 以及影响液滴如何在表面上流动的方式的扭曲的法线贴图,使其更加不规则。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      然后,我用所有必要的信息和逻辑制作了两个过滤器。它们分为两组:静态液滴随时间出现和消失,以及流过表面的动画液滴。

      工作流程

      首先,我们需要获取纹理的坐标并开始在必要的方向上移动它们。稍后,我们将使用这些坐标对扭曲的法线贴图进行采样,并在水滴的纹理坐标中添加轻微的扭曲。有了关于失真和纹理坐标位移的信息,我们可以对法线和蒙版进行采样。然而,为了让不仅仅是简单的水滴流动,我使用了面具的红色通道,并使其强度随时间变化。此外,我还通过添加一些简单的数学函数,让水滴在一段时间内出现和消失。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      与第二个过滤器相同。它包含置换纹理坐标和扭曲,但略有不同。当我制作流动水滴的纹理时,我只为它制作了一个水滴和一套面具。为了填充滴,我不得不添加一个循环,其中滴被复制、置换、具有不同的速度(每个滴唯一),最后相互混合。为了使失真更有趣,我使用了两次失真贴图:用于大的失真和不太密集的失真。然后,它们沿着轴以不同的强度混合在一起。假设,可以在一张地图中使用多个水滴或一张地图用于所有水滴,但在这种情况下,所有水滴将以相同的速度相互平行移动,因为您将无法影响单滴的速度和时间。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      我还有一个自定义节点,其中包含有关最大滴数的信息,并使用滴的当前位置和速度设置了一个静态数组。它可以手动或在 Unreal 中完成,但我使用了3ds Max的旧脚本。  

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      此脚本获取有关编辑器中所选对象的位置和大小的信息,并将其返回到定义的数组中。在我的例子中,我只使用了 XY 坐标和一个下落速度的索引。同样,我们可以创建一个包含有关液滴大小信息的数组,并将其添加到材料中。

      当过滤器准备好后,我调整了它们的输出参数。我还创建了一些可以在材质中更改的输入参数,例如,动画速度、平铺、下降失真强度、法线贴图强度和使用过滤器的纹理。

      之后,这些过滤器可用于任何材料,无论其类型如何。材料的参数可以在其遮罩的帮助下进行调整。   

      作为示例,我制作的第一个基础材质是哑光不透明表面,它是混合必要蒙版和设置水滴的颜色、粗糙度和法线等参数的起点。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      如果我们将材质类型更改为透明并类似地添加透明度和扭曲,我们将得到一个简单的玻璃材质。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      为了使物体更加有趣和复杂,我们可以通过模糊玻璃后面的背景来添加冷凝效果。此技巧仅适用于透明材料和后期处理。我们还必须降低透明度,仍然保持材质类型透明。之后,是时候给材质添加模糊效果了。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      然后您可以添加一个遮罩以避免在平行于地面的表面上移动水滴。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      以同样的方式,我们可以将其与现有纹理混合,例如,水滴从其上落下的屋顶的纹理,或任何其他材料。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      以下是在后处理中使用过滤器的示例:

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      结论

      不幸的是,所有这些效果都非常苛刻,这意味着它们更适合不占用屏幕太多空间的小表面。例如房间的窗户。

      分解: UE4 中的动画雨滴材质

      分解: UE4 中的动画雨滴材质

      使用的纹理、混合和复杂的数学越多,渲染材质就越困难。  

      为了优化,我们可以简化纹理,例如,如果我们不想要这样或那样的效果,可以减小它们的大小或去掉一些数学运算。在这个过滤器的情况下,我没有针对某些特定的结果,而是试图制作一些可以在必要时简化的多用途东西。   

    • 0
    • 0
    • 0
    • 263
    • 请登录之后再进行评论

      登录
      • 大版主
      • 小版主

      暂没有数据

      暂没有数据

    • 发表内容
    • 实时动态
    • 偏好设置
    • 到底部
    • 单栏布局 侧栏位置: