跳到主要内容

如何将插件用于自定义角色

本指南将引导您完成为非MetaHuman角色设置Runtime MetaHuman Lip Sync的过程。此过程需要您熟悉动画概念和角色绑定。如果您需要针对特定角色实现此功能的专业支持,可以联系 [email protected]

关于唇形同步模型的重要说明

自定义角色兼容性

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

逼真(更高质量)模型专为 MetaHumanARKit 角色设计,不能用于其他自定义角色。在本指南中,当引用主设置指南时,您应遵循标准模型的说明。

需要扩展插件: 要将标准模型用于自定义角色,您必须按照主设置指南 先决条件部分 中的描述安装标准唇形同步扩展插件

本指南中描述的所有自定义角色实现都需要此扩展。

先决条件

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

  • 拥有有效的骨架
  • 包含用于面部表情的变形目标(混合形状)
  • 理想情况下拥有 10 个以上定义视位素的变形目标(视位素越多,唇形同步质量越好)

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

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 视位素:

RuntimeMetaHumanLipSync 视位素ARKit 等效形状备注
SilmouthClose中性/休息位置
PPmouthPressLeft + mouthPressRight对于双唇音,同时使用两个按压形状
FFlowerLipBiteLeft + lowerLipBiteRight (或 mouthRollLower)下唇接触上齿,如 "f" 和 "v" 音
THtongueOutARKit 有直接的舌头控制
DDjawOpen (轻微) + tongueUp (如果你有舌头骨骼)舌头接触齿龈;轻微的下颌张开
KKmouthLeft 或 mouthRight (轻微)轻微的嘴角拉动以近似软腭音
CHjawOpen (轻微) + mouthFunnel (轻微)组合用于齿龈后音
SSmouthFrown使用轻微的皱眉表示咝音
NNjawOpen (非常轻微) + mouthClose几乎闭合的嘴,轻微张开下颌
RRmouthPucker (轻微)轻微的圆唇表示 r 音
AAjawOpen + mouthStretchLeft + mouthStretchRight (或 jawOpen + mouthOpen)大张的嘴表示 "ah" 音
EjawOpen (轻微) + mouthSmile中等张开位置,略带微笑
IHmouthSmile (轻微)嘴唇轻微展开
OHmouthFunnel圆唇张开形状
OUmouthPucker紧密圆唇

创建自定义姿势资产

按照以下步骤为你的角色创建一个自定义姿势资产,该资产将与 Blend Runtime MetaHuman Lip Sync 节点一起使用:

1. 定位角色的骨骼网格体

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

2. 验证变形目标和曲线

在继续之前,请检查你的骨骼网格体是否具有用于口型同步动画的适当变形目标和相应曲线。

检查变形目标: 验证你的骨骼网格体是否包含可用作口型同步动画视位素的变形目标(混合形状)。大多数支持面部动画的角色应该具有一些音素/视位素变形目标。

角色中变形目标的示例

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

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

注意: 此问题通常出现在 Blender 导出中,其中变形目标成功导入但动画曲线未自动创建。如果没有匹配的曲线,在烘焙到 Control Rig 后动画将无法正确填充。

替代解决方案: 为了防止在从 Blender 导出时出现此问题,请尝试在 FBX 导出设置中启用 自定义属性动画,这可能有助于在变形目标旁边包含动画曲线。

3. 创建参考姿势动画

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

创建参考姿势资产 命名参考姿势资产

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

暂停动画播放

4. 编辑动画序列

  1. 点击 在 Sequencer 中编辑 -> 使用 FK Control Rig 编辑
  2. 烘焙到 Control Rig 对话框中,点击 烘焙到 Control Rig 按钮,无需更改任何设置

使用 FK Control Rig 编辑 烘焙到 Control Rig

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

5. Prepare the Animation Curves

  1. 返回 Animation Sequence 资产,在 Curves 列表中定位变形目标(如果它们不可见,请关闭并重新打开 Animation Sequence 资产)
  2. 移除任何与您想用于口型同步的视位素或嘴部动作无关的变形目标

6. Plan your viseme mapping

创建一个映射计划,将您角色的口型与插件所需的集合进行匹配。例如:

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. Animate each viseme

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

8. Create a Pose Asset

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

创建姿势资产 命名姿势资产 包含视位的姿势资产

9. Finalize the Pose Asset

  1. 将每个姿势重命名为与先决条件部分中的视位名称相匹配
  2. 删除任何未使用的姿势

设置音频处理和混合

准备好姿势资产后,您需要设置音频处理和混合节点:

  1. 找到或创建您角色的动画蓝图
  2. 按照标准插件设置指南中记录的相同步骤设置音频处理和混合
  3. Blend Runtime MetaHuman Lip Sync 节点中,选择您的自定义姿势资产,而不是默认的 MetaHuman 姿势资产

选择自定义姿势资产

与身体动画结合

如果您希望在进行口型同步的同时播放其他身体动画:

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

结果

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

示例 1:自定义角色的口型同步

示例 2:使用不同视位系统的口型同步

示例 3:使用不同视位系统的口型同步

口型同步的质量很大程度上取决于特定角色及其视位设置的好坏。上面的示例展示了该插件与具有不同视位系统的各种自定义角色配合工作的情况。