角色动画(Audio2Face、动画流所需)#
Audio2Face 和动画流功能与 Unreal Engine 中的 MetaHuman 角色配合良好。如果您的项目中还没有 MetaHuman 角色,请使用 Quixel Bridge 导入一个并将其放置在项目中的关卡中。然后使用以下步骤在您的角色上启用 NVIDIA ACE 动画。

如果您正在为非 MetaHuman 角色制作动画,另请阅读下面的非 MetaHuman 角色的注意事项部分。
初始编辑器设置#
从 Unreal Editor 中,选择编辑 > 编辑器首选项。
禁用关卡编辑器 / 杂项 / 为编辑器中播放创建新的音频设备设置。如果启用此设置,您可能听不到编辑器中从 ACE 收到的音频播放。

向 MetaHuman 添加 NVIDIA ACE 面部动画支持#
找到 Face_AnimBP 蓝图
编辑角色的蓝图,然后在“组件”选项卡中选择 Face。
单击
Face_AnimBP_C
Anim Class 旁边的放大镜。这将打开浏览器并自动选择Face_AnimBP
蓝图。双击打开它。
打开动画图 我的蓝图 > 动画图 > AnimGraph。
在 ARKit 姿势映射之前,将
Apply ACE Face Animations
动画节点添加到图中,ARKit 姿势映射通常是mh_arkit_mapping_pose
或mh_arkit_mapping_pose_A2F
。
进行更改后,下面是一个 Face_AnimBP
可能看起来的示例。您的特定 MetaHuman 蓝图可能看起来与此略有不同,但您必须在 ARKit 姿势映射之前添加 Apply ACE Face Animations
节点。

它的作用:Apply ACE Face Animations
动画蓝图节点使用从 NVIDIA ACE 技术(如 Audio2Face)接收的数据添加兼容 ARKit 的曲线。然后,ARKIt 姿势映射将这些曲线应用于 MetaHuman 面部动画序列。
Face_AnimBP
是所有 MetaHuman 角色共享的通用蓝图,因此您通常每个项目执行一次此操作。
绕过默认 MetaHuman MouthClose 动画#
NVIDIA ACE 功能输出 MouthClose 曲线。默认的 MetaHuman Face_AnimBP
蓝图具有基于 MouthClose 曲线的附加动画,这些动画会干扰 Audio2Face 提供的嘴唇运动。建议在使用 Audio2Face 时删除或绕过这些附加动画。
要删除会干扰 Audio2Face 嘴唇动画的附加嘴唇运动
选择 MetaHuman 蓝图,然后在组件选项卡中选择 Face。
单击
Face_AnimBP_C
Anim Class 旁边的放大镜。这将打开浏览器并自动选择
Face_AnimBP
蓝图。双击打开它。找到
Mouth Close
块并绕过其Modify Curve
动画节点。

更新 ARKit 姿势映射和动画序列#
NVIDIA 修改了默认的 MetaHuman ARKit 姿势资产和相应的动画序列资产,它们包含在 ACE 插件的 Content 文件夹中。从默认值修改的曲线(混合形状)是 BrowDownLeft、BrowDownRight、BrowInnerUp、MouthClose 和 MouthRollLower。
您可以自定义眉毛和嘴部区域周围的面部动画,以产生可能与 NVIDIA ACE 输出看起来更好的结果。
要使用这些可选的备用资产
选择 MetaHuman 蓝图,然后在组件选项卡中选择 Face。
单击
Face_AnimBP_C
Anim Class 旁边的放大镜。这将打开浏览器并自动选择
Face_AnimBP
蓝图。双击打开它。找到
mh_arkit_mapping_pose
节点并将 Pose Asset 更改为mh_arkit_mapping_pose_A2F
。如果此资产不可见,请将内容可见性更改为显示插件内容。

向角色添加 ACE 音频组件#
ACE 音频曲线源组件接收来自 NVIDIA ACE 技术(如 Audio2Face)的音频和曲线。音频被播放,曲线与音频保持同步。如果附加到同一角色的动画蓝图包含 Apply ACE Face Animations
节点,它可以读取和应用此组件生成的曲线。这会产生同步的语音和面部动画。
编辑角色的蓝图。您可以在主视口中选择您的角色,然后单击“大纲视图”窗格中的 编辑 链接。
在组件选项卡中,选择 Face,单击 +添加 并选择 ACE 音频曲线源。
对您想要使用 NVIDIA ACE 制作动画的任何其他角色重复此操作。

空间音频(可选)#
使用空间化音频,声音似乎来自组件附加到的角色。如果没有空间化音频,声音是平面的,并且与角色相对于听众的位置无关。请参阅 Unreal 声音衰减 文档,了解声音衰减如何工作以在引擎中启用空间化音频的详细信息。
要在角色上启用空间化音频,请向角色的 ACE 音频曲线源组件添加衰减设置。这些设置位于组件详细信息选项卡的衰减部分中。
衰减属性类似于 Unreal 的 UAudioComponent 同名属性。衰减属性包括
覆盖衰减:如果选中,则使用组件的内联衰减覆盖。如果未选中,则使用衰减设置资产(如果存在)。
衰减设置:对声音衰减资产的引用。
衰减覆盖:内联声音衰减设置。
如果您的项目中尚未添加衰减设置,您可以通过在组件中创建新的衰减资产来向 ACE 音频曲线源组件添加空间化音频。
从组件的详细信息选项卡中,选择衰减 > 衰减设置。
打开下拉菜单,在 创建新资产 下选择 声音衰减。
键入新声音衰减资产的名称。
(可选)根据需要自定义新资产。新创建的资产提供空间化音频,无需任何其他自定义。
有关进一步自定义声音衰减的详细信息,请参阅 Unreal 声音衰减文档。

如果您有现有的声音衰减资产,您可以将该资产添加到任何 ACE 音频曲线源组件
在内容抽屉中选择您要使用的声音衰减资产。
从 ACE 音频曲线源组件的详细信息选项卡中,选择衰减 > 衰减设置。
单击圆形图标内的向左箭头以使用从内容浏览器中选择的资产。
您还可以直接从 ACE 音频曲线源组件设置内联衰减设置。如果您启用衰减 > 覆盖衰减复选框,则内联衰减设置在复选框之后直接可用。

其他 ACE 音频组件设置(可选)#
ACE 音频曲线源组件是一种 Unreal 场景组件,它在详细信息选项卡中显示任何标准场景组件的所有属性。此外,还有一些自定义属性可供选择配置
ACE 配置 > 缓冲区长度(秒):开始播放前要缓冲的接收音频的秒数。建议使用默认值 0.1 秒。但是,如果您遇到音频卡顿,请尝试增加缓冲区长度。对于 Audio2Face v1.0 服务,音频以 0.033 秒的块接收,因此默认值表示 3 个接收到的音频块。
开发者 > 启用衰减调试:仅用于调试目的,有关详细信息,请参阅编辑器工具提示。类似于其他 Unreal 可播放声音对象上的相同属性。
声音 > 组:用于音频的声音组。默认组为语音。
声音 > 音量:声音的播放音量,介于 0 和 1 之间。默认值为 1。
语音管理 > 优先级 > 优先级:用于确定在达到通道限制时声音是否可以播放或保持活动状态。值越高表示优先级越高,请参阅平台的“音频设置”
最大通道数
属性。该值与声音的最终音量加权以产生最终运行时优先级值。该值必须介于 0 和 100 之间。默认值为 1。

动画开始和结束事件(可选)#
在 2.2 版本中添加。
ACE 音频曲线源组件在动画剪辑开始和结束时触发事件。您可以使用此设置来影响应用程序逻辑。例如,如果您希望在角色说完话后播放其他动画。
在您的角色蓝图中,选择 ACE 音频曲线源 组件
在“详细信息”窗格中,找到事件 > 动画开始时或事件 > 动画结束时
- 单击 + 号以向事件图添加事件
- 添加您希望由事件触发的任何逻辑
非 MetaHuman 角色的注意事项#
如果您正在为非 MetaHuman 角色制作动画,请考虑在上述说明中添加以下内容
只要 ACE 音频曲线源组件附加到包含
Apply ACE Face Animations
动画图节点的同一 Actor,它就可以正常工作。您可以将其附加到角色上任何有意义的位置。Apply ACE Face Animations
动画图节点仅生成动画曲线值。您必须为您的面部模型准备一个姿势资产,其中包含与 ARKit 混合形状名称对应的曲线。NVIDIA ACE 插件生成的曲线是EyeBlinkLeft
EyeLookDownLeft
EyeLookInLeft
EyeLookOutLeft
EyeLookUpLeft
EyeSquintLeft
EyeWideLeft
EyeBlinkRight
EyeLookDownRight
EyeLookInRight
EyeLookOutRight
EyeLookUpRight
EyeSquintRight
EyeWideRight
JawForward
JawLeft
JawRight
JawOpen
MouthClose
MouthFunnel
MouthPucker
MouthLeft
MouthRight
MouthSmileLeft
MouthSmileRight
MouthFrownLeft
MouthFrownRight
MouthDimpleLeft
MouthDimpleRight
MouthStretchLeft
MouthStretchRight
MouthRollLower
MouthRollUpper
MouthShrugLower
MouthShrugUpper
MouthPressLeft
MouthPressRight
MouthLowerDownLeft
MouthLowerDownRight
MouthUpperUpLeft
MouthUpperUpRight
BrowDownLeft
BrowDownRight
BrowInnerUp
BrowOuterUpLeft
BrowOuterUpRight
CheekPuff
CheekSquintLeft
CheekSquintRight
NoseSneerLeft
NoseSneerRight
TongueOut