插件配置
模型配置
对于可靠运行,使用 Realistic 和 Mood-Enabled Realistic 模型时,应在每次新的音频播放前重新创建生成器,而不是在长时间静默中重复使用同一个生成器。有关详细信息,请参阅“故障排除”中的生成器重新创建。
标准模型配置
Create Runtime Viseme Generator 节点使用的默认设置适用于大多数场景。配置通过 Animation Blueprint 混合节点属性进行处理。
有关 Animation Blueprint 配置选项,请参阅下方口型同步配置一节。
写实模型配置
该 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个面部控制(眉毛、眼睛、鼻子、嘴巴、下颚、舌头)
- 仅嘴部:仅包含嘴巴、下颚和舌头相关的控制
性能设置: 使用与常规写实模型相同的 Intra Op Threads 和 Inter Op Threads 设置。
情绪设置
可用情绪:
- 中性, 开心, 悲伤, 厌恶, 愤怒, 惊讶, 恐惧
- 自信, 兴奋, 无聊, 俏皮, 困惑
情绪强度: 控制情绪对动画的影响程度(0.0 到 1.0)
运行时情绪控制
您可以在运行时使用以下函数调整情绪设置:
- 设置情绪:更改当前情绪类型
- 设置情绪强度:调整情绪影响动画的强度(0.0 到 1.0)
- 设置前瞻毫秒:修改同步的前瞻时间
- 设置输出类型:在全脸和仅嘴部控制之间切换

情绪选择指南
根据你的内容选择合适的情绪:
| 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 |
Animation Blueprint 配置
口型同步配置
- 标准模型
- 逼真模型
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 | 控制空闲状态下是否保留嘴部形状控制(不包括舌部和下颚等语音相关动作)。仅在启用“保留空闲状态”时生效。 |
空闲状态保留
保持空闲状态功能专门处理写实模型在静音期间的表现。与使用离散视位并在静音时始终归零的标准模型不同,写实模型的神经网络可能会维持细微的面部位置,从而与 MetaHuman 的默认静止姿势有所不同。
何时启用:
- 在语音片段之间保持情绪表情
- 保留角色的性格特征
- 确保过场动画中的视觉连续性
区域控制选项:
- 眼部表情:保留眯眼、睁大和眼睑位置
- 眉毛表情:保持眉毛和前额位置
- 嘴部形状:保持整体嘴部曲线,同时允许说话动作(舌头、下巴)重置
结合现有动画
比起阅读,更喜欢观看?看看这个 视频教程,它介绍了这个确切的设置。
要同时应用口型同步和笑声,而不覆盖现有的身体动画和自定义面部动画:
此设置适用于面部动画蓝图,因为口型同步不属于身体动画蓝图的一部分。对于自定义身体动画(例如躯干、手臂和其他身体运动),只需将您的动画序列(通过 Sequence Player)直接连接到身体动画蓝图中的输出姿势即可。那里无需额外设置。
- 在身体动画和最终输出之间添加一个
Layered blend per bone节点。确保Use Attached Parent为true。 - 配置图层设置:
- 向
Layer Setup数组中添加 1 项 - 向图层的
Branch Filters中添加 3 项,并包含以下Bone Names:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- 向
- 自定义面部动画的重要提示: 在
Curve Blend Option中,选择 “使用最大值”。这样可以将自定义面部动画(表情、情绪等)正确地叠加在口型同步之上。 - 进行连接:
- 您的自定义动画(通常是带有所需动画序列资源的
Sequence Player)→Base Pose输入 - 面部动画输出(来自口型同步和/或笑声节点)→
Blend Poses 0输入 - 分层混合节点 → 最终
Result姿态
- 您的自定义动画(通常是带有所需动画序列资源的

变形目标集选择
- 标准模型
- 逼真的模型
标准模型使用姿势资源,这些资源通过自定义姿势资源设置天然支持任何变形目标命名约定。无需额外配置。
Blend Realistic MetaHuman Lip Sync 节点包含一个 形态目标集 属性,该属性决定了面部动画使用哪种形态目标命名约定:
| Morph Target Set | 描述 | 用例 |
|---|---|---|
| MetaHuman(默认) | 标准 MetaHuman 形态目标名称(例如:CTRL_expressions_jawOpen) | MetaHuman 角色 |
| ARKit | Apple ARKit 兼容名称(例如:JawOpen、MouthSmileLeft) | 基于 ARKit 的角色 |
微调口型同步行为
缩放特定口型同步曲线
您可以使用 Modify Curve 节点来减弱(或增强)口型同步产生的单个面部运动。当某个曲线对于您的音频内容或角色来说显得过于夸张时,这非常有用。
设置:
- 在你的口型同步混合节点之后,添加一个
Modify Curve节点 - 右键单击该节点并选择 添加曲线引脚,然后输入你想要缩放的曲线名称
- 将节点的 应用模式 属性设置为 缩放
- 设置 值 参数:低于 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- 脸颊抬起
模型比较与选择
在模型之间进行选择
在为你的项目决定使用哪种口型同步模型时,请考虑以下因素:
| 考量 | 标准模型 | 写实模型 | 支持情绪的写实模型 |
|---|---|---|---|
| 角色兼容性 | 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 用户,请改用 Standard Model。
此问题特定于 UE 5.2,不影响其他引擎版本。
性能建议
- 对于大多数项目,标准模型提供了质量与性能的绝佳平衡
- 当您需要为 MetaHuman 角色实现最高视觉保真度时,请使用写实模型
- 当情绪表达控制对您的应用很重要时,请使用情绪感知写实模型
- 在选择模型时,请考虑目标平台的性能水平
- 测试不同的优化级别,为您的具体用例找到最佳平衡
故障排除
常见问题
写实模型的生成器重建: 为了确保与写实模型配合时操作可靠且一致,建议在闲置一段时间后每次要输入新的音频数据时都重建生成器。这是因为 ONNX runtime 的行为可能导致在静音一段时间后复用生成器时,口型同步停止工作。
例如,你可以在每次播放开始时重新创建口型同步生成器,例如每当你调用 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
这解决了从引擎的 Marketplace 目录加载多个基于 ONNX Runtime 的插件时可能出现的兼容性问题。
打包配置(Windows): 如果在 Windows 上的打包项目中口型同步无法正常工作,请确保使用的是 Shipping 构建配置,而不是 Development。Development 配置可能会导致打包构建中的写实模型 ONNX 运行时出现问题。
要解决此问题:
- 在项目设置 → 打包中,将构建配置设置为 Shipping
- 重新打包你的项目

在一些仅使用蓝图的项目中,即使选择了 Shipping 配置,Unreal Engine 仍可能以 Development 配置构建。如果发生这种情况,请添加至少一个 C++ 类(可以为空)来将项目转换为 C++ 项目。为此,请在 UE 编辑器菜单中转到 工具 → 新建 C++ 类 并创建一个空类。这将强制项目以 Shipping 配置正确构建。在功能上,你的项目仍然可以仅使用蓝图,C++ 类只是为了确保正确的构建配置。
口型同步响应降低: 如果你在使用流式声波或可捕获声波时,发现口型同步的响应性随时间推移而下降,这可能是由内存累积导致的。默认情况下,每次附加新音频时都会重新分配内存。为防止此问题,请定期调用 ReleaseMemory 函数来释放累积的内存,例如每 30 秒左右调用一次。
性能优化:
- 根据你的性能要求,为逼真模型调整处理块大小
- 为目标硬件使用合适的线程数
- 当不需要完整面部动画时,考虑对支持情绪的模型使用仅嘴部输出类型