在Wrap3中创建面部表情

介绍

你好!我的名字是 Darya Chainikova,我是RainStyle制作工作室的一名高级 3D 艺术家。我们目前正在开发一种名为On Air的科幻恐怖片。游戏讲述了发生在主人公身上的神秘事件,他偶然入住了美国酒店ALGOL。这件事将彻底改变他的生活,迫使他面对不确定性。

在我们的项目中,我们试图让角色尽可能逼真,传达他们的情感和个性。这就是为什么决定使用面部扫描技术来创建它们的原因。在该项目的框架中,我们将需要两个级别的角色细节处理:用于过场动画的渲染和将用于游戏本身的低多边形。

该游戏是在虚幻引擎 4 中开发的。我们计划写几篇文章,详细解释角色创建的各个阶段。在本文中,我将描述创建主角面部的过程。让我们开始?

人脸扫描

 下图显示了我们在处理面部扫描结果后收到的一些情绪:

它们大多被夸大了,看起来不现实。这种创建人脸的方法基于混合形状功能。这意味着这些情绪中的每一种都不会单独使用,而是与其他情绪结合使用。 

查看Jason Baskin 在Maya 中回顾该功能的视频 :https://www.youtube.com/embed/wmCy02S2Vh0?feature=oembed&enablejsapi=1&origin=https://80.lv

首先,我们需要弄清楚如何处理扫描的头部以及如何使用它。显然,扫描的拓扑结构不允许将其用作模型,但我们可以获得面部的基本特征、皱纹、疤痕,当然还有纹理。Program Wrap 3.3 将有助于在扫描中投影我们未来的头部模型。它广泛用于处理扫描模型。

底网

首先,我们需要创建一个基本的网格。那是面部的中性表情,它将成为所有情绪的基础。我们中性情绪的扫描看起来像这样:

Wrap 3.3 有一个节点系统,其中所有功能都表示为通过链相互连接的节点。 按 T​​ab 键选择节点。在 LoadGeom 和 LoadImage 点头的帮助下加载带有中性情绪的扫描及其相应的纹理。为此,应在“文件名”面板中指定路径。在 LoadGeom 节点设置中,您可以选择不同的几何显示模式(下图中的线框被禁用)。您还可以更改几何颜色(如果安装了纹理则不起作用)、坐标和比例。

接下来,您需要加载将在扫描中投影的基本网格。您可以在“画廊”选项卡上找到它,其中展示了许多现成的情感。在这种情况下,我选择 Basemesh。

Basemesh 和扫描应该或多或少匹配。使用坐标轴来做到这一点。

我使用环绕节点在扫描上投影基础网格。当您将鼠标悬停在节点上时,将显示工具提示。第一个节点(浮动几何)设计用于投影几何,第二个节点(固定几何)——用于几何投影的固定对象(在这种情况下,它是具有中性情感的扫描)。

要运行计算,您需要在两个模型上标记点,它们将相互对应。为此,请使用连接到相应模型节点的选择点节点。通过选择此节点,您应该转到 Visual Editor 选项卡。启用同步功能允许同步左右面板的摄像机视图。

选择多边形

如果投影模型包含必须保持原位的多边形,则需要使用“选择多边形”功能来选择它们。否则,可能会出现与网格内部细节相关的伪影。

使用可视化编辑器选项卡应用选择多边形节点。在这里,您可以选择由图库中的模型划分为子组的多边形。它简化了任务:可以在顶部面板上选择或取消选择它们。

我要突出喉咙、鼻孔、眼睑和颈部下部的内部:

之后,模型将被正确投影:

为了更好地进行细化,您还可以使用细分节点。它连接到基础网格,所有与它关联的节点都连接到它的输出。

纹理烘焙

此外,有必要将纹理从扫描烘焙到基础网格。Transfer Texture 节点用于此目的。源几何节点连接到将烘焙纹理的模型。在我们的例子中,它是一个扫描。目标几何节点连接到基础网格——这次不是连接到 LoadGeom 节点,而是连接到 Wrapping 节点,因为我们将使用修改后的投影几何。

在这个节点的设置中,我们可以选择烘焙纹理的质量。之后,我们应该添加 Extrapolate Image 节点来填充透明区域,并通过使用 Save Image 节点并按下 Compute current frame 按钮来保存生成的纹理。几何体的保存方式与 Save Geom 节点类似。

处理不同的情绪

一旦我们为它获得了中性的情感和纹理,我们就可以继续为其他情感获取几何图形。加载必要的扫描模型和带有纹理的 Basemesh。

现在将 Basemesh 与扫描对齐。一开始,您可以使用坐标轴近似映射模型。

刚性对齐是一个节点,可让您更准确地将模型彼此对齐。浮动几何节点连接要对齐的几何。在固定几何中,您将找到静态几何节点(在我们的示例中为扫描)。

使用 Rigid Alignment 节点时,需要使用 Select Points 节点:

我的模型具有控制标记,可以轻松选择点。为了使模型彼此对齐,应将点放在面部的那些因特定情绪而略有变化的部分上。在这种情绪的情况下,它们是前额、鼻子顶部、颈部等。此外,建议将点放在模型的所有侧面(即,例如,不仅在脸上,而且在后脑勺和耳朵)。

结果,我们获得了彼此对齐的模型:

如果需要缩放模型,使用刚性对齐设置中的匹配缩放功能。

结合 Basemesh 和扫描

下一步是将基础网格投影到扫描中。为此,我们将使用节点光流包装(光流)。它允许您将几何图形与扫描纹理对齐。同时,除了褶皱、皱纹等变化外,情感的纹理将与基础网格的纹理完全重合。使用此方法时,所有不均匀的皮肤区域和毛孔都保留在原位。

在使用光流之前,使用多边形节点:

因此,头部的固定部分将保持原位。

您还可以使用选择点节点。在这里,您选择面部移动部分上的点:

接下来,我们转到光流的设置。在 Visual Editor 窗口中,可以调整的相机将出现在模型周围。

在顶部,有一个菜单,您可以从中移动到相机视图。默认有 13 个摄像头。有必要正确排列它们以捕捉整个面部。

除了分辨率最终和光流平滑度最终选项外,我几乎保持所有默认设置不变:

最后,您可以单击 Compute 并查看结果:

将网格均匀地投影到扫描上后,您需要烘焙纹理。这是按照本文第一部分中解释的相同方式完成的:

因此,如果将生成的纹理与基础网格的纹理结合起来,会添加一些细节,但控制点将相同:

之后,可以保存纹理和几何体。

结果,我们得到了一个带有纹理的新情感网格。

混合形状

混合形状方法允许混合情绪。为此,将生成的网格加载到混合形状节点中。

在第一个节点中,我使用了中性情绪。尝试节点设置,您可以选择每种情绪的表达量。为了使这种方法起作用,模型应该具有相似的拓扑结构。

返回首页 

作者 CG-BOX

发表评论