在XGen中创建头发
介绍
大家好,我的名字是Ellie Porfyridou,我来自希腊,即将从比利时的 Howest Digital Arts and Entertainment 毕业。
在学习期间,我参与了各种项目,从手绘低多边形武器到 Unreal 中的模块化关卡,因此,我可以扩展自己的技能并决定我最喜欢做什么。
我一直认为自己是一名游戏玩家,但现在我可以肯定地说,我更喜欢制作游戏而不是玩游戏。
实时头发
在我的毕业项目中,我选择研究当今开发人员使用的实时美发技术,这个主题看起来很有挑战性,但足够吸引我,让我在接下来的六个月里保持动力。在分析了一些最成功的次世代游戏后,我得出的结论是,对于 AAA 游戏中的 3D 角色,艺术家使用 alpha 混合卡的方法来制作头发。具有头发漫反射纹理(生成或手绘)的多边形卡片以及用于透明度的 alpha 贴图相互叠加以形成发型的结构。
有很多方法可以创建纹理,可以使用曲线笔刷在Zbrush 中手工绘制纤维或从纤维网渲染,可以在 photoshop 中绘制或在 Substance Painter 中生成,如 Chang-Gon Shin 的这个很酷的例子所示。
对于我想尝试 Xgen 的项目,我在研究时遇到了其他艺术家使用该插件创建的一些非常逼真的头发示例,我想更熟悉Maya。
使用 XGen
首先,我创建了一个新的描述,并在一个稍微倾斜的简单平面上放置了一些参考线,并使用雕刻工具为它们赋予了一些形状。之后,我调整了纤维的密度、长度和宽度。头发通常在尖端更薄,为了实现这一点,我改变了宽度斜坡的曲线并调整了锥度值,直到得到我想要的结果。
下一步是将看起来“CGI”的一缕头发转换成更逼真的东西。在 Xgen 编辑器的修改器选项卡中,可以添加各种修改器来实现这一点。由于自然头发倾向于成团生长,因此结块修饰符对我的工作流程来说是最重要的,我在彼此之上使用了几个,每次更改确定每次发生结块位置的贴图和强度的贴图影响。剪裁修饰符使头发的尖端像现实生活中一样不均匀。噪音修改器提供了画龙点睛的效果,在纤维上产生波浪。
在密切关注我为特定发型收集的参考资料的同时,我继续创建了更多带有不同发丝的平面,用于头发变化,一根用于飞散,一对用于短过渡头发。
Arnold Renderer在教育许可下可以免费使用并集成到 Maya 中,此外,还有一个由 Anders Langlands 创建的出色的头发双重散射着色器。
我按照它在正交前视图中渲染漫反射纹理。
我在使用 Arnold 时遇到的问题之一是,有时在场景更改后,渲染器不会自动更新,要解决此问题,我必须通过按 CTRL + U 组合手动强制更新。
我打算以引擎特性示例中的真实感角色项目中包含的原始形式使用虚幻头发着色器,为此,我需要创建额外的贴图,例如深度、唯一 ID 和根贴图。
根图是一个简单的渐变来指定根区域。深度纹理会产生将头发更深地推入头发体积的错觉。唯一 ID 纹理为每根头发纤维指定一个唯一的黑色到白色值,因此,头发本身会产生轻微的变化。
Xgen 描述必须转换为实际几何体,才能将纹理烘焙到平面上。使用“生成”选项卡中的“将 Xgen 基元转换为多边形”选项,我的纤维立即变成了高多边形网格。整理好高多边形后,获得基础纹理是一个非常简单的过程。我创建了一个具有适当尺寸的简单平面,将其用作低多边形网格并将所有内容导出为 obj 文件。Andrew Giovannin我有一个关于如何使用xNormal工具烘焙所有必要纹理的优秀视频教程。
纹理完成后,我制作了实际的低多边形卡片,对它们进行了 UV 处理,并分配了漫反射纹理以可视化头发。
我导入了头部网格,并开始根据纹理不透明度逐层复制和手工放置卡片。例如,基础层主要用于覆盖头皮并具有不透明的纹理,而下一层则更透明,这样发型就有了更多的深度。
多功能性
对于 Zbrush 中的编织元素,SAKAKI Workshops 的 SK_Hair 刷子创建了泪珠形状,用于形成基础网格。然后将其导入 Maya,在那里我将 UV 放置在用于基础层的纹理上。复制了几次辫子,每次都将 UV 移动到更透明的纹理上。用这种方法建立头发网帮助我在我的发型中创造了体积。
最后,我添加了飞行物层,它很好地打破了轮廓并添加了现实主义的画龙点睛。我在参考图片上看了很多,以正确放置那种头发。
出口
我在 Maya 的平滑网格预览模式下工作,它使您可以更轻松地操作卡片,而无需添加大量几何体。完成头发后,我使用“修改”选项卡中的“平滑网格预览到多边形”选项将预览转换为多边形。我最终得到了 75k 面左右的高多边形头发,无法在实时环境中使用。在 Mesh 选项卡中有一个名为 Reduce 的函数,我用它来实现游戏就绪头发网格所需的三角形数量较少,并将所有内容导出为 fbx 文件以供下一步使用。
我在 UE4 中导入 fbx 时遇到了一些麻烦,尝试了几种格式版本但没有任何效果。直到我意识到可能是秤引起了问题。事实证明,我的网格太小了,并且在导入虚幻引擎时出现了问题。
在 UE4 中,我制作了主头发着色器的实例材质,并用我自己的材质替换了贴图。然后我调整了很多选项的值,例如粗糙度和散射,直到得到我想要的结果。调整像素深度偏移帮助我混合线条并淡出平面的一些交点。
时间成本
我整个学期都在为我的项目工作,但是一旦您建立了工作流程并且您知道自己在做什么,一切都可以更快地完成。我花了相当多的时间研究技术和方法。一开始也是从一个简单的发型开始尝试管道,然后才转移到一个复杂的发型。这是一次有趣的旅程,我学到了很多东西,并打算在未来做更多的发型。