跳到主要内容

插件配置

模型配置

为每次播放重新创建 realistic-model 生成器

为确保 Realistic 和 Mood-Enabled Realistic 模型的可靠运行,请在每次新的音频播放前重新创建生成器,而不是在长时间静默中重复使用同一个生成器。详见故障排除中的生成器重新创建

标准模型配置

Create Runtime Viseme Generator 节点使用适用于大多数场景的默认设置。配置通过 Animation Blueprint 混合节点属性进行处理。

有关 Animation Blueprint 配置选项,请参见下文中的口型同步配置部分。

Realistic 模型配置

Create Realistic MetaHuman Lip Sync Generator 节点接受一个可选的 Configuration 参数,允许您自定义生成器的行为:

模型类型

Model Type 设置决定使用哪个版本的 realistic 模型:

模型类型性能视觉质量噪声处理推荐使用场景
Highly Optimized(默认)最高性能,最低 CPU 使用率良好质量在背景噪声或非语音声音下可能显示明显的嘴部运动干净音频环境、性能关键场景
Semi-Optimized良好性能,中等 CPU 使用率高质量对嘈杂音频有更好的稳定性平衡性能与质量、混合音频条件
Original适用于现代 CPU 的实时使用最高质量在背景噪声和非语音声音下最稳定高质量制作、嘈杂音频环境、需要最大精度时

性能设置

Intra Op Threads: 控制用于内部模型处理操作的线程数。

  • 0(默认/自动):使用自动检测(通常为可用 CPU 核心数的 1/4,最大 4)
  • 1-16:手动指定线程数。较高的值可能提高多核系统上的性能,但会使用更多 CPU

Inter Op Threads: 控制用于并行执行不同模型操作的线程数。

  • 0(默认/自动):使用自动检测(通常为可用 CPU 核心数的 1/8,最大 2)
  • 1-8:手动指定线程数。通常保持较低值以进行实时处理

处理块大小

Processing Chunk Size 决定每个推理步骤中处理的样本数。默认值为 160 个样本(16kHz 下的 10ms 音频):

  • 较小的值提供更频繁的更新,但会增加 CPU 使用率
  • 较大的值减少 CPU 负载,但可能降低口型同步响应速度
  • 建议使用 160 的倍数以获得最佳对齐

设置处理块大小

Mood-Enabled 模型配置

Create Realistic MetaHuman Lip Sync With Mood Generator 节点提供了超出基本 realistic 模型的额外配置选项:

基本配置

Lookahead Ms: 用于提高口型同步精度的前瞻时间(毫秒)。

  • 默认值:80ms
  • 范围:20ms 至 200ms(必须能被 20 整除)
  • 较高的值提供更好的同步,但会增加延迟

Output Type: 控制生成哪些面部控制。

  • Full Face:所有 81 个面部控制(眉毛、眼睛、鼻子、嘴巴、下巴、舌头)
  • Mouth Only:仅嘴巴、下巴和舌头相关的控制

性能设置: 使用与常规 realistic 模型相同的 Intra Op Threads 和 Inter Op Threads 设置。

情绪设置

可用情绪:

  • Neutral、Happy、Sad、Disgust、Anger、Surprise、Fear
  • Confident、Excited、Bored、Playful、Confused

Mood Intensity: 控制情绪对动画的影响程度(0.0 到 1.0)

运行时情绪控制

您可以在运行时使用以下函数调整情绪设置:

  • Set Mood:更改当前情绪类型
  • Set Mood Intensity:调整情绪对动画的影响程度(0.0 到 1.0)
  • Set Lookahead Ms:修改用于同步的前瞻时间
  • Set Output Type:在 Full Face 和 Mouth Only 控制之间切换

情绪配置

情绪选择指南

根据您的内容选择合适的情绪:

情绪最适合典型强度范围
Neutral一般对话、旁白、默认状态0.5 - 1.0
Happy积极内容、欢快对话、庆祝活动0.6 - 1.0
Sad忧郁内容、情感场景、庄重时刻0.5 - 0.9
Disgust负面反应、令人反感的内容、拒绝0.4 - 0.8
Anger攻击性对话、对抗场景、挫败感0.6 - 1.0
Surprise意外事件、揭露、震惊反应0.7 - 1.0
Fear威胁性情境、焦虑、紧张对话0.5 - 0.9
Confident专业演示、领导力对话、自信演讲0.7 - 1.0
Excited充满活力的内容、公告、热情对话0.8 - 1.0
Bored单调内容、不感兴趣的对话、疲惫的讲话0.3 - 0.7
Playful休闲对话、幽默、轻松互动0.6 - 0.9
Confused多疑问的对话、不确定性、困惑0.4 - 0.8

Animation Blueprint 配置

口型同步配置

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

属性默认值描述
Interpolation Speed25控制口部运动在 viseme 之间过渡的速度。较高的值会导致更快、更突然的过渡。
Reset Time0.2口型同步重置后的持续时间(秒)。这有助于防止音频停止后口型同步继续。

笑声动画

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

  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

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

笑声配置

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

属性默认值描述
插值速度25控制唇部动作在笑声动画之间过渡的速度。值越高,过渡越快、越突然。
重置时间0.2笑声重置前的持续时间(秒)。这有助于防止音频停止后笑声继续。
最大笑声权重0.7缩放笑声动画的最大强度(0.0 - 1.0)。

注意: 笑声检测目前仅适用于标准模型。

与现有动画结合

要将唇形同步和笑声与现有身体动画和自定义面部动画一起应用而不覆盖它们:

  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

形态目标集选择

标准模型使用姿势资源,这些资源通过自定义姿势资源设置固有地支持任何形态目标命名约定。无需额外配置。

微调唇形同步行为

缩放特定唇形同步曲线

您可以使用 Modify Curve 节点来抑制(或放大)唇形同步产生的单个面部动作。当某个特定曲线对于您的音频内容或角色来说看起来过于夸张时,这很有用。

设置:

  1. 在您的唇形同步混合节点之后,添加一个 Modify Curve 节点
  2. 右键单击该节点并选择 Add Curve Pin,然后输入要缩放的曲线名称
  3. 将节点的 Apply Mode 属性设置为 Scale
  4. 设置 Value 参数:低于 1.0 的值会抑制动作,高于 1.0 的值会放大动作(例如,0.8 = 减少 20%)

常用缩放曲线:

曲线名称用途适用于典型调整
CTRL_expressions_tongueOut某些音素期间舌头向前伸出标准模型0.8 以减少伸出
CTRL_expressions_jawOpen下巴张开范围写实模型0.9 以减少下巴运动

您可以向同一个 Modify Curve 节点添加多个曲线引脚,以同时缩放多个曲线。

情绪特定微调

对于启用情绪的模型,您可以微调特定的情感表达:

眉毛控制:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - 内侧眉毛抬起
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - 外侧眉毛抬起
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - 眉毛压低

眼部表情控制:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - 眯眼
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - 脸颊抬起

模型比较与选择

在模型之间选择

在决定为您的项目使用哪个唇形同步模型时,请考虑以下因素:

考虑因素标准模型写实模型启用情绪的写实模型
角色兼容性MetaHuman 和所有自定义角色类型MetaHuman(和 ARKit)角色MetaHuman(和 ARKit)角色
视觉质量良好的唇形同步,性能高效增强的真实感,更自然的嘴部动作增强的真实感,带有情感表达
性能针对所有平台(包括移动/VR)优化更高的资源需求更高的资源需求
功能14 个视位,笑声检测81 个面部控制,3 个优化级别81 个面部控制,12 种情绪,可配置输出
平台支持Windows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
用例通用应用、游戏、VR/AR、移动端电影级体验、特写交互情感叙事、高级角色交互

引擎版本兼容性

UE 5.2 兼容性问题

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

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

性能建议

  • 对于大多数项目,标准模型 在质量和性能之间提供了出色的平衡
  • 当您需要 MetaHuman 角色最高的视觉保真度时,请使用 写实模型
  • 当情绪表达控制对您的应用很重要时,请使用 启用情绪的写实模型
  • 在模型之间选择时,请考虑目标平台的性能能力
  • 测试不同的优化级别,为您的特定用例找到最佳平衡

故障排除

常见问题

为写实模型重新创建生成器: 为了与写实模型实现可靠且一致的操作,建议在非活动期后每次要输入新音频数据时重新创建生成器。这是由于 ONNX 运行时行为,在静默期后重用生成器可能导致唇形同步停止工作。

例如,您可以在每次播放开始时重新创建唇形同步生成器,例如每当您调用 Play Sound 2D 或使用任何其他方法开始声波播放和唇形同步时:

Recreate Lip Sync Generator On Play Sound

运行时文本转语音集成的插件位置: 当将 Runtime MetaHuman Lip Sync 与 Runtime Text To Speech 一起使用时(两个插件都使用 ONNX Runtime),如果插件安装在引擎的 Marketplace 文件夹中,您可能会在打包构建中遇到问题。要解决此问题:

  1. 在您的 UE 安装文件夹下的 \Engine\Plugins\Marketplace 中找到这两个插件(例如 C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace
  2. RuntimeMetaHumanLipSyncRuntimeTextToSpeech 文件夹都移动到您项目的 Plugins 文件夹中
  3. 如果您的项目没有 Plugins 文件夹,请在您的 .uproject 文件所在目录中创建一个
  4. 重新启动 Unreal Editor

这解决了从引擎的 Marketplace 目录加载多个基于 ONNX Runtime 的插件时可能出现的兼容性问题。

打包配置 (Windows): 如果唇形同步在您打包的 Windows 项目中无法正常工作,请确保您使用的是 Shipping 构建配置而不是 Development。Development 配置可能会导致打包构建中的写实模型 ONNX 运行时出现问题。

要解决此问题:

  1. 在您的项目设置 → 打包中,将构建配置设置为 Shipping
  2. 重新打包您的项目

Shipping Configuration

仅蓝图项目

在某些仅蓝图项目中,即使选择了 Shipping,Unreal Engine 仍可能以 Development 配置构建。如果发生这种情况,请通过添加至少一个 C++ 类(可以为空)将您的项目转换为 C++ 项目。为此,请转到 UE 编辑器菜单中的 Tools → New C++ Class 并创建一个空类。这将强制项目以 Shipping 配置正确构建。您的项目在功能上可以保持仅蓝图,C++ 类仅用于正确的构建配置。

唇形同步响应能力下降: 如果您在使用 Streaming Sound Wave 或 Capturable Sound Wave 时发现唇形同步随着时间的推移响应能力下降,这可能是由内存累积引起的。默认情况下,每次附加新音频时都会重新分配内存。为防止此问题,请定期调用 ReleaseMemory 函数以释放累积的内存,例如每 30 秒左右。

性能优化:

  • 根据您的性能要求调整写实模型的 Processing Chunk Size
  • 为目标硬件使用适当的线程数
  • 当不需要完整面部动画时,考虑对启用情绪的模型使用 Mouth Only 输出类型