介绍
你好,我叫托马斯,很高兴看到你在这里找到。我是 Guerrilla Games 的初级角色艺术家,另一方面,我喜欢创建实时头发。在本文中,我想向您展示我最新的个人项目的创建过程,从头到尾。每个个人项目都应该从一个目标开始。就我而言,我想制作卷发,因为首先,当我看到照片(这成为我的主要参考)时,我对发型的出色程度感到非常震惊。但老实说,我想制作卷发,因为它看起来非常具有挑战性,而且一般来说,它在电子游戏中的代表性不足。
对于这个项目,我使用了以下软件包:
PureRef:创建我的情绪板
Zbrush:用于创建头雕(我从在 ten24 商店购买的扫描开始。Maya
(带有一个名为 Coiffure 的 Xgen 插件) ) : 创建头发纹理
3dsMax : 放置发卡
Substance Painter : 制作胸部纹理
Marvelous Designer : 制作毛衣
Unreal Engine 4 : 最后呈现角色
好的,让我们开始吧!
参考资料 – 头发
这是我最初的情绪板(经过大量清理)。我的一般策略是:收集尽可能多的图像,然后按其用途/类别(在我的情况下:剪影、短卷发、长卷发等)组织你的图像。最后,通过删除任何重复的图像来清理你的情绪板——这些图像可以是基本上显示相同类型信息的图像。
旁注:有时,很难找到一个人的连贯参考。如果您正在寻找名人,我真的可以推荐 gettyimages.com。他们拥有超大的图像集合,您经常会发现许多在同一事件中从不同角度拍摄的照片。
参考阶段是最重要的阶段——仅在这个阶段我就学到了很多关于卷发的知识;头发(构成每个卷发)如何流动和结块,以及卷发如何分层。
在 Maya 中创建头发纹理以及在 3ds max 中放置发卡时,自己花额外的时间分析和绘制图像会有所不同,并极大地帮助了我。首先,让我们快速看一下纹理。
头发纹理
对于纹理,我使用了 Coiffure,这是一个插件,基本上可以让您使用 Xgen 的生活更加轻松。它还可以让您设置材质并以有组织的方式快速渲染地图。如果您想了解有关 Coiffure 的更多信息,它的创建者 Florian Croquet 上有很多 youtube 内容(可在此处找到插件 –
纹理步骤是一个非常迭代的步骤,我想在找到对我来说最好的之前,我经历了 30 多次不同的迭代。看在大家的份上,让我们跳到最终版本,让我快速向您解释我对这些纹理的目标是什么。
从左到右:前两个 alpha 链的目的是提供音量。接下来的三股线用于增加断裂,最后一股线将有助于添加额外的单股,更结块的断裂和飞散的头发。右下角的头发只是用来在脖子后面创造一些非常短的卷发。
正如您所看到的,纹理本身看起来并不绝对令人惊叹或惊人,但这对于它的最终外观来说往往是必要的。让我们进入 3dsMax,看看这些纹理是如何使用的。
发卡造型
发卡已完全创建并放置在 3dsmax 中。选择 3dsmax 的原因是 PathDeform 修改器,因为它让我可以自由地通过曲线控制卡片——移动、旋转和移动都是制作卡片的好方法,而不会过度拉伸纹理!我在 3dsmax 中的工作流程分为几个步骤。在开始创建团块之前,我将每张发卡的纹理放在一边。
如您所见,我还通过拉出沿卡片中间延伸的垂直边缘环在底部捏住它们。这有助于提供一些三维度。
现在我们准备创建束的变化——根据它们的目的使用不同的头发纹理很重要,我在头发纹理部分讨论过。您可以在下面看到我创建的团块的摘录。
这些团块就像头发质地一样,用于特定目的。较厚的团块用于覆盖大部分头皮和头发体积。较薄的团块用于产生变化并添加一层分解。飞散的头发被用来创造更多的分手,那些从卷中折断的单发有助于让头发感觉不那么像卡片。发际线的头发是不言自明的,它只是为了将头发更好地融入头皮。上面显示的团块不适用于所有使用的团块,我创建了大约 6 个粗和细团块版本和 5 个飞散版本。
这是我用于上述第一个团块的卡片的细分。
这个较厚的一团由 11 张卡片组成。您可以看到它们有特定的名称,这些名称与纹理编号 (_01) 和使用此纹理的卡片编号 (_009) 相关。因为我一直在复制卡片及其曲线,所以这个命名约定对于在大纲中保持概览是绝对必要的。您可以看到,每张卡都有一些修改器,主要与使卡变细、添加边缘循环和调整 uv 相关。
要确定该股线是否“成功”,归根结底是在曲线上观察它,看看它是否以您想要的方式变形,以及它是否看起来不错。如果没有 - 回到构建新的卡片组。查看您的参考资料,看看那里的毛团如何,然后再试一次。别担心,这个阶段并不容易,可能会有点令人沮丧,但耐心是值得的。通常对我有帮助的是确保从各个角度看起来都很自然,例如这个:
我再次尝试遵循参考文献中所代表的想法。这是创建所有团块时的最大目标。当然,尝试从您的参考中挑选外观不同的卷发,这样您就可以清楚地了解要使用卡片创建什么样的束。当我创建头发的纹理时,我已经考虑过这一点。事先计划好这一点将帮助您顺利完成任务,而不会遇到任何意外。
这是我的大部分(如果不是全部)股是如何建立的示例(图 1)。我使用 EditPoly 使头发看起来更光滑,因为我为此股使用了强烈弯曲的曲线(图 2)。FFD 用于加宽根部的股线(图 3)。这有助于在不使用太多头发的情况下遮盖头皮 - 但此外,它也与卷发实际上聚集在一起的方式一致,如下面的参考资料所示。
最后,PathDeform 本身。在这种情况下,我只是稍微缩短了股线并将其从曲线的开头移动。我不必在曲线周围扭曲卡片,因为我已经花时间根据自己的喜好手动塑造曲线。
是什么对我帮助很大,以确保我在整个发型中保持变化,我用独特的网格颜色为每一束变化着色。然后我简单地进入线框模式并确保相邻的团块具有不同的颜色(不同的变体)。
最困难和最耗时的步骤是基础层,主要是因为“空画布”综合症——弄清楚头发应该放在哪里。我认为最好的方法是查看您的参考资料,然后将其松散地放在您认为它应该去的地方——松散的我的意思是不加思索地采取行动。在这里您可以看到带有曲线和卡片的基础层的最终放置:
你可以看到有很多头皮没有被覆盖,但这没关系,因为我们希望为分离层留出空间。值得注意的是,我们希望卷发之间有一些负空间。这是非常重要的实现,这样卷发感觉蓬松,就像它们可以保持自己的体积一样 - 就像它在参考文献中可见一样。
一旦你的头上有足够的头发,你就可以开始稍微移动它们,缩小它们几乎最终的位置。在后期阶段,他们的位置仍然会发生一些变化,主要是因为您再次以更新鲜的眼光看待事物,还因为您会在添加分手和/或飞散的股线时发现改进的潜力。
作为一个小总结,这里有一个渐进的阵容,显示所有的头发阶段彼此相邻。
雕刻头部
头部是从我从 3dscanstore 购买的扫描开始的,以节省一些时间。然而,当我决定让这张脸靠近 Aiyana Lewis 时,扫描得到了一个很大的雕刻,她的头发首先激发了我的灵感。同样,参考是关键,所以花了很多时间来收集好的图像。
眉毛、睫毛和桃毛
对于眉毛和睫毛,我决定使用 Xgen 并在 Unreal Engine 中使用 Alembic 头发。那里有一些很棒的教程,所以我不会详细介绍面部毛发的创建。我遵循的教程(迄今为止我最喜欢的)是 Hadi Karimi 制作的教程:https : //www.youtube.com/watch?v= RkpJ4LGJrf8 & t = 1700s 。对于每一个,我都创建了一个新的描述,并将它们全部放在一个集合中,以保持井井有条。这是我用于眉毛、睫毛和桃色绒毛的修饰剂。
为了使眉毛更接近参考,我使用了区域图。这对我将头发分成不同的方向有很大帮助,这与参考文献中发生的情况类似。
正如 Hadi Karimi 所指出的,将睫毛分成两种描述非常方便。
最后是桃花绒。
创建毛衣
这件毛衣完全是在 Marvelous Designer 中创建的,在 Zbrush 中几乎没有任何调整。我想要一件简单的毛衣,把主要的注意力放在头发和脸上。
对于毛衣上的绒毛,我还使用了 Xgen。这次我使用了由表达式驱动的随机生成的基元。
此工作流程的所有功劳都归于 Bianchini95 的教程,它非常有用,您可以在 Instagram 上查看他关于他的方法的原始帖子:https : //www.instagram.com/p/CLZRjsqDZEO/
纹理头部
作为基础,我使用了从 textures.xyz 购买的纹理,因为它已经朝着我想要的外观方向发展(如果您有兴趣,就是这个:https : //texturing.xyz/collections/ multi?channel-faces/products/female-20s-multichannel-face-43?variant=13609427238986)。其次,我将在新图层上重新使用相同的扫描纹理并修复任何纹理拉伸或接缝。我重复这个步骤,直到所有的接缝和拉伸都消失了,纹理看起来好像很自然地贴合在头上。然后,我将开始使用 HSL 滤镜调整肤色,这是一个非常快速的步骤,并且已经使皮肤更接近了。然后我根据自己的喜好改变纹理,主要集中在脸部的红色、黄色和蓝色区域。互联网上有一些基本的参考资料,你
可以关注,像这样:
有关我所做工作的更多信息,我真的建议您观看 Magdalena Dadela 关于 Painter 中皮肤纹理的演示,以防您还没有看过。我多次使用这个来练习皮肤纹理,它涵盖了广泛的信息:https : //www.youtube.com/watch?v=9ywhVkZBtq8&t=1487s
我总是尽量让我的文件井井有条,所以所有的频道都在他们自己的文件夹中
对于所有其他贴图,例如 Roughness 和 Spec,我没有做任何与众不同的事情,因此我将重点放在 Roughness Zone 贴图上。我使用了 Saurabh 的 UE4 皮肤着色器,我最终烘焙了这些贴图:颜色/反照率、AO、高度、法线、粗糙度区域、镜面反射。粗糙度区域贴图基本上是头部不同粗糙度区域的 ID 贴图,在我的例子中是前额、鼻子、脸颊和嘴巴。下面是我的截图:
将所有内容带入 UE4
我的这个项目的版本是 4.26。为了将所有东西都带入虚幻引擎,我从一个全新的层次开始。为了了解如何导入头部,我查看了 Digital Mike 的导入方式并使用了相同的方法。在研究 Digital Mike 时,我还查看了为将眼球混合到头部而创建的所有网格(角膜、泪线、肉眼混合网格以及眼睑和眼球之间的遮挡网格),并按照以下步骤创建了自己的网格迈克的接近。对于所有眼睛网格,我只是重用了 Digital Mike 场景中的着色器。
对于皮肤,我使用了 Saurabh 的着色器。如果您想详细了解它的确切工作原理,我想请您参阅 Saurabh 在 texturing.xyz 上的文章。它已经非常详细,基本上,我完全遵循:https : //texturing.xyz/pages/saurabh-jethani-creating-realistic-skin-in-ue4
为了向您展示我如何使用着色器,您可以在下面找到我的设置。
皮肤就是这样——让我们谈谈我使用的头发着色器设置:亮度控制头发可以吸收的光量,这意味着头发可以变得多亮。因为我想要深棕色的头发,所以我把这个值保持得很低。EdgeMaskContrast 和 EdgeMaskMin 决定了当发卡背对摄像机角度时您将看到的发卡数量。EdgeMaskMin 值越接近 1,当卡片背对相机时,您看到的就越多。我很喜欢使用它
(虽然低于 1),因为它有助于在卡片通常最弱的地方保持音量 - 当背对相机时。
MipBias – 它的想法是确保纹理分辨率在距离上尽可能高。该值通常应保留为默认值,但我发现在 -1 时获得了最佳效果。
粗糙度定义了表面对光的反应,是完全反射光还是完全漫射光。头发的粗糙度在 0.4 左右,对于外观,我很在意,我发现这个值给了我很好的效果。
Scatter 描述了光线应该传播到头发中的距离并显示第二个镜面反射波瓣。看看我的参考资料,我想要一个非常深棕色的发型 (A),在强烈的边缘光下,会显示出稍微亮一点的棕色调 (B)。
下面是在虚幻引擎中捕获的最终结果。
接下来,让我们看看我是如何将所有 xgen 头发带入虚幻引擎的:
为了将眉毛、睫毛、桃子绒毛和毛衣绒毛带入 Unreal,我将 Xgen 描述转换为交互式修饰,然后转到生成 → 缓存 → 导出缓存。
这会将 Xgen 描述导出为 alembic 文件 (.abc),然后可以简单地将其拖放到虚幻引擎中!Unreal 会自动为您的新 abc 文件创建一个着色器并将其分配给它。我根据我想使用它们的目的对这些进行了一些编辑。例如,对于毛衣绒毛,我更改了粗糙度,使其反射性低于头发。我还改变了颜色以更好地与毛衣本身融合。
将 .abc 文件导入 Unreal 时,您还可以更改每个文件的所有头发形状。
我想让毛衣的绒毛比头发厚,所以我调整了宽度(作为对比,她脸上的桃色绒毛的厚度为0.004)。
毛衣材质
需要注意的一项重要设置是“散布场景照明”。它允许头发被附近表面反射的光照亮。因此,我建议您为 peachfuzz 启用此功能。毛衣材质:
毛衣材质取自 RonanMahonArt。他在这些材料上做了惊人的工作,我只能建议你去看看。有一个 youtube 视频,艺术家在其中查看了您可以在 Unreal 中使用的所有设置,以根据自己的喜好调整材质:https : //www.youtube.com/watch?v=3onVrSbxbgY
UE4 光照和渲染设置
我的设置,只有网格可见,如下所示:
现在,我拼凑了一些东西来渲染转盘。我在角色的正上方放置了一个 CameraRig_Crane,以便起重机的旋转轴位于角色的中心。然后我将
相机连接到 CameraRig_Crane 臂的末端。然后,我简单地为 CameraRig_Crane 设置动画以使其旋转,瞧——我们得到了一个转盘。
让我们继续照明本身。我的第一步是添加一个天窗。我不把它用于任何重大的事情,但我想用一个来添加微妙的反射。因此,我将其设置为非常低的强度。此外,请确保将其设置为“可移动”而不是静态或动态。
首先,我再次有一个灵感图像作为参考。我选择它是因为我喜欢戏剧性的灯光,但也因为姿势相似。
因此,我将第一盏灯对准墙壁,以确保我的角色从背景中偏移并创建角色的轮廓。
然后我放了一个主灯。这有助于塑造第一个阴影并突出她的右侧。使用所有设置以查看它们的作用很重要,但我经常使用的主要设置之一是传输。它允许您的光穿过使用次表面散射的表面。
我最终复制了这个主光,以在面部特征上获得更平滑的阴影,尤其是鼻子和嘴唇的阴影。这是我从遇见迈克场景中得到的东西。其背后的想法是:如果你想平滑你的阴影,你必须尽可能多地复制关键灯光,并将灯光强度除以你使用的灯光数量。这样,您最终会得到相同的光强度,但阴影更平滑。
现在我已经有了主要的灯光形状,我添加了一个强大的主光/边缘光,以放置我在参考中看到的高光。由于我不再更改复选框灯设置,因此我不会再更改这些设置,并且仅分享与上面的灯相比我更改的设置。
接下来,我开始添加补光灯,以稍微照亮黑暗的阴影。在这种情况下,我想玩区域光。
然后我又添加了一个边缘灯来给头发一些亮点。我知道这不在参考文献中,但头发对我来说是最重要的,所以我希望它得到更多的关注。理解并遵循您的参考是很好的,但添加您自己的风格也很重要。
您可能已经从渲染中注意到,还有另一种照明设置。为了本教程的篇幅,我将避免深入讨论。让我们继续后期处理效果和渲染!
我使用 PostProcessVolume 将最终图像再推一点。我已将所有设置设置为非常微妙的强度,因此我将向您展示关闭和打开所有设置的前后效果。
使用 PostProcessVolume
让我们回顾一下我在渲染中使用的相机设置:我将我的胶片背景设置为 16:9 数字胶片。我最喜欢这个结果并决定坚持下去。我将焦距设置为 75,如果你想拍人像,你可以用这个值更高——
我想在那里留下一点透视,所以我选择了 75 毫米。
下面是一个参考,展示了透视和正交外观之间的平衡。值越低,透视失真越强,值越高,图像越正交。
对于焦距,我使用了非常有用的调试焦平面。这非常方便,因为您可以清楚地看到当前为焦点设置的深度。您可以在下面看到它已启用。
我没有在相机设置中使用任何后期处理效果,因为我为此使用了音量
对于转盘动画,我只是使用 Sequencer 录制了 6 秒内非常基本的 360 度旋转。
使用 Unreal 的 Movie Queue Render 进行渲染
虚幻电影队列渲染绝对是惊人的!对我来说,使用 MQR 的主要优势在于您可以将时间抗锯齿提高到 64!换个角度来看,在不使用 MQR 的情况下渲染图像会将您的时间抗锯齿限制为 4。
使用 MQR,您的最终渲染看起来更加清晰,但是,渲染这些图像也需要更长的时间。我完全推荐这样做,这真的很值得。尤其是在渲染头发时。
我可以详细说明我是如何设置的,但我实际上是按照 William Faucher 的 youtube 教程到点的,所以我想给他所有的功劳,并将他的视频链接给你:https : //youtu.be/FxvF3zncClA
您可以在下方看到未使用 MQR 渲染的区域。
下图显示了使用 MQR 渲染的相同区域。使用 64 个时间抗锯齿样本,看看它看起来有多平滑和漂亮。
请登录之后再进行评论