跳到主要内容

插件配置

模型配置​

为每个播放重新创建真实模型生成器

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

标准模型配置​

Create Runtime Viseme Generator 节点使用默认设置,在大多数场景下都能良好运行。配置通过 Animation Blueprint 混合节点属性进行处理。

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

逼真模型配置​

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

模型类型​

模型类型设置决定使用哪个版本的真实感模型:

模型类型性能视觉质量噪声处理推荐使用场景
高度优化(默认)性能最高,CPU 占用最低质量良好在背景噪声或非人声声音下可能出现明显的嘴部动作干净的音频环境,性能关键型场景
半优化性能良好,CPU 占用适中高质量在嘈杂音频下稳定性更好性能与质量均衡,混合音频条件
原始适合在现代 CPU 上实时使用质量最高在背景噪声和非人声声音下最稳定高质量制作,嘈杂音频环境,需要最高准确度时

性能设置​

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

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

互操作线程: 控制用于并行执行不同模型操作的线程数量。

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

处理块大小​

处理块大小决定了每个推理步骤中处理的样本数量。默认值为 160 个样本(16kHz 下 10ms 的音频):

  • 较小的值会提供更频繁的更新,但会增加 CPU 占用
  • 较大的值会降低 CPU 负载,但可能会降低 Lip Sync 的响应速度
  • 建议使用 160 的倍数以获得最佳对齐效果

Setting Processing Chunk Size

启用情绪功能的模型配置​

Create Realistic MetaHuman Lip Sync With Mood Generator 节点在基础真实感模型之外提供了额外的配置选项:

基本配置​

前瞻毫秒数: 以毫秒为单位的前瞻时序,用于提高唇形同步的准确性。

  • 默认值:80ms
  • 范围:20ms 至 200ms(必须能被 20 整除)
  • 数值越高,同步效果越好,但会增加延迟

输出类型: 控制生成哪些面部控制项。

  • 全脸:全部 81 个面部控制(眉毛、眼睛、鼻子、嘴巴、下颌、舌头)
  • 仅嘴部:仅与嘴巴、下颌和舌头相关的控制

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

情绪设置​

可用情绪:

  • 中性、快乐、悲伤、厌恶、愤怒、惊讶、恐惧
  • 自信、兴奋、无聊、俏皮、困惑

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

运行时情绪控制​

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

  • 设置情绪:更改当前情绪类型
  • 设置情绪强度:调整情绪对动画的影响强度(0.0 到 1.0)
  • 设置前瞻毫秒数:修改用于同步的前瞻时序
  • 设置输出类型:在 Full Face 和 Mouth Only 控制之间切换

Mood Configuration

情绪选择指南​

根据你的内容选择合适的心情:

Mood最适合用于典型强度范围
中性一般对话、旁白、默认状态0.5 - 1.0
高兴积极内容、欢快的对话、庆祝场合0.6 - 1.0
悲伤忧郁内容、情感场景、低沉时刻0.5 - 0.9
厌恶负面反应、令人反感的内容、排斥0.4 - 0.8
愤怒激烈的对话、对抗性场景、挫败感0.6 - 1.0
惊讶意外事件、真相揭露、震惊反应0.7 - 1.0
恐惧威胁性情境、焦虑、紧张的对话0.5 - 0.9
自信专业演示、领导力对话、果断的言辞0.7 - 1.0
兴奋充满活力的内容、公告、热情的对话0.8 - 1.0
无聊单调的内容、缺乏兴趣的对话、疲惫的言语0.3 - 0.7
俏皮随意的对话、幽默、轻松的互动0.6 - 0.9
困惑充满疑问的对话、不确定、迷茫0.4 - 0.8

动画蓝图配置​

口型同步配置​

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

属性默认值描述
插值速度25控制口型动作在视位之间过渡的速度。数值越高,过渡越快、越突兀。
重置时间0.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 Pose 的 Result 引脚
  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)。

注意: 笑声检测目前仅在标准模型中可用。

与现有动画结合​

视频演示

更喜欢看视频而不是阅读?查看视频教程,其中涵盖了这一确切设置。

要在不覆盖现有身体动画和自定义面部动画的情况下,同时应用唇形同步和笑声:

身体动画

此设置适用于面部 Animation Blueprint,因为口型同步不属于身体 Animation Blueprint 的一部分。对于自定义身体动画(例如躯干、手臂和其他身体动作),只需将你的动画序列(通过 Sequence Player)直接连接到身体 Animation Blueprint 中的输出姿势即可。那里不需要额外设置。

  1. 在身体动画和最终输出之间添加一个 Layered blend per bone 节点。
  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. 进行连接:
    • 你的自定义动画(通常是带有目标动画序列资源的 Sequence Player)→ Base Pose 输入
    • 面部动画输出(来自口型同步和/或笑声节点)→ Blend Poses 0 输入
    • 分层混合节点 → 最终 Result 姿势

Layered Blend Per Bone

变形目标集选择​

标准模型使用姿势资产,通过自定义姿势资产设置天然支持任何变形目标命名约定。无需额外配置。

微调唇形同步行为​

缩放特定唇形同步曲线​

你可以使用 Modify Curve 节点来减弱(或增强)由口型同步产生的单个面部动作。当某个特定曲线对你的音频内容或角色来说显得过于明显时,这非常有用。

设置:

  1. 在你的 Lip Sync 混合节点之后,添加一个 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 重采样库中的一个 bug,Realistic Models 可能无法正常工作。对于需要可靠 Lip Sync 功能的 UE 5.2 用户,请改用 Standard Model。

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

性能建议​

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

故障排除​

常见问题​

为真实模型重新创建生成器: 为了确保与真实模型可靠且一致地运行,建议在闲置一段时间后每次想要输入新的音频数据时重新创建生成器。这是由于 ONNX 运行时的行为,在静音一段时间后重用生成器可能会导致唇形同步停止工作。

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

Recreate Lip Sync Generator On Play Sound

Runtime Text To Speech 集成插件的安装位置: 当将 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. 将 RuntimeMetaHumanLipSync 和 RuntimeTextToSpeech 这两个文件夹都移动到你的项目的 Plugins 文件夹中
  3. 如果你的项目没有 Plugins 文件夹,请在与你的 .uproject 文件相同的目录中创建一个
  4. 重启 Unreal Editor

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

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

要解决这个问题:

  1. 在 Project Settings → Packaging 中,将 Build Configuration 设置为 Shipping
  2. 重新打包你的项目

Shipping Configuration

仅蓝图项目

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

唇同步响应性下降: 如果你在使用 Streaming Sound Wave 或 Capturable Sound Wave 时遇到唇同步随时间变得不那么响应的问题,这可能是由内存累积引起的。默认情况下,每次追加新音频时都会重新分配内存。为避免此问题,请定期调用 ReleaseMemory 函数以释放累积的内存,例如每 30 秒左右调用一次。

性能优化:

  • 根据你的性能需求,为 Realistic 模型调整处理块大小
  • 为目标硬件使用合适的线程数
  • 当不需要完整面部动画时,对于启用情绪功能的模型,考虑使用仅嘴部输出类型