跳到主要内容

如何使用该插件

本指南将引导您完成为您的 MetaHuman 角色设置 Runtime MetaHuman Lip Sync 的过程。

注意: Runtime MetaHuman Lip Sync 可与 MetaHuman自定义角色 一起使用。该插件支持多种角色类型,包括:

  • 流行的商业角色(Daz Genesis 8/9Reallusion CC3/CC4MixamoReadyPlayerMe 等)
  • 具有 基于 FACS 的混合变形的角色
  • 使用 ARKit 混合变形标准的模型
  • 具有 Preston Blair 音素集的角色
  • 3ds Max 音素系统
  • 任何具有用于面部表情的自定义变形目标的角色

有关设置自定义角色的详细说明,包括上述所有标准的视位映射参考,请参阅 自定义角色设置指南

先决条件

在开始之前,请确保:

  1. MetaHuman 插件已在您的项目中启用(注意:从 UE 5.6 开始,此步骤不再需要,因为 MetaHuman 功能已直接集成到引擎中)
  2. 您至少有一个 MetaHuman 角色已下载并可在您的项目中使用
  3. Runtime MetaHuman Lip Sync 插件已安装

标准模型扩展插件

如果您计划使用 标准(更快)模型,您需要安装扩展插件:

  1. Google Drive 下载 标准唇形同步扩展插件
  2. 将下载的压缩包中的文件夹解压到您项目的 Plugins 文件夹中(如果该文件夹不存在,请创建它)
  3. 确保您的项目设置为 C++ 项目(即使您没有任何 C++ 代码)
  4. 重新构建您的项目
备注
  • 此扩展 仅在 您想要使用 标准模型 时才需要。如果您只需要 真实模型,可以跳过此步骤。
  • 有关如何手动构建插件的更多信息,请参阅 构建插件教程

附加插件

设置流程

步骤 1:定位并修改面部动画 Blueprint

您需要修改一个将用于 MetaHuman 角色面部动画的 Animation Blueprint。默认的 MetaHuman 面部 Animation Blueprint 位于:

Content/MetaHumans/Common/Face/Face_AnimBP

面部动画蓝图

你有多种选项来实现唇形同步功能:

直接打开默认的 Face_AnimBP 并进行修改。任何更改都会影响所有使用此动画蓝图的 MetaHuman 角色。

注意: 这种方法很方便,但会影响所有使用默认动画蓝图的角色。

重要: Runtime MetaHuman Lip Sync 混合可以在任何能够访问包含默认 MetaHuman Face_Archetype_Skeleton 中存在的面部骨骼的姿势的 Animation Blueprint 资源中实现。您不限于上述选项——这些只是常见的实现方法。

步骤 2:事件图表设置

打开您的面部 Animation Blueprint 并切换到 Event Graph。您需要创建一个生成器来处理音频数据并生成唇形同步动画。

  1. 如果尚不存在,请添加 Event Blueprint Begin Play 节点
  2. 添加 Create Runtime Viseme Generator 节点并将其连接到 Begin Play 事件
  3. 将输出保存为变量(例如 "VisemeGenerator")以供图表其他部分使用

创建 Runtime Viseme Generator

步骤 3:设置音频输入处理

您需要设置一种处理音频输入的方法。根据您的音频源,有几种方法可以实现这一点。

此方法在对着麦克风说话时实时执行唇形同步:

  1. 使用 Runtime Audio Importer 创建一个 Capturable Sound Wave
  2. 在开始捕获音频之前,绑定到 OnPopulateAudioData 委托
  3. 在绑定的函数中,从您的 Runtime Viseme Generator 调用 ProcessAudioData
  4. 开始从麦克风捕获音频

可复制的节点.

音频捕获期间的唇形同步

步骤 4:动画图表设置

设置事件图表后,切换到 Anim Graph 以将生成器连接到角色的动画:

唇形同步

  1. 找到包含 MetaHuman 面部的姿势(通常来自 Use cached pose 'Body Pose'
  2. 添加 Blend Runtime MetaHuman Lip Sync 节点
  3. 将姿势连接到 Blend Runtime MetaHuman Lip Sync 节点的 Source Pose
  4. 将你的 RuntimeVisemeGenerator 变量连接到 Viseme Generator 引脚
  5. Blend Runtime MetaHuman Lip Sync 节点的输出连接到 Output PoseResult 引脚

Blend Runtime MetaHuman Lip Sync

当在音频中检测到唇形同步时,你的角色将相应地动态动画化:

Lip Sync

笑声动画

你还可以添加笑声动画,这些动画将动态响应在音频中检测到的笑声:

  1. 添加 Blend Runtime MetaHuman Laughter 节点
  2. 将你的 RuntimeVisemeGenerator 变量连接到 Viseme Generator 引脚
  3. 如果你已经在使用唇形同步:
    • Blend Runtime MetaHuman Lip Sync 节点的输出连接到 Blend Runtime MetaHuman Laughter 节点的 Source Pose
    • Blend Runtime MetaHuman Laughter 节点的输出连接到 Output PoseResult 引脚
  4. 如果仅使用笑声而不使用唇形同步:
    • 将你的源姿势直接连接到 Blend Runtime MetaHuman Laughter 节点的 Source Pose
    • 将输出连接到 Result 引脚

Blend Runtime MetaHuman Laughter

当在音频中检测到笑声时,你的角色将相应地动态动画化:

Laughter

与面部和身体动画结合

要在不覆盖现有身体动画和自定义面部动画(如表情、情绪或其他面部动作)的情况下应用唇形同步和笑声:

  1. 在身体动画和最终输出之间添加一个 Layered blend per bone 节点。确保 Use Attached Parent 为 true。
  2. 配置层级设置:
    • Layer Setup 数组中添加 1 项
    • 为该层级的 Branch Filters 添加 3 项,使用以下 Bone Name
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. 对于自定义面部动画很重要:Curve Blend Option 中,选择 "Use Max Value"。这允许自定义面部动画(表情、情绪等)正确叠加在唇形同步之上。
  4. 进行连接:
    • 现有动画(如 BodyPose)→ Base Pose 输入
    • 面部动画输出(来自唇形同步和/或笑声节点)→ Blend Poses 0 输入
    • 分层混合节点 → 最终的 Result 姿势

Layered Blend Per Bone

为什么这样有效: 分支过滤器隔离了面部动画骨骼,允许唇形同步和笑声仅与面部动作混合,同时保留原始身体动画。"Use Max Value" 曲线混合选项会取每条曲线的最大值,而不是将它们相加混合,这使得自定义面部动画(如表情和情绪)能够与唇形同步正确结合而不产生冲突。这与 MetaHuman 面部骨骼结构相匹配,实现自然集成。

注意: 唇形同步和笑声功能设计为非破坏性地与您现有的动画设置协同工作。它们仅影响嘴部动作所需的特定面部骨骼,保持其他面部动画不变。这意味着您可以安全地在动画链的任何阶段集成它们——可以在其他面部动画之前(允许这些动画覆盖唇形同步/笑声)或之后(让唇形同步/笑声叠加在您现有的动画之上)。这种灵活性使您能够将唇形同步和笑声与眨眼、眉毛动作、情绪表情和其他面部动画结合使用,而不会产生冲突。

微调唇形同步行为

设置基本唇形同步功能后,您可能需要微调嘴部动作的特定方面,以更好地满足项目需求。

舌头伸出控制

在标准唇形同步模型中,您可能会注意到在某些音素期间舌头过度向前移动。要控制舌头伸出:

  1. Blend Runtime MetaHuman Lip SyncBlend Realistic MetaHuman Lip Sync 节点之后,添加一个 Modify Curve 节点
  2. 右键点击 Modify Curve 节点并选择 添加曲线引脚 (Add Curve Pin)
  3. 添加一个名为 CTRL_expressions_tongueOut 的曲线引脚
  4. 将节点的 应用模式 (Apply Mode) 属性设置为 缩放 (Scale)
  5. 调整 值 (Value) 参数以控制舌头伸出程度(例如,设为 0.8 可将伸出程度减少 20%)

下颌张开控制

根据您的音频内容和视觉需求,逼真口型同步可能会产生过于敏感的下颌运动。要调整下颌张开强度:

  1. 在口型同步混合节点之后,添加一个 Modify Curve 节点
  2. 右键点击 Modify Curve 节点并选择 添加曲线引脚 (Add Curve Pin)
  3. 添加一个名为 CTRL_expressions_jawOpen 的曲线引脚
  4. 将节点的 应用模式 (Apply Mode) 属性设置为 缩放 (Scale)
  5. 调整 值 (Value) 参数以控制下颌张开范围(例如,设为 0.9 可将下颌运动减少 10%)

配置

口型同步配置

Blend Runtime MetaHuman Lip Sync 节点在其属性面板中有配置选项:

属性默认值描述
插值速度 (Interpolation Speed)25控制口型在音素之间转换的速度。值越高,转换越快越突然。
重置时间 (Reset Time)0.2口型同步重置前的持续时间(秒)。这有助于防止音频停止后口型同步继续运行。

笑声配置

Blend Runtime MetaHuman Laughter 节点有其自己的配置选项:

属性默认值描述
插值速度 (Interpolation Speed)25控制口型在笑声动画之间转换的速度。值越高,转换越快越突然。
重置时间 (Reset Time)0.2笑声重置前的持续时间(秒)。这有助于防止音频停止后笑声继续运行。
最大笑声权重 (Max Laughter Weight)0.7缩放笑声动画的最大强度(0.0 - 1.0)。

选择口型同步模型

在为您的项目选择唇形同步模型时,请考虑以下因素:

考量因素标准模型写实模型
角色兼容性MetaHumans 及所有自定义角色类型仅限 MetaHumans
视觉质量良好的唇形同步效果与高效性能增强的真实感,嘴部动作更自然
性能针对包括移动端/VR在内的所有平台优化资源需求略高
使用场景通用应用、游戏、VR/AR、移动端影视级体验、特写角色互动

引擎版本兼容性

UE 5.2 兼容性问题

如果您正在使用 Unreal Engine 5.2,由于 UE 重采样库中的一个错误,写实模型可能无法正常工作。对于需要可靠唇形同步功能的 UE 5.2 用户,请改用 标准模型

此问题特定于 UE 5.2,不影响其他引擎版本。

对于大多数项目,标准模型在支持最广泛角色类型的同时,提供了质量与性能的绝佳平衡。写实模型则适用于当您专门为 MetaHuman 角色在性能开销不那么关键的场景中追求最高视觉保真度时。