插件配置
模型配置
为了在使用 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 的倍数以获得最佳对齐效果

启用情绪功能的模型配置
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 | 最适合用于 | 典型强度范围 |
|---|---|---|
| 中性 | 一般对话、旁白、默认状态 | 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 | 口型同步重置的持续时间(秒)。这有助于防止音频停止后口型同步仍在继续。 |
笑声动画
你还可以添加笑声动画,它们会动态响应音频中检测到的笑声:
- 添加
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 模型如何处理静音时段的问题。与使用离散 viseme 并在静音期间始终返回零值的 Standard 模型不同,Realistic 模型的神经网络可能会维持细微的面部定位,这与 MetaHuman 的默认静止姿势不同。
何时启用:
- 在语音片段之间保持情绪表达
- 保留角色个性特征
- 确保电影化序列中的视觉连续性
区域控制选项:
- 眼部表情:保留眯眼、睁眼和眼睑位置
- 眉毛表情:保持眉毛和前额位置
- 嘴部形状:保持整体嘴部曲率,同时允许语音动作(舌头、下颌)重置
与现有动画结合
更喜欢看视频而不是阅读?查看视频教程,其中涵盖了这一确切设置。
要在不覆盖现有身体动画和自定义面部动画的情况下,同时应用唇形同步和笑声:
此设置适用于面部 Animation Blueprint,因为口型同步不属于身体 Animation Blueprint 的一部分。对于自定义身体动画(例如躯干、手臂和其他身体动作),只需将你的动画序列(通过 Sequence Player)直接连接到身体 Animation Blueprint 中的输出姿势即可。那里不需要额外设置。
- 在身体动画和最终输出之间添加一个
Layered blend per bone节点。 - 配置层设置:
- 向
Layer Setup数组添加 1 个项 - 为该层向
Branch Filters添加 3 个项,使用以下Bone Name:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- 向
- 自定义面部动画的重要提示: 在
Curve Blend Option中,选择 "Use Max Value"。这样可以让自定义面部动画(表情、情绪等)正确地叠加在口型同步之上。 - 进行连接:
- 你的自定义动画(通常是带有目标动画序列资源的
Sequence Player)→Base Pose输入 - 面部动画输出(来自口型同步和/或笑声节点)→
Blend Poses 0输入 - 分层混合节点 → 最终
Result姿势
- 你的自定义动画(通常是带有目标动画序列资源的

变形目标集选择
- 标准模型
- 逼真的模型
标准模型使用姿势资产,通过自定义姿势资产设置天然支持任何变形目标命名约定。无需额外配置。
Blend Realistic MetaHuman Lip Sync 节点包含一个 Morph Target Set 属性,用于确定面部动画使用哪种 morph target 命名约定:
| Morph Target 集 | 描述 | 使用场景 |
|---|---|---|
| MetaHuman(默认) | 标准 MetaHuman morph target 名称(例如 CTRL_expressions_jawOpen) | MetaHuman 角色 |
| ARKit | Apple ARKit 兼容名称(例如 JawOpen、MouthSmileLeft) | 基于 ARKit 的角色 |
将角色转换为 ARKit 或 MetaHuman 混合形状
如果你的角色本身不使用 ARKit 标准 blendshape 名称,可以将几种流行的商业角色系统转换为生成这些名称(或者,对于 CC5,直接转换为原生 MetaHuman blendshape)。这样你就可以使用上方的 ARKit 或 MetaHuman 形态目标集,而不需要为 Standard Model 进行手动 viseme 映射流程。 CC4 和 CC5 角色在这里的处理方式不同,因为 CC5 角色可以共享 MetaHuman 的原生面部绑定,而完全不需要进行 ARKit 转换。 CC5:转换为 MetaHuman 混合形状(推荐) 如果你的角色是在 CC5 中使用 HD 面部配置文件 构建的,它已经共享了 MetaHuman 的面部控制和骨骼,因此无需手动生成 ARKit 混合形状。相反: 导入后,请选择 MetaHuman Morph Target Set 选项,而不是 ARKit,因为该角色的混合形状已经使用原生 MetaHuman 命名。 CC4(或无 HD 配置文件的 CC5):转换为 ARKit 混合形状 如果你使用的是 CC4,或者是不使用 HD 面部配置的 CC5 角色,请改用手动 ARKit 转换。开始之前,请确保你角色的面部配置设置为 CC4 Extended(而不是 Standard、Extended-Plus 或更新的 HD 面部配置)。该脚本的混合形状映射是针对 Extended 的滑块名称硬编码的,其他配置使用不同的命名约定,脚本会静默跳过或无法找到预期的滑块。 下载此脚本: 在文本编辑器中打开脚本,找到 在 Character Creator 中,选择你的角色,然后在顶部菜单的 Script 下选择 Load Python。接着选择你刚刚编辑过的脚本。该脚本现在将根据默认的 Reallusion 滑块创建完整的 ARKit 混合形状集,并将它们导出为 OBJ 文件。这可能需要几分钟。 现在你可以通过打开 Facial Profile Editor 窗口来导入这些形状。点击 Edit Expressions 按钮,然后在 Batch Import 下拉菜单中选择 OBJ。 在这里你可以导入之前引用的文件夹。随后会列出所有 ARKit 形态。在 Target Category 中输入一个名称,例如 AR_Kit,然后点击 OK。 这将在Expression下创建一个新类别。你可以禁用所有其他类别。 设置好 ARKit 类别后,像往常一样将角色导出为 FBX。这会让角色获得标准的 52 个 ARKit 混合形状,之后你便可以在上方的 ARKit Morph Target Set 选项中使用它们。 注意: 在 CC4 的绑定中,下颌运动部分由骨骼旋转驱动,而非纯粹的混合形状,因此导出后 Daz 的 FACS 变形,原生支持 Genesis 8.1 和 Genesis 9,已经兼容 ARKit,无需重命名。普通的 Genesis 8(不是 8.1)默认不包含这些。你要么改用 Genesis 8.1,要么添加一个单独的 FACS 变形包。 积极维护的 Diffeomorphic 插件(一个 Daz Studio 与 Blender 的桥接工具,与 Daz 3D 无关联)是将这些导入 Unreal 的推荐方式: 导出后,请使用上方的 ARKit Morph Target Set 选项。 注意: 睫毛和眼球上的视线方向形态可能无法完全迁移,因为它们的驱动方式与主面部网格不同,但这不会影响唇形同步,因为唇形同步只需要嘴部和下颌形态。Reallusion CC4/CC5 与 Daz Genesis 8.1/9 转换指南(点击展开)
rl_export_arkit_objs.pyoutput_dir = "path/to/your/target/folder" 这一行,将路径指定为你的导出文件夹。请确保使用正斜杠 /。



jawOpen 可能看起来较弱,或者无法令人信服地张开嘴巴。如果出现这种情况,请在 FBX 导出选项中启用 Mouth Open as Morph,这会将下颌的骨骼驱动运动烘焙到一个专用的混合形状中,该形状可以指定为 jawOpen 的源,而不是默认的那个。或者,cc_blender_tools 插件可以通过 Blender 处理角色,以修复此问题和其他形状问题;有关工作流程,请参阅其文档的“Blender Round Trip”部分(页面标题提到 Unity,但这个特定部分与引擎无关)。
微调唇形同步行为
缩放特定唇形同步曲线
你可以使用 Modify Curve 节点来减弱(或增强)由口型同步产生的单个面部动作。当某个特定曲线对你的音频内容或角色来说显得过于明显时,这非常有用。
设置:
- 在你的 Lip Sync 混合节点之后,添加一个
Modify Curve节点 - 右键点击该节点并选择 Add Curve Pin,然后输入你想要缩放的曲线名称
- 将该节点的 Apply Mode 属性设置为 Scale
- 设置 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、Quest | Windows、Mac、iOS、Linux、Android、Quest | Windows、Mac、iOS、Linux、Android、Quest |
| 使用场景 | 通用应用、游戏、VR/AR、移动端 | 电影级体验、近距离互动 | 情感叙事、高级角色互动 |
引擎版本兼容性
如果你使用的是 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 或使用任何其他方法来启动声波播放和口型同步时:

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 运行时出现问题。
要解决这个问题:
- 在 Project Settings → Packaging 中,将 Build Configuration 设置为 Shipping
- 重新打包你的项目

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