FaceBuilder​是 Blender 的一个附加组件,用于根据照片对人脸和头部进行 3D 建模。使用 FaceBuilder,您无需成为经验丰富的 3D 建模师即可创建具有清晰拓扑的高质量 3D 模型。您首先从不同角度拍摄一些人的照片,然后在每张照片上放置一个模型以构建头部或面部模型。3D 模型稍后可用于雕刻、动画、跟踪或 Blender 中的其他任何内容,或导出到文件并导入到任何其他 3D 软件中。

核心库

不幸的是,由于 Blender 许可证限制,我们无法在附加包中提供我们的核心库,但我们尽可能轻松地独立安装它。有两种方法可以做到这一点:在线离线。两者都可以在我们的附加组件的首选项窗格中访问(编辑 > 首选项 > 附加组件 > KeenTools FaceBuilder)。

如果您要安装我们插件的机器已连接到互联网,那么您可以尝试自动在线安装 - 只需按下按钮,Install online我们的插件就会下载核心库文件,并将其安装到插件目录中并告诉您现在您可以使用该附加组件。

您还可以从我们的网站手动下载核心库,并使用 按钮指定下载文件的路径Install from disk。我们的附加组件将安装下载的核心库文件,并告诉您现在可以使用该附加组件。请记住,附加组件和核心库的版本应该相同。

控制面板

您可以使用 3D 视口右侧栏中的面板来控制 Blender 中的 FaceBuilder。N您可以通过按键或单击视口右上角的小三角形将它们带到屏幕上。

FaceBuilder 有八个面板。在主顶部面板上,您可以创建、删除和选择 FaceBuilder 对象。我们不建议在一个场景中使用多个 FaceBuilder 对象,因为这可能会导致混乱。

使用七个附加面板,您可以通过多种方式控制所选的 FaceBuilder 对象。

Camera面板允许您修改相机设置。

Views面板上,您可以加载、删除和替换照片,切换到不同照片的固定模式,打开面部表情(稍后会详细介绍)。一旦切换到此模式,您也可以在这里找到 Pin 模式所需的大多数按钮。

Model面板使您可以控制 3D 模型的参数,例如对形状和表情的引脚的响应性(刚性)、各种面部部位(鼻子、耳朵、颈部等)的可见性、几何比例和分辨率(高、中、或低聚)。请注意,虽然可以更改建模头部的模型分辨率,但最好在开始塑造头部之前确定所需的分辨率。每次更改拓扑时,您都会失去精确性,虽然损失的程度难以察觉,但仍然如此。

接下来,我们有PinsWireframe面板,您可以在其中调整引脚模式下引脚和线框的外观。

Texture面板使您可以访问自动纹理生成的实验功能。

最后,该Blendshapes面板具有 FACS 混合形状功能的控件。您也可以在这里导入带有预先录制的动画的 CSV 文件,也可以导出动画模型。

初始化模型

在创建第一个 FaceBuilder 头部之前,最好从场景中删除所有不需要的对象,尤其是放置在场景中心的对象,因为新创建的头部也会放置在中心,然后您可能会遇到以下情况物体会互相干扰。例如,默认情况下,Blender 在场景中以立方体、相机和灯光启动,您可以使用鼠标选择它们,然后从上下文菜单(鼠标右键)中删除它们,或者您可以仅使用快捷方式序列:A→X→D(选择所有内容→删除→确认)。

您开始使用 FaceBuilder 创建头部 3D 对象(如果尚未创建)。为此,您需要打开侧边栏,在其中找到 FaceBuilder,然后单击Create a new headFaceBuilder 主面板上的按钮。

加载照片

初始化模型后,您可以加载该人的照片。您可以Views通过单击面板上的Add images按钮来执行此操作。可以一次加载多个图像文件。

与照片中人物的距离并不重要,但建议让他们占据画面的大部分空间,同时将扭曲保持在最低限度(例如,不要使用靠近拍摄对象的广角镜头) )另外,重要的是要知道 FaceBuilder 期望照片根本没有镜头畸变,因此虽然这不是一个大问题,但如果您在使用 FaceBuilder 之前对照片进行不畸变处理(Blender 中的镜头畸变)

每当您加载新照片时,View就会创建该照片。它是一个由 3D 相机和您加载的图片组成的虚构实体。因此场景中加载到 FaceBuilder 中的每张图片都有自己的相机。

相机设置和 EXIF

FaceBuilder可以自动设置每张照片的焦距。如果有 EXIF 数据,就会使用它,然后您会得到非常精确的结果。如果没有 EXIF 数据,焦距估计将被打开并以智能方式使用,同时考虑到每张照片的尺寸。不过,如果您需要手动设置焦距,我们保留手动控制选项。

要手动设置相机,您需要知道每张照片使用的 35 毫米等效焦距。您需要打开Camera面板,然后在字段中输入值Focal Length

固定

加载照片后,就该决定是否打算使用面部表情了。如果即使在其中一张照片上,被拍照者似乎也没有中性面部表情,则您需要打开面部表情支持。

加载照片后,就到了我们所说的“固定”的时候了:单击面板上带有图像文件名(视图)的按钮之一Views- 您将打开固定模式。面板上将出现几个新按钮Views,在视口中您将看到加载的照片和 FaceBuilder 3D 模型的网格。现在您可以开始将网格固定到照片上。

它可以手动完成或使用自动面部对齐来完成。对于第二个选项,请按面板Align Face上的按钮Views。然后,几个神经网络将在照片上找到一张脸,并设置所有所需的引脚来匹配位置和形状。Allow facial expressions如果面部表情不是中性的 -在按下按钮之前打开复选框Align Face- 那么表情也将被匹配。对您加载的每张照片重复此操作。如果照片上有多张脸,该插件将让您选择要固定哪一张脸。目前,对齐结果并不总是 100% 准确,因此在大多数情况下,您可能需要调整位置以创建新的引脚或移动已创建的引脚。

您可以通过单击网格上的任意位置来创建图钉 - 出现在其上方的红色方形点就是我们所说的“图钉”。您不需要一次创建很多,而是针对头部(或面部)的可区分部分逐一创建它们,然后将它们拖动到照片上的相应位置。如果您需要移除图钉,请右键单击即可。不要忘记您可以撤消和重做大多数操作,但对于固定,您通常需要执行两次才能生效 - 不幸的是,这就是 Blender 的工作原理。

如果您喜欢手动固定,可以像以前一样进行。但我们确实建议从自动对齐开始,因为它可以大大减少固定时间!

对于手动固定,我们建议从 3/4 视图开始,因为它可以同时为您提供有关头部的更多信息:前视图和侧视图。但对于自动对齐,通常最好从正面视图开始。

前三个销钉可以更改网格的位置和比例,使用四个销钉可以更改形状和表达。我们建议从眼角、嘴巴、耳朵、鼻子、下巴开始,然后切换到另一个视图以重复相同的“草稿”固定。当您固定了四个或五个视图(例如 3/4 中的两个,正面视图和两个侧视图)时,您可以返回到之前固定的视图,并在必要时创建新的固定来细化模型位置和形状。然后,您可以固定更多视图并重复细化过程,直到您对模型的质量感到满意。

如果模型感觉太僵硬,请使用Shape rigidityExpression rigidity设置(Model面板)来更改影响模型形状和表达的引脚数量。

您可以随时按面板Remove all pins上的按钮删除所有引脚。Views在这种情况下,所有红点都会消失,该视图上的网格将重置为默认形状,但其位置将保持不变。

通常,您最多需要七个视图:正面视图、两个 3/4 视图、两个侧视图、一个半底视图和一个半顶视图,但如果您觉得需要,可以随意添加更多视图。拥有更少的数据也会导致丢失你看不到的细节的明显结果。

关于拍照的一些注意事项。您可以使用任何类型的照片,包括具有非中性面部表情的照片。但重要的是要明白,如果使用非中性面部表情和焦距估计,FaceBuilder 算法的猜测就会获得太多“自由度”,因此不仅计算速度变慢,而且模型的精确度也会受到影响。这就是为什么如果您追求质量,则需要在拍摄人物时了解相机设置并照顾人物的外表。

在理想的情况下,您可以在一个人周围设置多个摄像机,就像您设置摄影测量设备一样,然后立即拍摄所有照片。但通常要求一个人放松地坐着或站着 15 至 30 秒,同时拍摄所有所需的照片就足够了。还值得知道的是,如果你要求一个人改变头部的位置 - 他们靠近颈部的头部形状会因肌肉紧张而变形,所以最好在这个人周围走动时带着相机完全静止了。最后要记住的是,如果您打算从照片中获取纹理 - 您需要设置适当的均匀照明,否则不同区域的纹理亮度和颜色会有所不同。通常,走到外面没有阳光直射的开阔空间就足够了,阴天在这种情况下效果最好。另外,相机最好使用手动白平衡,否则颜色可能会有所不同。

纹理化

Blender FaceBuilder 中内置的纹理提取算法仍处于早期实验阶段。我们决定将其纳入其中,以便为您提供一种简单的方法来开始获得足够好的东西。

它使用固定模型的视图来工作:根据模型位置将 UV 贴图的每个像素投影到照片上。

在启动纹理创建过程之前,您可以在面板顶部设置纹理分辨率和所需的 UV 贴图Texture。FaceBuilder 有 4 种不同的 UV 贴图:ButterflyLegacyMaxfaceSphericalButterfly旨在以尽可能少的接缝减少变形。我们的LegacyUV 扭曲更少,但有很多接缝。Maxface为您提供尽可能高的面部分辨率。Spherical是一种稍微修改的流行“圆柱形”UV,顶部处理得更好。

按下Create Texture按钮后,您可以选择要用于纹理抓取的视图(没有固定模型的视图将被自动忽略)OK在对话框窗口中按下按钮开始抓取和缝合纹理的过程,这通常需要大量的处理能力,也需要一些时间,所以你需要有一点耐心。

一旦该过程完成,如果您选中相应的复选框,您可以看到纹理已应用于对象,如果您没有选中 - 您只会在 Blender 的状态栏中看到一条消息,告诉您纹理已创建 - 然后您可以使用按钮应用自动创建的材质作为纹理Apply texture

您还可以使用此面板上的按钮导出和删除纹理。当您想要传输不带纹理的项目文件(这会将文件大小从千字节更改为兆字节)时,删除可能会很有用。

Advanced“纹理”面板的部分中,您可以调整纹理抓取算法。最重要的设置是Angle strictnessExpand edges

第一个,Angle strictness,决定了抓取时视角如何影响像素颜色。可能的值为 0–100。值为 0 时,每个像素将具有从该像素可见的所有固定视图中获取的颜色之间的平均颜色。在 100 时,仅使用“我们正在查看”90° 该像素的视图,因此颜色变得更准确,但您会丢失许多没有 90° 的像素的信息° 视图。通常,最佳值在 10 到 20 之间。

Expand edges设置可帮助您使用边缘像素的颜色扩展纹理边缘。该值确定输出格式高度的百分比扩展。使用它可能有助于隐藏所应用纹理上的接缝。

然后我们还有两个超级实验函数:Equalize brightness- 尝试在不同视图上调整像素的亮度,以及Equalize color- 调整像素的颜色。当您在不同的照片上脸部的光线或颜色不同,从而在纹理上出现阴影和色块时,它们可能会有所帮助。虽然有时这些功能效果很好,但如果您打算使用照片进行纹理抓取,那么在拍摄时拥有均匀照明的脸部仍然要好得多。

然后我们还有三个超级实验函数:Equalize brightness- 尝试调整不同视图的亮度,以及Equalize color- 调整像素的颜色。当您在不同的照片上脸部的光线或颜色不同,从而在纹理上出现阴影和色块时,它们可能会有所帮助。第三个是Autofill试图在智力上填补空白。尽管有时这些功能效果很好,但如果您打算使用照片进行纹理抓取,那么在从多个视角拍摄脸部时拥有均匀照明的脸部仍然要好得多。

混合形状

头部模型准备就绪后,您可以使用 51 个内置 FACS 混合形状为其制作动画。按Create“混合形状”面板上的按钮可生成形状关键帧。您将看到更多按钮来控制混合形状。Delete删除形状键并取消动画链接。Reset value将当前帧中形状键的值重置为 0,请注意,它不会改变动画,也不会创建关键帧 - 如果您想在当前帧中保存此状态,则需要手动执行此操作。

您始终可以手动设置混合形状的动画,为每个关键帧设置其值。但我们可以将预先录制的动画导入为 Live Link Face 格式的 CSV 文件。

要手动控制混合形状,请使用面板Shape keys上的选项卡Object Data Properties。面板中的形状键编辑器使Animate您可以控制关​​键帧。

Load CSV您还可以使用面板上的按钮导入预先录制的面部动画Blendshapes。FaceBuilder 头部将使用 CSV 文件中的混合形状系数进行动画处理。目前仅支持Live Link Face 应用程序的格式。该应用程序仅适用于配备 TrueDeph 相机的 iOS 设备,例如 iPhone X 和更新型号。

请注意,动画是从当前关键帧加载的。这意味着您可以连续将多个文件加载到序列中。

该文件的格式非常简单,因此您可以使用自定义软件解决方案自行编写。您还可以从我们的Nuke FaceTracker 节点以 CSV 文件的形式导出面部动画,其中包含 ARKit 兼容的 FACS 混合形状系数。

项目管理、保存和导出

您可以在面部构建过程中轻松保存项目,然后加载它并从您离开的位置继续工作。

我们建议将项目文件保存在保存其中使用的照片的同一文件夹中,或者将照片保存在项目文件旁边的目录中。请记住,Blender 在项目中使用相对文件路径,因此将文件存储在不同的硬盘驱动器上并不是一个面向未来的想法。

FaceBuilder 不将照片包含到项目文件中,因此当您想要将项目传输到另一台计算机(或某人)时,如果您或您传输的人,则不仅需要传输项目文件,还需要传输照片该项目将使用照片来改变头部的形状。

同时,创建的纹理存储在项目文件中,因此首先您将其与项目文件一起传输,其次,它使您的项目文件相当重。如果您不想或不需要传输纹理,可以使用面板Delete上的按钮将其删除Texture。您还可以使用 按钮导出它Export,然后将其从项目中删除。

要导出几何体,您需要在 3D 视口中选择它,然后转到“文件”>“导出”菜单,您可以在其中选择文件类型并保存模型。我们建议使用 Wavefront (.obj)或 Alembic (.abc)格式,因为其他格式在 Blender 中无法一致工作。但您可以根据您的工作流程自由尝试选择任何其他格式,其中有很多格式,包括人们经常用于 3D 打印的格式。

如果您打算使用我们的 FaceTracker 进行面部跟踪,则需要保持拓扑完整,我们依赖 FaceTracker 中的顶点顺序,因此请不要在导出过程中使用任何类型的自动优化。在这种情况下,您只能使用 Wavefront 和 Alembic 格式,因为 Blender 使用其他格式修改几何体,目前无法阻止它。

使用 Wavefront (.obj)和 Collada (.dae)格式,您可以将纹理与模型一起导出。如果您选择 Wavefront 格式,纹理文件(.mtl 和 .png)将保存在模型文件旁边,而 Collada 文件将嵌入模型中的所有内容。

要导出具有所有混合形状和动画的几何体,请使用面板Export as FBX上的按钮Blendshapes。导出窗口中的所有设置都已配置为导入到 Unreal Engine 或 Unity 游戏引擎中。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。