为增强面创建自定义纹理和 3D 模型

如需实现增强面,您需要自定义纹理和模型,以便在识别出的人脸网格上叠加。这些素材资源由艺术家在 3D 建模和动画软件中提前创建,并导出为 *.fbx 文件。

Sceneform SDK for Android 附带 canonical_face_mesh.fbx 文件和 canonical_face_mesh.psd 文件,可帮助音乐人创建将正确覆盖到 ARCore 检测到的人脸的资产。这些文件位于 assets 文件夹中。

使用 *.fbx 文件创建素材资源

*.fbx 文件包含人脸网格拓扑、UV 纹理坐标以及用于定义创建和附加素材资源支持的面部区域的装置。为了确保这些文件与 ARCore 兼容,应使用支持的设置保存 *.fbx 文件。然后,您可以将这些文件作为 *.sfb 文件导入项目中。

此文件包含不应在最终 *.fbx 中导出的参考 facemesh。ARCore 会在运行时生成和更新单独的人脸网格。

使用 *.psd 文件创建素材资源

.psd 人脸网格参考纹理用于查看音乐人在运行时如何打造与用户面部特征对应的纹理。它包括四个层:

  • 遮罩:显示眼睛、鼻孔和嘴巴在纹理中的位置。
  • 线条:显示用户面部特征如何在运行时与纹理对齐的准则。
  • UV:表示 468 点人脸纹理网格的三角测量。
  • 背景:中性灰色背景层,使其他三个组件在视觉上清晰可见。

如果您修改了 *.psd 文件,应在导出后立即看到所做的更改。

CocoaPods 资源格式与要求

对于从建模和动画软件导出的 *.fbx 文件,我们建议并支持以下设置。

  • 文件格式:CocoaPods 2016/2017 或更高版本

  • 轴转换:向上轴为 Y

  • 缩放比例:厘米

  • 必需的几何图形设置:

    • 平滑组
    • 平滑网格
    • 引用的资产内容
  • 建议的几何图形设置:

    • 切线和双法线
    • 三角铁
    • 神经元
  • 动画:已启用

  • 变形模型设置:

    • 变形模型
    • 皮肤

自定义规范面网格

如果使用 SDK 中包含的 assets/canonical_face_mesh.fbx 创建模型和纹理,则在导出 *.fbx 文件时还需要以下设置:

  • 确保所有自定义网格均已启用相关骨架或区域的皮肤。

  • 请使用以下层次结构:

    asset
    |__root
    |   |__NOSE_TIP
    |   |__FOREHEAD_RIGHT
    |   |__FOREHEAD_LEFT
    |__facemesh           <-- for reference
    |__                   <-- place additional custom 3D meshes here
  • 请勿导出随附的 facemesh 模型。此网格仅供参考。 ARCore 会在运行时创建一个单独的人脸网格。创建自定义人脸网格纹理时,以 facemesh 中的 UV 作为参考。

  • 将自定义网格作为 asset 节点的子节点。

  • 支持使用命名空间。

  • 该资源包含四个架构,由 root 和三个区域组成:NOSE_TIPFOREHEAD_RIGHTFOREHEAD_LEFT。请勿更改这些架构。