猫头鹰鹰身女妖的毛发与羽毛:XGen 发片、Hair Shader 与 UE5 灯光流程拆解
简介
大家好!我叫 Eugenia Zanina,是一名游戏 3D 角色艺术家。我想分享一个我制作的游戏角色项目的解析,猫头鹰鹰身女妖(Owl Harpy),它是在 Unreal Engine 中创建的。我从事 3D 工作已有四年。我知道这时间相对较短,说实话,谈论我的作品时我有点不自在,因为我还有太多东西要学。
所以我希望这份解析不太像教程,而更像是一个提醒:学习可能很艰难,ArtStation 上的每个项目都凝聚着数小时的付出。如果这份解析能激励某些人,并给他们继续学习和提升的力量,我会很高兴。对我来说,这个项目是一段漫长旅程的顶点。
至于我的背景,我最初是一名自学成才的 2D 艺术家 — 接一些小插画委托,然后进入移动游戏开发领域工作。我出于好奇开始学习 3D,上了几门课程,随后就找到了工作。在同水平的艺术家中,我因艺术处理方式和创作出漂亮作品的能力而受到认可。但作为一个天生富有创造力的人,技术方面对我来说很有挑战性。
像重拓扑、烘焙或灯光设置这类简单技术起初很容易上手,并随着时间推移不断进步,但制作可用于游戏的头发却是一道无法逾越的障碍。这项任务的复杂性和规模总是让我感到害怕,但我一直努力去实现它。
Owl Harpy
在这个项目之前,我曾三次尝试使用游戏就绪管线来制作头发,每次都失败了。第一次,我对这项技术理解得不够透彻。然后,我对所需软件的熟练度不够。在最后一次尝试中,我无法在要使用头发的引擎中设置好着色器。每一次失败都动摇了我的信心,我不断拖延这项任务。
最后,我决定彻底搞懂游戏就绪头发的制作管线。在开始之前,我为自己设定了以下标准:
- 角色应该简单但完整,这样我就能把发片(cards)作为模型的一部分来处理。
- 它应该包含普通角色常见的所有毛发类型 — 头发、毛皮和羽毛 — 这样我就能理解它们在制作上的差异。
- 我会主要关注头发,而不是建模,但最终结果仍应看起来美观、精致。
- 我不会用面数来限制自己 — 我缺乏经验,无法确定这类工作所需的面数。
我选择了 Betty Jiang 的 Owl Harpy(猫头鹰鹰身女妖)插画作为参考。它符合我的所有标准,更重要的是,它给了我极大的启发。对于个人作品集项目而言,灵感至关重要,因为没有任何外部动力来促使你完成它。

参考素材
我首先收集了额外的参考素材。原始作品是一幅插画,因此它并没有提供关于模型应该是什么样子的详尽信息。一方面,这给予了一些自由,但另一方面,要匹配角色、比例和细节几乎是不可能的,因为游戏要求模型采用标准的A-pose或T-pose。
然而,匹配参考对我来说是次要的。我的主要目标是创建逼真的头发、羽毛和毛发。因此,我收集参考主要是为了理解类似的东西在现实中是什么样子的。

第二重要的步骤是制定计划。我做过足够多的模型,明白“三思而后行”这条规则同样适用于3D。没有计划的步骤往往会让工作复杂化,迫使你回到之前的阶段,或者需要重做一切。
所以,我提前思考了如何在模型上分配材质,以便更轻松地设置着色器。由于我需要大量不同类型的卡片—用于头发和身体—我将它们分成两个UV贴图,并基于参考解构创建了布局。

建模、重拓扑与贴图
我不会深入讲解身体和头部的建模拆解,因为那是一个相当标准的过程。我没有使用任何独特的技巧 — 我手动建模了所有内容,只是轻微使用 alpha 来做纹理。最初,我计划让身体的一部分不覆盖毛发,但后来决定不这么做。
至于基础网格,我在 Maya 中手动创建了标准的动画重拓扑。在那里,我还使用三套 2K tile 展开了 UV 并进行了排布 — 一套用于头部和眼睛,一套用于身体,第三套用于翅膀上部。由于我主要做角色,我的 UV 壳往往形状各异,自动排布处理得并不好。因此对于有机体对象,我会尽量手动地密集排布 UV 壳。这也让我能够决定某些部分是要增加还是减少,而不会损失可见的质量。
我也开始使用 Substance 3D Painter 基于 PBR 流程制作身体贴图。贴图始终是一个漫长的过程,尤其是当角色会被用于游戏引擎时,在整个工作过程中我不断调整和修正贴图。由于我想专注于毛发,我决定不使用 MetaHuman 技术 — 那是我下一步要学习的内容。为了掌握这项工作,我需要一次专注于一件复杂的事情。所以这个项目中的身体贴图相当标准。

头发与羽毛
一旦基础(且相对简单)的部分完成,我就转向了最具挑战性的部分。我使用 Maya 中的 XGen 插件来创建头发和羽毛。我知道有专门用于创建逼真羽毛的程序,但我的目标是足够好地掌握这个插件,以便能够重建任何所需的形态。
我从羽毛开始,因为我已经有创建发片的经验,但羽毛对我来说是一项全新的任务。事实证明,如果你理解物体的结构,那么在处理除头发以外的东西时并没有太大区别。通常,毛发引导线是在水平表面上创建的,因此发丝是垂直的——根部在上方,末端在下方。羽毛的细丝沿着羽轴两侧分布,所以我创建了两个垂直平面,并沿着它们生成毛发引导线。

提前找到所有羽毛类型的详细参考,为我节省了大量时间,因为羽毛的外观会根据其在翅膀和身体上的位置而有很大差异。使用 guide(引导线)帮助我创建所需的羽毛形状。与头发不同,羽毛有非常特定的形态,仅靠程序化修改器并不够 — 你需要严格把控这个过程。
因此,使用常规轴心(pivot)对每根单独的 guide 进行变形,让我能够为每片羽毛创建复杂而独特的形状,而修改器则增加了变化和“纹理感” — 有些我保持硬挺,另一些则做得更柔软、更蓬松。一个重要细节是沿羽轴添加弯曲,这样它们之后在平面上也会显得有体积感。

在羽毛上掌握 XGen 之后,制作头发就相对简单了。这个角色有长发,所以我必须仔细控制头发粗细。由于长、短发丝位于同一张 UV 上,它们需要根据每根发丝的预期尺寸使用不同的粗细。在我的案例中,长波浪发丝比短绒毛大好几倍,因此它们在 UV 上的粗细应该更小。否则,在放大 card(卡片)时,它们会变得过粗、不真实,无法与绒毛匹配。

我在 Maya 中使用 Arnold Render 烘焙了头发和羽毛的 Texture maps。我创建了许多不同的贴图,因为我不确定在 Unreal Engine 中进行 shader 设置时会需要哪些贴图,而我计划在 Unreal Engine 中完成最终渲染。之后我会展示实际需要的贴图列表。
card 准备好后,我进入了最困难的阶段 — 创建 shader。问题在于,我在 Unreal Engine 方面还是新手。作为一名 3D 角色艺术家,我为 PBR 贴图创建过相当简单的 shader,有时会添加透明度、Subsurface Scattering、发光,或者编辑 Colors、Roughness 和 Metallic 参数。
根据我的经验,我见过好几种头发 shader,它们看起来总是非常复杂,所以我很害怕进入这个阶段。但幸运的是,3D 社区很友好,也很乐于助人。我的一位朋友是 Grooming Artist,推荐了一个很棒的视频,逐步展示如何创建一个很酷的 shader,作者解释了每个节点的用途。这花了一些时间,但我基于视频示例成功创建了自己修改过的 shader,因为原始版本对羽毛效果不太好。
所有羽毛都有不同的颜色,有些还带有图案。此外,我把两种羽毛类型放在同一张 UV sheet 上:外侧翅膀使用硬挺且有光泽的羽毛,内侧翅膀和身体使用柔软蓬松的羽毛。相同的 Specular 和 Roughness 参数设置无法达到理想效果,所以我使用遮罩和额外节点,为不同羽毛类型输出两套参数,并分别进行调整。我没有使用具体的颜色值,而是在 Photoshop 中手动创建了一张贴图,并使用 Unreal Engine 节点来调整色相和饱和度。
总体而言,我是满意的,但我在参考图中注意到一个细节:有些羽毛的两侧颜色不同。这是个很小的细节,但我认为这是一个继续学习的信号(而且一旦看到,我就无法把它从脑海中赶走)。我使用了 TwoSidedSign 节点和修改过的 Color 贴图,为背面的一部分羽毛赋予不同的颜色。

你可以在下面看到最终需要的 Texture maps 列表:

然后,我开始使用 GS Curve 工具在模型上摆放羽毛和发丝。它简单直观,但非常有效。例如,我可以快速轻松地通过为整条辫子指定一条曲线,而不是单独的 card,从角色头上的辫子创建出一“束”头发。对面部附近的卷发我也做了同样处理 — 先用不同的 card 创建出一缕,然后为整缕头发指定一条曲线。

卡片摆放更像是一个艺术过程而非技术过程,所以这个阶段对我来说非常享受。它也是渲染前的最后一步,模型终于以最终形态呈现出来。到最后我意识到,一个需要大量毛发梳理的模型不仅在技术上具有挑战性,在情感上也是如此 — 它由多个分别创建的对象组成,你只能在最后才能看到它们如何协同工作。因此,在这类工作中,经验和规划至关重要。
说到场景搭建阶段,我不能说模型已经准备好了。在调整灯光、渲染和后处理的过程中,我不断地修复、修改和改进各种东西。我一直到最后一刻都在微调参数,而材质实例和结构良好的参数集对此帮助极大。
灯光
渲染时,我使用了 Unreal Engine 5.5。作为搭建的基础,我使用了 MetaHuman Lighting 场景。说实话,很难回忆起我尝试过的所有设置,并准确说出我决定保留什么、舍弃什么。我还为不同的渲染使用了不同的灯光方案 — 用于展示帧、营造正确氛围的艺术化灯光,以及用于细节的更平静的影棚设置。
我尝试遵循标准的三点布光方案:主光、补光和轮廓光。但在我看来,在创作漂亮的渲染时,你不应该限制自己。如果我需要额外的灯光来突出某个细节,或获得富有表现力的反射或高光,我就会使用它。例如,这是其中一个场景:

结论
我总是试图用灯光来强调对我来说特别的东西,并隐藏错误和不成功的部分,以免它们引人注目。一点点泛光、色差和锐化总是能让画面更好——只是不要过度。毕竟,主要的是在建模和纹理上所做的工作,而不是后期处理效果。
就这样!我希望这个解析能激励你去尝试并创造出美丽的东西!

Eugenia Zanina,2D/3D 艺术家
采访:Emma Collins
相关链接
原文链接:https://80.lv/articles/how-to-create-hair-and-feathers-for-an-owl-harpy-character
喜欢这篇内容吗?