Visemator 插件使用文档
插件概述
Visemator 插件是一个强大的面部动画解决方案,专为 Unreal Engine 开发的数字人(MetaHumans)和其他自定义数字人(非 MetaHumans)面部同步而设计。它通过集成人工智能模型自动生成符合 ARKit 标准的 52 个 BlendShapes (BS),并利用 LiveLink 实现实时面部动画。无论是基于 MetaHumans 还是自定义模型,Visemator 都能高效地处理音频和面部动画的同步。
主要功能
AI 驱动的唇形生成:基于输入的音频文件(如
.wav
和.ogg
),自动生成符合 ARKit 标准的 52 个 BlendShapes。自动与 LiveLink 集成:自动为 MetaHumans 角色驱动实时面部动画,无需额外配置。
自定义角色支持:非 MetaHumans 角色也可以通过少量配置驱动面部动画。
高效的音频处理:支持音频文件和
USoundWave
资源,音频播放与唇形生成并行处理。
插件安装与配置
安装插件
下载并解压
Visemator
插件。将插件文件夹复制到你的 Unreal 项目目录下的
Plugins
文件夹中。启动 Unreal Engine 编辑器,打开你的项目。
在 Unreal 编辑器中,进入
Edit
->Plugins
,找到Visemator
插件并启用。重启 Unreal 编辑器以使插件生效。
配置 MetaHumans 角色
Visemator 插件会自动与 MetaHumans 角色进行集成,无需额外配置。只需确保你的项目中已经添加了 MetaHumans 角色,Visemator 将自动识别并绑定 LiveLink。
配置非 MetaHumans 角色
对于非 MetaHumans 角色,你需要做一些简单的配置:
确保你的自定义角色拥有符合 ARKit 标准的 52 个 BlendShapes(或者自定义相应的 Morph Targets)。
在
UVisematorComponent
中,调用AssignVisemesToMorphTargets
函数,将生成的唇形数据应用到你的角色模型的对应 Morph Targets 上。
主要功能和使用方法
1. 播放音频并生成唇形动画
Visemator 插件支持从音频文件或 USoundWave
资产中生成唇形动画,并自动驱动角色的面部同步。
从文件生成唇形动画
// 示例:播放音频文件并生成唇形动画
UVisematorComponent* VisematorComponent = ...; // 获取 Visemator 组件
FString AudioFilePath = "C:/path/to/audio/file.wav";
// 播放音频并触发唇形生成
VisematorComponent->PlayAudioFile(AudioFilePath);
从 SoundWave 资产生成唇形动画
// 示例:播放 USoundWave 资产并生成唇形动画
UVisematorComponent* VisematorComponent = ...; // 获取 Visemator 组件
USoundWave* SoundWaveAsset = ...; // 获取 SoundWave 资源
// 播放 SoundWave 资产并触发唇形生成
VisematorComponent->PlayAudioAsset(SoundWaveAsset);
2. 获取和应用生成的唇形
获取最新的唇形数据
// 获取最新的唇形数据
TArray<float> Visemes = VisematorComponent->GetVisemes();
将唇形数据应用到角色的 Morph Targets
// 获取角色的 SkeletalMesh 组件
USkeletalMeshComponent* SkeletalMeshComponent = ...;
// 获取角色的 Morph Targets 名称列表
TArray<FString> MorphTargetNames = { "eyeBlinkLeft", "eyeLookDownLeft", "eyeLookInLeft", ... };
// 将唇形数据应用到角色
VisematorComponent->AssignVisemesToMorphTargets(SkeletalMeshComponent, MorphTargetNames);
3. 控制音频播放和唇形生成
开始播放音频并生成唇形:
使用
PlayAudioFile
或PlayAudioAsset
开始播放音频并触发唇形生成。
暂停或停止音频播放:
使用
ResetPlayback
函数可以停止当前音频播放并重置播放状态。
检测是否正在播放音频:
IsTalking
可以检查当前是否有音频正在播放以及唇形生成是否正在进行。
4. 自动绑定 ARKit 面部追踪
如果 bAutoBindARKitFace
设置为 true
,插件会自动为 MetaHumans 角色绑定 ARKit 面部追踪,以便实时驱动面部动画。如果你使用的是自定义角色,可能需要手动配置相应的 LiveLink Source 来实现自动绑定。
// 自动绑定 ARKit 面部追踪
VisematorComponent->bAutoBindARKitFace = true;
事件与委托
事件
OnVisemesReady:当生成的唇形数据准备好后,该事件将被触发。你可以在蓝图或 C++ 中绑定此事件来执行后续操作。
OnPlayoutTriggered:当音频播放开始时,该事件将被触发。
委托
FVisematorVisemesReadyDelegate:当生成的唇形数据准备好时,该委托被触发。
FVisematorPlayoutTriggeredDelegate:当音频播放开始时,该委托被触发。
高级功能
配置音频静音
你可以通过 bMute
参数来控制音频播放时是否静音。如果设置为 true
,则音频将不会发出声音,适用于只需要唇形数据的场景。
VisematorComponent->bMute = true;
BlendShapes (BS) 说明
1. BlendShapes(BS)概述
Visemator 插件支持 ARKit 标准的 52 个 BlendShapes,用于驱动面部表情和唇形同步。它们涵盖了眼睛、下巴、嘴巴、眉毛、脸颊、鼻子、舌头等部位的动作。这些 BlendShapes 可用于驱动 MetaHumans 数字人模型或其他自定义面部模型的表情动画。
2. BlendShapes(BS)顺序和名称
下面是 ARKit 标准的 52 个 BlendShapes 的顺序和名称。此列表用于面部表情的驱动,按照 ARKit 标准的命名方式排列,确保兼容性和易于理解。
3. 如何使用这些 BlendShapes
MetaHumans 支持:如果您使用的是 MetaHumans 模型,Visemator 插件会自动通过 LiveLink 来同步这些 BlendShapes,无需额外配置。
非 MetaHumans 支持:对于非 Metahuman 的自定义数字人模型,您需要根据模型的 Morph Targets 配置这些 BlendShapes。可以在插件的设置中手动映射每个 BS 到自定义模型的相应控制器。
4. 自动和手动配置
自动配置:Visemator 插件默认会自动为 MetaHumans 模型配置这些 BS。
手动配置:对于非 MetaHumans 模型,用户需要在
AssignVisemesToMorphTargets
方法中手动映射每个 BS。
常见问题
Q1: 我的自定义角色为什么没有面部动画?
确保你的自定义角色拥有正确的 52 个 ARKit 标准的 Morph Targets(即 52 个 BlendShapes),并在
AssignVisemesToMorphTargets
中正确映射。如果你没有配置 LiveLink Source,可以手动绑定它。请参考 LiveLink 文档来获取更多信息。
Q2: 我如何从蓝图中使用这个插件?
你可以使用
PlayAudioFile
、PlayAudioAsset
、AssignVisemesToMorphTargets
等功能,通过蓝图来实现唇形生成和面部动画驱动。
人物A 回复
这是回复
人物B 回复
我回复你了
人物A 回复
回复已收到