跳到主要内容

如何使用该插件

本指南将引导您完成为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下载Standard Lip Sync Extension插件
  2. 将下载的压缩包中的文件夹解压到项目的Plugins文件夹中(如果该文件夹不存在,请创建)
  3. 确保您的项目设置为C++项目(即使您没有任何C++代码)
  4. 重新构建项目
备注
  • 此扩展仅在您想使用标准模型时需要。如果只需要真实模型,可以跳过此步骤。
  • 有关如何手动构建插件的更多信息,请参阅构建插件教程

其他插件

平台特定配置

Android / Meta Quest 配置

如果您的目标平台是 Android 或 Meta Quest,并且在构建此插件时遇到错误,您需要在项目设置中禁用 x86_64 (x64) Android 架构:

  1. 转到 编辑 > 项目设置
  2. 导航至 平台 > Android
  3. 平台 - Android 下的 构建 部分,找到 支持 x86_64 [即 x64] 并确保其已禁用,如下图所示

禁用 x64 Android 架构

这是因为该插件目前仅支持 Android / Meta Quest 平台的 arm64-v8a 和 armeabi-v7a 架构。

设置流程

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

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

Content/MetaHumans/Common/Face/Face_AnimBP

面部动画蓝图

您有以下几种实现唇形同步功能的选择:

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

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

重要提示: Runtime MetaHuman Lip Sync混合可以在任何动画蓝图资产中实现,只要该资产能够访问包含默认MetaHuman的Face_Archetype_Skeleton中面部骨骼的姿态。您不限于上述选项——这些只是常见的实现方法。

步骤2:事件图表设置

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

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

创建Runtime Viseme生成器

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

您需要根据音频源类型配置相应的处理方法。

此方案实现对着麦克风说话时的实时唇形同步:

  1. 使用运行时音频导入器创建可捕获音波
  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引脚

混合运行时MetaHuman唇形同步

当检测到音频中的唇形同步时,角色将动态生成相应动画:

唇形同步效果

笑声动画

您还可以添加能动态响应音频中检测到的笑声的动画:

  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. 进行连接:
    • 现有动画(如 BodyPose)→ Base Pose 输入
    • 面部动画输出(来自唇形同步和/或笑声节点)→ Blend Poses 0 输入
    • 分层混合节点 → 最终的 Result 姿势

Layered Blend Per Bone

原理说明: 分支过滤器隔离了面部动画骨骼,使唇形同步和笑声仅与面部动作混合,同时保留原始身体动画。这符合 MetaHuman 面部骨骼结构,确保自然融合。

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

配置

唇形同步配置

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

属性默认值描述
插值速度25控制嘴型在音素之间转换的快慢。数值越高,转换越迅速且突兀。
重置时间0.2唇形同步重置前的持续时间(秒)。用于在音频停止后防止唇形同步继续运作。

笑声配置

Blend Runtime MetaHuman Laughter 节点有独立的配置选项:

属性默认值描述
插值速度25控制嘴型在笑声动画之间转换的快慢。数值越高,转换越迅速且突兀。
重置时间0.2笑声重置前的持续时间(秒)。用于在音频停止后防止笑声动画继续运作。
最大笑声权重0.7缩放笑声动画的最大强度(0.0 - 1.0)。

选择唇形同步模型

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

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

引擎版本兼容性

UE 5.2 兼容性问题

如果您使用 Unreal Engine 5.2,真实模型可能因UE重采样库的bug而无法正常工作。UE 5.2用户如需可靠的唇形同步功能,请改用标准模型

此问题仅影响UE 5.2版本,其他引擎版本不受影响。

对于大多数项目而言,Standard Model(标准模型)在质量与性能之间提供了绝佳的平衡,同时支持最广泛的角色类型。当您需要为MetaHuman角色实现最高视觉保真度,且性能开销并非首要考虑因素时,Realistic Model(真实模型)是最理想的选择。