跳到主要内容

插件配置

模型配置

为每种播放方式重新创建逼真的模型生成器。

为确保“写实”和“支持情绪写实”模型可靠运行,请在每次新的音频播放前重新创建生成器,而不要在长时间静默中重复使用同一个生成器。详见故障排除中的生成器重新创建

标准模型配置

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

有关动画蓝图配置选项,请参阅下方的口型同步配置部分。

真实模型配置

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

模型类型

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

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

性能设置

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

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

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

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

处理块大小

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

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

Setting Processing Chunk Size

情绪化模型配置

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

基本配置

前瞻毫秒数: 用于提高口型同步准确性的前瞻时间(毫秒)。

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

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

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

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

情绪设置

可用情绪:

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

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

运行时情绪控制

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

  • 设置情绪:更改当前情绪类型
  • 设置情绪强度:调整情绪对动画的影响程度(0.0 到 1.0)
  • 设置前瞻毫秒数:修改用于同步的前瞻时间
  • 设置输出类型:在“全脸”和“仅嘴部”控制之间切换

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 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. 自定义面部动画的重要提示:曲线混合选项 中,选择 “使用最大值”。这允许自定义面部动画(表情、情绪等)正确叠加在口型同步之上。
  4. 进行连接:
    • 您的自定义动画(通常是带有所需动画序列资源的Sequence Player)→ 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 以减少下颌运动

你可以在同一个修改曲线节点上添加多个曲线引脚,以便同时缩放多条曲线。

特定情绪微调

对于支持情绪控制的模型,您可以微调特定的情绪表达:

眉毛控制:

  • 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 个 viseme、笑声检测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 重采样库中的一个错误,Realistic Models 可能无法正常工作。对于需要可靠口型同步功能的 UE 5.2 用户,请改用 Standard Model

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

性能建议

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

故障排除

常见问题

为逼真模型重新创建生成器: 为了确保与逼真模型可靠且一致地运行,建议在每次长时间不活动后想要输入新的音频数据时,重新创建生成器。这是因为 ONNX 运行时行为可能导致在静默期后重用生成器时口型同步停止工作。

例如,你可以在每次播放开始时重新创建口型同步生成器,比如每当你调用“播放二维音效”或使用任何其他方法启动声波播放和口型同步时:

Recreate Lip Sync Generator On Play Sound

运行时文本转语音集成的插件位置: 当将运行时 MetaHuman 口型同步与运行时文本转语音(两个插件均使用 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编辑器

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

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

要修复此问题:

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

Shipping Configuration

仅使用蓝图的项目

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

唇形同步响应性能下降: 如果你在使用流式声波或可捕获声波时,发现唇形同步随时间推移变得响应迟缓,这可能是由内存累积引起的。默认情况下,每次追加新音频时都会重新分配内存。为防止此问题,请定期调用 ReleaseMemory 函数来释放累积的内存,例如每隔约30秒调用一次。

性能优化:

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