跳到主要内容

如何使用插件与自定义角色配合

本指南将引导您为非MetaHuman角色设置运行时MetaHuman唇形同步。此过程需要熟悉动画概念和绑定技术。如果您需要针对特定角色实施此功能方面的帮助,可联系[email protected]获取专业支持。

关于口型同步模型的重要说明

自定义角色兼容性

仅标准(快速)模型支持自定义角色。

真实感(更高品质)模型专为MetaHumanARKit角色设计,无法与其他自定义角色配合使用。在本指南中,当引用主设置指南时,请遵循标准模型的说明。

需要安装扩展插件: 若要将标准模型用于自定义角色,必须按照主设置指南的前提条件章节所述安装标准口型同步扩展插件

本指南中描述的所有自定义角色实现必须使用此扩展。

前提条件

在开始之前,请确保您的角色满足以下要求:

  • 具有有效的骨骼
  • 包含用于面部表情的形态目标(混合形状)
  • 理想情况下应具备10个以上定义视位(viseme)的形态目标(视位越多,唇形同步质量越高)

该插件需要将您角色的形态目标映射到以下标准视位:

Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)

注意: 如果你的角色使用不同的视位集合(这很常见),无需为每个视位找到精确匹配。近似映射通常就足够了——例如,将角色的 SH 视位映射到插件的 CH 视位就能有效工作,因为它们是密切相关的齿龈后音。

口型映射参考

以下是常见视位系统与插件所需视位之间的映射关系:

ARKit 提供了一套全面的面部动画混合变形,包含多种嘴部形态。以下是将其映射到 RuntimeMetaHumanLipSync 视位的方法:

Runtime MetaHuman Lip Sync视位ARKit 等效方案备注
SilmouthClose中性/静止位置
PPmouthPressLeft + mouthPressRight对于双唇音,请同时使用两种按压形状。
FFlowerLipBiteLeft + lowerLipBiteRight(或 mouthRollLower)下唇接触上齿,如发"f"和"v"音时。
THtongueOutARKit 具有直接的舌头控制功能。
DDjawOpen (mild) + tongueUp (if you have tongue rig)舌尖轻触齿龈,下颌微张。
KKmouthLeft or mouthRight (mild)嘴角微拉近似软腭音
CHjawOpen (mild) + mouthFunnel (mild)结合用于齿龈后音
SSmouthFrown对齿擦音使用轻微的皱眉动作
NNjawOpen (very mild) + mouthClose嘴巴几乎闭合,下颌微微张开
RRmouthPucker (mild)r音时的微妙圆唇效果
AAjawOpen + mouthStretchLeft + mouthStretchRight(或 jawOpen + mouthOpen)为“啊”音张大嘴巴
EjawOpen (mild) + mouthSmile微张嘴并带轻微微笑
IHmouthSmile (mild)嘴唇轻微张开
OHmouthFunnel圆形开放形状
OUmouthPucker紧密收圆的双唇

创建自定义姿态资源

按照以下步骤为您的角色创建一个自定义姿态资源,该资源将用于Blend Runtime MetaHuman Lip Sync节点:

1. 找到角色对应的骨骼网格体

找到包含您想要用于唇形同步动画的形态目标(混合变形)的骨骼网格体。根据角色的设计,这可能是全身网格体或仅面部网格体。

2. 验证形态目标与曲线

在继续之前,请确认您的骨骼网格体已具备适当的形态目标及对应的唇形同步动画曲线。

检查形态目标: 确认您的骨骼网格体包含可用于口型同步动画的形态目标(混合变形)。大多数支持面部动画的角色都应具备一些音素/口型形态目标。

Example of morph targets in a character

重要提示:验证曲线选项卡 对于从 Blender 或其他外部软件导出的角色,此步骤尤为关键:

  1. 在骨骼网格体编辑器中打开 曲线 选项卡
  2. 检查是否能看到与你的形态目标对应的曲线
  3. 如果曲线选项卡为空,但形态目标存在,请使用与形态目标完全相同的名称手动添加新曲线

注意: 此问题常见于Blender导出场景,其中形态目标导入成功,但动画曲线未自动生成。若缺少匹配的曲线,烘焙至控制绑定后动画将无法正确填充。

替代方案: 为避免在从 Blender 导出时出现此问题,请尝试在 FBX 导出设置中启用自定义属性动画,这有助于将动画曲线与形态目标一同包含在内。

3. 创建参考姿势动画

  1. 前往 创建资源 -> 创建动画 -> 参考姿势
  2. 为动画序列输入一个描述性名称,并将其保存在合适的位置
  3. 创建的动画序列将自动打开,显示一个循环播放的空动画

Creating a reference pose asset Naming the reference pose asset

  1. 点击 Pause 按钮停止动画播放,以便于编辑。

Pausing animation playback

4. 编辑动画序列

  1. 点击 在序列器中编辑 -> 使用FK控制绑定编辑
  2. 烘焙到控制绑定 对话框中,保持所有设置不变,直接点击 烘焙到控制绑定 按钮。

Editing with FK Control Rig Baking to Control Rig

  1. 编辑器将切换到动画模式,并打开序列器选项卡
  2. 视图范围结束时间设置为0016(这将自动将工作范围结束也设置为0016)
  3. 将滑块的右边缘拖拽到序列器窗口的最右端

5. 准备动画曲线

  1. 返回动画序列资源,在曲线列表中定位形态目标(如果不可见,请关闭并重新打开动画序列资源)
  2. 移除所有与您想要用于口型同步的视位或嘴部动作无关的形态目标

6. 规划您的视位映射

创建映射方案,将角色的视位与插件所需的集合进行匹配。例如:

Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U

请注意,当角色的视位集没有与每个所需视位完全匹配时,存在重复映射是可以接受的。

7. 为每个视位添加动画

  1. 针对每个视位,将相关的形态目标曲线从 0.0 动画过渡到 1.0
  2. 在不同帧上开始每个视位的动画
  3. 根据需要配置额外的曲线(如下颌/嘴巴张开、舌头位置等),以创建自然的视位形状

8. 创建姿态资产

  1. 转到创建资源 -> 姿态资源 -> 当前动画
  2. 为姿态资源输入一个描述性名称,并保存在合适的位置
  3. 创建好的姿态资源会自动打开,显示诸如Pose_0Pose_1等姿态,每个姿态对应一个视位
  4. 预览视位权重,确保其按预期工作

Creating a pose asset Naming the pose asset Pose asset with visemes

9. 最终确定姿态资产

  1. 将每个姿势重命名为与前提条件部分中的视位名称一致
  2. 删除所有未使用的姿势

配置音频处理与混合

一旦您的姿态资源准备就绪,就需要设置音频处理和混合节点:

  1. 找到或创建角色的动画蓝图
  2. 按照标准插件设置指南中记录的相同步骤,设置音频处理和混合
  3. 混合运行时MetaHuman唇形同步节点中,选择自定义的姿态资源,而非默认的MetaHuman姿态资源

Selecting the custom pose asset

结合身体动画

如果你希望在进行其他身体动画的同时实现口型同步:

  1. 按照标准插件指南中记录的相同步骤操作
  2. 请确保为角色颈部骨骼提供正确的骨骼名称,而不是使用MetaHuman的骨骼名称

结果

以下是使用此设置的自定义角色示例:

Example 1: Lip sync with custom character

Example 2: Lip sync with different viseme system

Example 3: Lip sync with different viseme system

口型同步的质量在很大程度上取决于具体角色及其视位(visemes)的设置效果。上述示例展示了该插件在不同类型自定义角色(具有不同视位系统)上的运行效果。