如何使用插件
本指南将引导您为MetaHuman角色设置Runtime MetaHuman Lip Sync的过程。
先决条件
在开始之前,确保:
- 项目中启用了 MetaHuman 插件
- 项目中至少下载并可使用一个MetaHuman角色
- 安装了 Runtime MetaHuman Lip Sync 插件
附加插件:
- 如果计划使用 音频捕捉(例如麦克风输入),请安装 Runtime Audio Importer 插件。
- 如果计划使用 文本转语音 功能,请安装 Runtime Text To Speech 插件。
安装步骤
步骤1:定位并修改面部动画蓝图
您需要修改一个将用于MetaHuman角色面部动画的动画蓝图。默认的MetaHuman面部动画蓝图位于:
Content/MetaHumans/Common/Face/Face_AnimBP
您有多种选项来实现嘴型同步功能:
- 编辑默认资产(最简单的选项)
- 创建副本
- 使用自定义动画蓝图
直接打开默认的 Face_AnimBP
进行修改。任何更改都会影响使用此动画蓝图的所有MetaHuman角色。
注意: 此方法方便,但会影响所有使用默认动画蓝图的角色。
- 复制
Face_AnimBP
并为其命名一个描述性名称 - 定位您的角色蓝图类(例如,对于角色“Bryan”,它位于
Content/MetaHumans/Bryan/BP_Bryan
) - 打开角色蓝图并找到面部组件
- 将动画类属性更改为您新复制的动画蓝图
注意: 这种方法允许您为特定角色自定义嘴型同步,同时不改变其他角色。
您可以在任何可访问所需面部骨骼的动画蓝图中实现嘴型同步混合:
- 创建或使用现有自定义动画蓝图
- 确保您的动画蓝图与包含与默认MetaHuman的
Face_Archetype_Skeleton
相同面部骨骼的骨架一起工作(这是任何MetaHuman角色使用的标准骨架)
注意: 这种方法为您提供了与自定义动画系统集成的最大灵活性。
重要: Runtime MetaHuman Lip Sync
混合 可以在任何可以访问包含默认MetaHuman Face_Archetype_Skeleton
面部骨骼的姿势的动画蓝图资产中实现。您并不限于上述选项 - 这些只是常见的实现方法。
步骤2:事件图设置
打开您的面部动画蓝图并切换到 Event Graph
。您需要创建一个运行时 Viseme 生成器,以处理音频数据并生成Viseme。
- 如果尚不存在,请添加
Event Blueprint Begin Play
节点 - 添加
Create Runtime Viseme Generator
节点并连接到 Begin Play 事件 - 将输出保存为变量(例如 "VisemeGenerator"),以便在图的其他部分使用
步骤3:设置音频输入处理
您需要设置一种方法来处理音频输入。根据您的音频源,有几种方式可以进行设置。
- 麦克风(实时)
- 麦克风(播放)
- 文本转语音
- 自定义音频源
这种方法在讲话到麦克风时实时执行嘴型同步:
- 使用运行时音频导入器创建一个可捕捉的声音波形
- 开始捕获音频之前,绑定到
OnPopulateAudioData
委托 - 在绑定的函数中,从您的运行时 Viseme 生成器调用
ProcessAudioData
- 开始从麦克风捕捉音频
这种方法从麦克风捕捉音频,然后播放时执行嘴型同步:
- 使用运行时音频导入器创建一个可捕捉的声音波形
- 开始从麦克风捕获音频
- 在播放可捕获的声音波形之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,从您的运行时 Viseme 生成器调用
ProcessAudioData
这种方法从文本合成语音并执行嘴型同步:
- 使用运行时文本转语音从文本生成语音
- 使用运行时音频导入器导入合成的音频
- 在播放导入的声音波形之前,绑定到其
OnGeneratePCMData
委托 - 在绑定的函数中,从您的运行时 Viseme 生成器调用
ProcessAudioData
对于自定义音频源,您需要:
- 以浮动PCM格式的音频数据(浮点样本数组)
- 采样率和通道数
- 使用这些参数从您的运行时 Viseme 生成器调用
ProcessAudioData
步骤4:动画图设置
设置完事件图后,切换到 Anim Graph
,以连接Viseme生成器到角色的动画:
- 找到包含MetaHuman面部的姿势(通常来自
Use cached pose 'Body Pose'
) - 添加
Blend Runtime MetaHuman Lip Sync
节点 - 将姿势连接到
Blend Runtime MetaHuman Lip Sync
节点的Source Pose
- 将您的
RuntimeVisemeGenerator
变量连接到Viseme Generator
插针 - 将
Blend Runtime MetaHuman Lip Sync
节点的输出连接到Output Pose
的Result
插针
注意: 嘴型同步插件被设计为非破坏性的与您现有的动画设置共同工作。它仅影响嘴唇运动所需的特定面部骨骼,保留其他面部动画不变。这意味着您可以在动画链的任何点安全地集成它 - 可以在其他面部动画之前(让那些动画覆盖嘴型同步)或在它们之后(让嘴型同步覆盖在您现有动画之上)。这种灵活性允许您在不发生冲突的情况下结合嘴型同步、眼部眨动、眉毛运动、情感表达和其他面部动画。
配置
Blend Runtime MetaHuman Lip Sync
节点在其属性面板中具有配置选项:
属性 | 默认值 | 描述 |
---|---|---|
插值速度 | 25 | 控制嘴唇运动在不同 Viseme 之间过渡的速度。较高的值将导致更快、更突然的过渡。 |
重置时间 | 0.2 | 嘴型同步重置之前的持续时间(秒)。这有助于防止音频停止后嘴型同步继续。 |