插件配置
模型配置
标准模型配置
Create Runtime Viseme Generator 节点使用适用于大多数场景的默认设置。配置通过动画蓝图混合节点属性进行处理。
有关动画蓝图配置选项,请参阅下面的 唇形同步配置 部分。
真实感模型配置
Create Realistic MetaHuman Lip Sync Generator 节点接受一个可选的 配置 参数,允许您自定义生成器的行为:
模型类型
模型类型 设置决定使用哪个版本的真实感模型:
| 模型类型 | 性能 | 视觉质量 | 噪声处理 | 推荐使用场景 |
|---|---|---|---|---|
| 高度优化 (默认) | 最高性能,最低 CPU 使用率 | 良好质量 | 在背景噪声或非语音声音下可能显示明显的嘴部运动 | 干净的音频环境,性能关键场景 |
| 半优化 | 良好性能,中等 CPU 使用率 | 高质量 | 在嘈杂音频下稳定性更好 | 平衡性能与质量,混合音频条件 |
| 原始 | 适用于现代 CPU 上的实时使用 | 最高质量 | 在背景噪声和非语音声音下最稳定 | 高质量制作,嘈杂音频环境,需要最大精度时 |
性能设置
内部操作线程数: 控制用于内部模型处理操作的线程数。
- 0 (默认/自动): 使用自动检测(通常为可用 CPU 核心数的 1/4,最多 4 个)
- 1-16: 手动指定线程数。更高的值可能提高多核系统上的性能,但会使用更多 CPU
跨操作线程数: 控制用于并行执行不同模型操作的线程数。
- 0 (默认/自动): 使用自动检测(通常为可用 CPU 核心数的 1/8,最多 2 个)
- 1-8: 手动指定线程数。通常为实时处理保持较低值
处理块大小
处理块大小 决定每个推理步骤中处理的样本数。默认值为 160 个样本(在 16kHz 下为 10ms 音频):
- 较小的值提供更频繁的更新,但会增加 CPU 使用率
- 较大的值减少 CPU 负载,但可能降低唇形同步的响应性
- 建议使用 160 的倍数以获得最佳对齐

情绪启用模型配置
Create Realistic MetaHuman Lip Sync With Mood Generator 节点提供了超出基本真实感模型的额外配置选项:
基本配置
前瞻毫秒数: 用于提高唇形同步准确性的前瞻时间(毫秒)。
- 默认: 80ms
- 范围: 20ms 至 200ms(必须能被 20 整除)
- 更高的值提供更好的同步性,但会增加延迟
输出类型: 控制生成哪些面部控制。
- 全脸: 所有 81 个面部控制(眉毛、眼睛、鼻子、嘴巴、下巴、舌头)
- 仅嘴巴: 仅与嘴巴、下巴和舌头相关的控制
性能设置: 使用与常规真实感模型相同的内部操作线程数和跨操作线程数设置。
情绪设置
可用情绪:
- 中性、快乐、悲伤、厌恶、愤怒、惊讶、恐惧
- 自信、兴奋、无聊、俏皮、困惑
情绪强度: 控制情绪影响动画的强度(0.0 到 1.0)
运行时情绪控制
您可以在运行时使用以下函数调整情绪设置:
- 设置情绪: 更改当前情绪类型
- 设置情绪强度: 调整情绪影响动画的强度(0.0 到 1.0)
- 设置前瞻毫秒数: 修改同步的前瞻时间
- 设置输出类型: 在全脸和仅嘴巴控制之间切换

情绪选择指南
根据您的内容选择合适的情绪:
| 情绪 | 最适合 | 典型强度范围 |
|---|---|---|
| 中性 | 一般对话、旁白、默认状态 | 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 |
动画蓝图配置
唇形同步配置
- 标准模型
- Realistic Models
Blend Runtime MetaHuman Lip Sync 节点在其属性面板中有配置选项:
| 属性 | 默认值 | 描述 |
|---|---|---|
| 插值速度 | 25 | 控制唇部运动在音素之间过渡的速度。更高的值导致更快、更突然的过渡。 |
| 重置时间 | 0.2 | 唇形同步重置前的持续时间(秒)。这对于防止音频停止后唇形同步继续很有用。 |
笑声动画
您还可以添加笑声动画,这些动画将动态响应音频中检测到的笑声:
- 添加
Blend Runtime MetaHuman Laughter节点 - 将您的
RuntimeVisemeGenerator变量连接到Viseme Generator引脚 - 如果您已经在使用唇形同步:
- 将
Blend Runtime MetaHuman Lip Sync节点的输出连接到Blend Runtime MetaHuman Laughter节点的Source Pose - 将
Blend Runtime MetaHuman Laughter节点的输出连接到Output Pose的Result引脚
- 将
- 如果仅使用笑声而不使用唇形同步:
- 将您的源姿势直接连接到
Blend Runtime MetaHuman Laughter节点的Source Pose - 将输出连接到
Result引脚
- 将您的源姿势直接连接到

当在音频中检测到笑声时,您的角色将相应地动态动画:
笑声配置
Blend Runtime MetaHuman Laughter 节点有其自己的配置选项:
| 属性 | 默认值 | 描述 |
|---|---|---|
| 插值速度 | 25 | 控制笑声动画之间嘴唇运动的过渡速度。值越高,过渡越快、越突然。 |
| 重置时间 | 0.2 | 笑声重置前的持续时间(秒)。这有助于防止音频停止后笑声继续播放。 |
| 最大笑声权重 | 0.7 | 缩放笑声动画的最大强度(0.0 - 1.0)。 |
注意: 笑声检测目前仅适用于标准模型。
Blend Realistic MetaHuman Lip Sync 节点在其属性面板中有配置选项:
| 属性 | 默认值 | 描述 |
|---|---|---|
| 插值速度 | 30 | 控制主动说话期间面部表情的过渡速度。值越高,过渡越快、越突然。 |
| 空闲插值速度 | 15 | 控制面部表情过渡回空闲/中性状态的速度。较低的值会创建更平滑、更渐进的返回休息姿势的过程。 |
| 重置时间 | 0.2 | 口型同步重置到空闲状态前的持续时间(秒)。有助于防止音频停止后表情继续。 |
| 保持空闲状态 | false | 启用后,在空闲期间保留最后的情感状态,而不是重置为中性状态。 |
| 保持眼部表情 | true | 控制在空闲状态期间是否保留与眼睛相关的面部控制。仅在启用“保持空闲状态”时有效。 |
| 保持眉毛表情 | true | 控制在空闲状态期间是否保留与眉毛相关的面部控制。仅在启用“保持空闲状态”时有效。 |
| 保持嘴部形状 | false | 控制在空闲状态期间是否保留嘴部形状控制(不包括特定于言语的动作,如舌头和下巴)。仅在启用“保持空闲状态”时有效。 |
空闲状态保持
保持空闲状态 功能解决了 Realistic 模型如何处理静默期的问题。与使用离散视位素并在静默期间始终归零的标准模型不同,Realistic 模型的神经网络可能会保持与 MetaHuman 默认休息姿势不同的细微面部定位。
何时启用:
- 在语音片段之间保持情感表达
- 保留角色个性特征
- 确保电影序列中的视觉连续性
区域控制选项:
- 眼部表情:保留眼睛眯起、睁大和眼睑定位
- 眉毛表情:保持眉毛和前额定位
- 嘴部形状:保持一般嘴部曲率,同时允许言语动作(舌头、下巴)重置
与现有动画结合
要将口型同步和笑声与现有的身体动画和自定义面部动画一起应用而不覆盖它们:
- 在您的身体动画和最终输出之间添加一个
Layered blend per bone节点。确保Use Attached Parent为 true。 - 配置层级设置:
- 向
Layer Setup数组添加 1 个项目 - 为该层级向
Branch Filters添加 3 个项目,使用以下Bone Name:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- 向
- 对于自定义面部动画很重要: 在
Curve Blend Option中,选择 "Use Max Value"。这允许自定义面部动画(表情、情绪等)正确地叠加在口型同步之上。 - 建立连接:
- 现有动画(如
BodyPose)→Base Pose输入 - 面部动画输出(来自口型同步和/或笑声节点)→
Blend Poses 0输入 - 分层混合节点 → 最终的
Result姿势
- 现有动画(如

变形目标集选择
- Standard Model
- Realistic Models
标准模型使用姿势资产,这些资产通过自定义姿势资产设置固有地支持任何变形目标命名约定。无需额外配置。
Blend Realistic MetaHuman Lip Sync 节点包含一个 Morph Target Set 属性,用于确定面部动画使用哪种变形目标命名约定:
| 变形目标集 | 描述 | 使用场景 |
|---|---|---|
| MetaHuman (默认) | 标准 MetaHuman 变形目标名称(例如 CTRL_expressions_jawOpen) | MetaHuman 角色 |
| ARKit | 兼容 Apple ARKit 的名称(例如 JawOpen, MouthSmileLeft) | 基于 ARKit 的角色 |
微调口型同步行为
舌头伸出控制
在标准口型同步模型中,您可能会注意到在某些音素期间舌头过度向前移动。要控制舌头伸出:
- 在您的口型同步混合节点之后,添加一个
Modify Curve节点 - 右键单击
Modify Curve节点并选择 Add Curve Pin - 添加一个名称为
CTRL_expressions_tongueOut的曲线引脚 - 将节点的 Apply Mode 属性设置为 Scale
- 调整 Value 参数以控制舌头伸出程度(例如,0.8 以减少 20% 的伸出)
下巴张开控制
根据您的音频内容和视觉要求,真实口型同步可能会产生过度敏感的下巴运动。要调整下巴张开强度:
- 在您的口型同步混合节点之后,添加一个
Modify Curve节点 - 右键单击
Modify Curve节点并选择 Add Curve Pin - 添加一个名称为
CTRL_expressions_jawOpen的曲线引脚 - 将节点的 Apply Mode 属性设置为 Scale
- 调整 Value 参数以控制下巴张开范围(例如,0.9 以减少 10% 的下巴运动)
情绪特定微调
对于启用了情绪功能的模型,您可以微调特定的情感表达:
眉毛控制:
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- 脸颊抬起
模型比较与选择
在模型之间选择
在为您的项目决定使用哪种口型同步模型时,请考虑以下因素:
| 考虑因素 | 标准模型 | Realistic Model | Mood-Enabled Realistic Model |
|---|---|---|---|
| 角色兼容性 | MetaHumans 和所有自定义角色类型 | MetaHumans(和 ARKit)角色 | MetaHumans(和 ARKit)角色 |
| 视觉质量 | 良好的口型同步,性能高效 | 增强的真实感,嘴部运动更自然 | 增强的真实感,带有情感表达 |
| 性能 | 针对包括移动/VR 在内的所有平台优化 | 更高的资源需求 | 更高的资源需求 |
| 功能 | 14 个视位素,笑声检测 | 81 个面部控制,3 个优化级别 | 81 个面部控制,12 种情绪,可配置输出 |
| 平台支持 | Windows, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest |
| 使用场景 | 通用应用、游戏、VR/AR、移动端 | 电影体验、特写交互 | 情感叙事、高级角色交互 |
引擎版本兼容性
如果您使用的是 Unreal Engine 5.2,Realistic Models 可能无法正常工作,原因是 UE 重采样库中的一个错误。对于需要可靠口型同步功能的 UE 5.2 用户,请改用 标准模型。
此问题特定于 UE 5.2,不影响其他引擎版本。
性能建议
- 对于大多数项目,标准模型 提供了质量和性能之间的绝佳平衡
- 当您需要为 MetaHuman 角色提供最高的视觉保真度时,使用 Realistic Model
- 当情感表达控制对您的应用很重要时,使用 Mood-Enabled Realistic Model
- 选择模型时,请考虑目标平台的性能能力
- 测试不同的优化级别,为您的特定用例找到最佳平衡点
故障排除
常见问题
Realistic Models 的生成器重新创建: 为了在使用 Realistic Models 时获得可靠且一致的操作,建议在每次经过一段不活动时间后想要输入新的音频数据时重新创建生成器。这是由于 ONNX 运行时的行为可能导致在静默期后重用生成器时口型同步停止工作。
例如,您可以在每次播放开始时重新创建口型同步生成器,例如每当您调用 Play Sound 2D 或使用任何其他方法开始声波播放和口型同步时:

Runtime Text To Speech 集成的插件位置: 当同时使用 Runtime MetaHuman Lip Sync 和 Runtime Text To Speech(两个插件都使用 ONNX Runtime)时,如果插件安装在引擎的 Marketplace 文件夹中,您可能会在打包构建中遇到问题。要修复此问题:
- 在您的 UE 安装文件夹下的
\Engine\Plugins\Marketplace中找到这两个插件(例如C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace) - 将
RuntimeMetaHumanLipSync和RuntimeTextToSpeech文件夹都移动到您项目的Plugins文件夹中 - 如果您的项目没有
Plugins文件夹,请在.uproject文件所在的同一目录中创建一个 - 重新启动 Unreal Editor
这解决了当多个基于 ONNX Runtime 的插件从引擎的 Marketplace 目录加载时可能发生的兼容性问题。
打包配置(Windows): 如果口型同步在您 Windows 上的打包项目中无法正常工作,请确保您使用的是 Shipping 构建配置,而不是 Development。Development 配置可能会导致打包构建中 Realistic Models 的 ONNX 运行时出现问题。
要修复此问题:
- 在您的项目设置 → 打包中,将构建配置设置为 Shipping
- 重新打包您的项目

在某些纯蓝图项目中,即使选择了 Shipping,Unreal Engine 可能仍会以 Development 配置构建。如果发生这种情况,请通过添加至少一个 C++ 类(可以是空的)将您的项目转换为 C++ 项目。为此,请转到 UE 编辑器菜单中的 Tools → New C++ Class 并创建一个空类。这将强制项目以正确的 Shipping 配置构建。您的项目在功能上可以保持纯蓝图,C++ 类只是为了正确的构建配置。
口型同步响应性下降: 如果您在使用 Streaming Sound Wave 或 Capturable Sound Wave 时,口型同步的响应性随时间下降,这可能是由内存累积引起的。默认情况下,每次追加新音频时都会重新分配内存。为防止此问题,请定期调用 ReleaseMemory 函数以释放累积的内存,例如每 30 秒左右调用一次。
性能优化:
- 根据您的性能要求调整 Realistic 模型的 Processing Chunk Size
- 根据您的目标硬件使用适当的线程数
- 当不需要完整的面部动画时,考虑对启用了情绪功能的模型使用 Mouth Only 输出类型