Philipp Neumann 在 Maya 和虚幻引擎中制作索伦之眼
Philipp Neumann 分享了索伦之口项目背后的工作流程,解释了眼睛动画的创建方式,并谈到了如何设置火焰效果。

介绍
我叫 Philipp Neumann,目前在 Rabcat Game Art 担任首席 3D 美术师,这是一家位于美丽的维也纳市的 AAA 艺术外包公司。我参与的最新作品包括 Fortnite、Overwatch 1 和 2,以及 Forza Horizon 4 和 5。如果您想了解更多关于 Rabcat 或我参与的其他项目的信息,非常欢迎您访问我的 ArtStation 页面。
但关于我,让我们直接跳到我用来创建这个项目的管道。

几个星期前,我开始听《指环王》的有声读物,我想从这个宇宙中创造出某种同人画。我很快就想到了索伦之眼,因为它是《指环王》中最引人注目的物体之一。由于这项资产的火热性质,我选择虚幻引擎作为项目的首选工具。
基本上,目标是创建一个可以动画的眼睛,具有灵活的瞳孔和不基于粒子 FX 而是基于材料的效果。
创建虚幻材质
让我们深入了解资产生产的本质。因此,在我开始实际创建资产之前,我在 ArtStation 中寻找其他艺术家完成的索伦之眼的概念艺术和 3D/VFX 艺术,以便更好地了解我想要实现的风格。我选择将资产创建为程式化形状和逼真风格的混合体。

基础火焰
第一步是创建一种看起来像从下到上燃烧的程式化火焰的材料。
为此,我从插入 Panner 的非常简单的焦散贴图开始,因此它从底部到顶部运行。基本上,我使用相同的纹理两次并将其相互叠加以获得更多变化。
为了分解这个基本设置,我在两个焦散贴图的坐标中使用了 BumpMapOffset。在 BumpMapOffset 的高度通道中,我使用平移云纹理使焦散贴图更随机地移动。

如您所见,这很好地分解了平移焦散贴图。

现在我们有了那两个平移焦散贴图,我们可以将它们相乘。但在我们这样做之前,我们要在每个焦散图上添加一个从上到下的渐变,使它们在底部比在顶部更亮。通过稍微改变 Panners 的速度,使它们不一样,我们可以获得更随机的外观。

这个设置已经是我们稍后可以在 LERP 节点中用来为火焰添加颜色的遮罩。我们也可以稍后将此灰度蒙版用作不透明度的 alpha。
添加颜色
我们要添加的第一种颜色是黑色背景的火焰基色。为此,我们将使用黑色 (0,0,0) 背景色和橙色 (0.29,0.01,0) 前景色。作为遮罩,我们将使用之前创建的火焰 alpha,但在将其插入 LERP 节点之前,我们将使用 Power 节点来增加白色值。
由于 Power 节点的输出将低于 0 且高于 1,因此我们需要使用 Clamp 节点将值钳位回 0-1。如果我们不限制值,颜色将由 LERP 的 alpha 中的值分解。稍后我们将使用此效果来添加第二种颜色。

第二步,我们添加另一个 LERP 节点,其中 A 值将为黑色,B 值将是之前 LERP 的结果。这一次,对于 alpha,我们将使用与之前相同的设置,但第二个 Power 节点将增加到 4。重要的是我们之后不要钳制 Power 节点,以便我们可以使用 Power 中的值 节点作为颜色本身的倍增因子并创建发光效果。
而这已经是基本的火焰效果了。

火焰动画
为了使自发光动画化,我们需要使用 MaterialParameterCollection 节点,它允许我们稍后在 Sequencer 中调整该节点的值。我们可以只将该节点与我们之前所做的颜色结果相乘,但在此之前,我们可以将 MaterialParameterCollection 与从上到下的渐变相乘,以确保底部的火焰比顶部的火焰更强。
这就是虚幻引擎中火的基本设置。为了确保它正常工作,我会将材质中的混合模式更改为半透明,将光照模式更改为表面半透明体积。
我们可以添加的另一件事是在 World Offset 通道中添加失真,使整个作品更具活力。这样我们就可以根据火焰效果来操纵物体的几何形状。但是由于我们无法将 BumpMapOffset 节点插入 World Offset Channel,因此我们需要复制焦散效果并再次创建效果但不使用 BumpMapOffset。alpha 的下半部分是黑色的原因是我不希望网格移动到非常靠近眼睛网格的地方。这将确保我们不会得到任何交叉点。

这是已经应用于眼睛外部网格的效果的另一个小汇编。

混合形状
我的想法是制作一个小动画,让眼睛四处张望。当眼睛移动时,瞳孔的大小应该稍微改变。
有多种方法可以实现这一点,但由于我希望能够在 Unreal 本身中操纵瞳孔,我决定在 Maya 中创建混合形状并将它们与动画一起导入到 UE 中。由于我们在 Sequencer 中调整自发光的亮度,混合形状非常完美,因为我们也可以在 Sequencer 中调整它们。
如您所见,在眼睛的几何图形上,基本上有三个独立的网格:一个用于外部火焰,一个用于眼睛本身,一个用于瞳孔的黑色。我创建 UV 的方式是从上到下的渐变被视为 3D 网格上从中心到外部的渐变。

发光层
动画和混合形状的组合以及发射率的增加都在 Level Sequencer 中完成。
由于我们事先在火焰材质中创建了一个 MaterialParameterCollection,因此我们现在可以在 Sequencer 中更改此参数。
要使混合形状起作用,您需要确保导入启用了变形目标的骨架网格体,并创建一个将变形目标值存储在变量中的蓝图,以便您稍后可以在序列器中更改变量。

这是导入相机后的 Sequencer、带动画的骨架网格、变形目标和 MaterialParameterCollection。

如您所见,我导入动画并使用蓝图中的变量,我现在可以访问混合形状并沿着动画的长度为它们设置关键帧。我用脸和眼睛做了这个。您还可以看到我们在材质中预先定义的 Fire Power。
这是将动画和变形目标与自发光的 MaterialParameterCollection 混合在一起的结果。

雕刻和纹理
我使用了一个非常简单的过程来创建索伦之口。封锁是在玛雅完成的。所有金属件的基础高模也是在 Maya 中完成的,所以我可以确保在使用它进入 ZBrush 之前避免间隙和孔洞。在 ZBrush 中,我尝试在金属件上添加边缘磨损和粗碎。
布料是通过在 Maya 中创建一个非常粗糙的形状而制成的,我使用 ZBrush 中的动态系统对其进行动画处理。我使用面部和金属块作为碰撞器,这样布料就会平滑地落在这些块上,并为随后的雕刻过程创造一个很好的基础。
HP 完成后,我回到 Maya 并创建了一个 LP,它在嘴部区域非常密集,这使我能够创建漂亮的混合形状,而不会在最终渲染中出现可见的多边形边缘。LP 完成后,我在 Marmoset Toolbag 中烘焙法线和 AO 贴图,然后直接进入 Substance 3D Painter。

我使用 Substance 3D Painter 本身的一些智能材质来创建材质,后来我用一些污垢和血液 FX 对其进行了修改。


最终渲染
虚幻引擎中的基本渲染设置非常少。我使用标准的三点灯设置来获得基本照明,因为我的背景大部分是黑色的,所以我使用了一些边缘灯来强调物体的边界。
因为我只想创建漂亮的镜头而不担心性能,所以我使用 CineCameraActors 进行渲染并使用 MovieRenderQueue 渲染最终镜头。我喜欢 CineCameraActor 的一点是,您有一个可见平面,场景中的焦点就是该平面,并且您可以在场景中使用真实的快门、光圈和焦距设置。我使用的唯一后期制作设置是光晕效果,当发射率增加时,让眼睛更加突出。
这基本上就是在 Unreal 中创建这样的火焰效果所需知道的一切。非常感谢您阅读本文,希望您能深入了解该过程。如果您有任何问题或任何其他要求,请随时通过 ArtStation 与我联系。


