角色动画(Audio2Face、动画流所需)#

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

open Quixel Bridge

如果您正在为非 MetaHuman 角色制作动画,另请阅读下面的非 MetaHuman 角色的注意事项部分。

初始编辑器设置#

  1. 从 Unreal Editor 中,选择编辑 > 编辑器首选项

  2. 禁用关卡编辑器 / 杂项 / 为编辑器中播放创建新的音频设备设置。如果启用此设置,您可能听不到编辑器中从 ACE 收到的音频播放。

Editor Preferences window

向 MetaHuman 添加 NVIDIA ACE 面部动画支持#

  1. 找到 Face_AnimBP 蓝图

  1. 编辑角色的蓝图,然后在“组件”选项卡中选择 Face

  2. 单击 Face_AnimBP_C Anim Class 旁边的放大镜。这将打开浏览器并自动选择 Face_AnimBP 蓝图。双击打开它。

  1. 打开动画图 我的蓝图 > 动画图 > AnimGraph

  2. 在 ARKit 姿势映射之前,将 Apply ACE Face Animations 动画节点添加到图中,ARKit 姿势映射通常是 mh_arkit_mapping_posemh_arkit_mapping_pose_A2F

进行更改后,下面是一个 Face_AnimBP 可能看起来的示例。您的特定 MetaHuman 蓝图可能看起来与此略有不同,但您必须在 ARKit 姿势映射之前添加 Apply ACE Face Animations 节点。

Apply ACE Face Animations animgraph node

它的作用: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 嘴唇动画的附加嘴唇运动

  1. 选择 MetaHuman 蓝图,然后在组件选项卡中选择 Face

  2. 单击 Face_AnimBP_C Anim Class 旁边的放大镜

  3. 这将打开浏览器并自动选择 Face_AnimBP 蓝图。双击打开它。

  4. 找到 Mouth Close 块并绕过其 Modify Curve 动画节点。

Bypass Mouth Close animation

更新 ARKit 姿势映射和动画序列#

NVIDIA 修改了默认的 MetaHuman ARKit 姿势资产和相应的动画序列资产,它们包含在 ACE 插件的 Content 文件夹中。从默认值修改的曲线(混合形状)是 BrowDownLeft、BrowDownRight、BrowInnerUp、MouthClose 和 MouthRollLower。

您可以自定义眉毛和嘴部区域周围的面部动画,以产生可能与 NVIDIA ACE 输出看起来更好的结果。

要使用这些可选的备用资产

  1. 选择 MetaHuman 蓝图,然后在组件选项卡中选择 Face

  2. 单击 Face_AnimBP_C Anim Class 旁边的放大镜

  3. 这将打开浏览器并自动选择 Face_AnimBP 蓝图。双击打开它。

  4. 找到 mh_arkit_mapping_pose 节点并将 Pose Asset 更改为 mh_arkit_mapping_pose_A2F

    • 如果此资产不可见,请将内容可见性更改为显示插件内容

mh_arkit_mapping_pose_A2F animgraph node

向角色添加 ACE 音频组件#

ACE 音频曲线源组件接收来自 NVIDIA ACE 技术(如 Audio2Face)的音频和曲线。音频被播放,曲线与音频保持同步。如果附加到同一角色的动画蓝图包含 Apply ACE Face Animations 节点,它可以读取和应用此组件生成的曲线。这会产生同步的语音和面部动画。

  1. 编辑角色的蓝图。您可以在主视口中选择您的角色,然后单击“大纲视图”窗格中的 编辑 链接。

  2. 组件选项卡中,选择 Face,单击 +添加 并选择 ACE 音频曲线源

  3. 对您想要使用 NVIDIA ACE 制作动画的任何其他角色重复此操作。

ACE Audio Curve Source component

空间音频(可选)#

使用空间化音频,声音似乎来自组件附加到的角色。如果没有空间化音频,声音是平面的,并且与角色相对于听众的位置无关。请参阅 Unreal 声音衰减 文档,了解声音衰减如何工作以在引擎中启用空间化音频的详细信息。

要在角色上启用空间化音频,请向角色的 ACE 音频曲线源组件添加衰减设置。这些设置位于组件详细信息选项卡的衰减部分中。

衰减属性类似于 Unreal 的 UAudioComponent 同名属性。衰减属性包括

  • 覆盖衰减:如果选中,则使用组件的内联衰减覆盖。如果未选中,则使用衰减设置资产(如果存在)。

  • 衰减设置:对声音衰减资产的引用。

  • 衰减覆盖:内联声音衰减设置。

如果您的项目中尚未添加衰减设置,您可以通过在组件中创建新的衰减资产来向 ACE 音频曲线源组件添加空间化音频。

  1. 从组件的详细信息选项卡中,选择衰减 > 衰减设置

  2. 打开下拉菜单,在 创建新资产 下选择 声音衰减

  3. 键入新声音衰减资产的名称。

  4. (可选)根据需要自定义新资产。新创建的资产提供空间化音频,无需任何其他自定义。

有关进一步自定义声音衰减的详细信息,请参阅 Unreal 声音衰减文档。

ACE Audio Curve Source new attenuation asset

如果您有现有的声音衰减资产,您可以将该资产添加到任何 ACE 音频曲线源组件

  1. 在内容抽屉中选择您要使用的声音衰减资产。

  2. 从 ACE 音频曲线源组件的详细信息选项卡中,选择衰减 > 衰减设置

  3. 单击圆形图标内的向左箭头以使用从内容浏览器中选择的资产。

您还可以直接从 ACE 音频曲线源组件设置内联衰减设置。如果您启用衰减 > 覆盖衰减复选框,则内联衰减设置在复选框之后直接可用。

ACE Audio Curve Source inline attenuation settings

其他 ACE 音频组件设置(可选)#

ACE 音频曲线源组件是一种 Unreal 场景组件,它在详细信息选项卡中显示任何标准场景组件的所有属性。此外,还有一些自定义属性可供选择配置

  • ACE 配置 > 缓冲区长度(秒):开始播放前要缓冲的接收音频的秒数。建议使用默认值 0.1 秒。但是,如果您遇到音频卡顿,请尝试增加缓冲区长度。对于 Audio2Face v1.0 服务,音频以 0.033 秒的块接收,因此默认值表示 3 个接收到的音频块。

  • 开发者 > 启用衰减调试:仅用于调试目的,有关详细信息,请参阅编辑器工具提示。类似于其他 Unreal 可播放声音对象上的相同属性。

  • 声音 > 组:用于音频的声音组。默认组为语音

  • 声音 > 音量:声音的播放音量,介于 0 和 1 之间。默认值为 1。

  • 语音管理 > 优先级 > 优先级:用于确定在达到通道限制时声音是否可以播放或保持活动状态。值越高表示优先级越高,请参阅平台的“音频设置”最大通道数 属性。该值与声音的最终音量加权以产生最终运行时优先级值。该值必须介于 0 和 100 之间。默认值为 1。

ACE Audio Curve Source component settings

动画开始和结束事件(可选)#

在 2.2 版本中添加。

ACE 音频曲线源组件在动画剪辑开始和结束时触发事件。您可以使用此设置来影响应用程序逻辑。例如,如果您希望在角色说完话后播放其他动画。

  1. 在您的角色蓝图中,选择 ACE 音频曲线源 组件

  2. 在“详细信息”窗格中,找到事件 > 动画开始时或事件 > 动画结束时

  3. 单击 + 号以向事件图添加事件
    Add OnAnimationEnded event
  4. 添加您希望由事件触发的任何逻辑
    OnAnimationEnded event logic

非 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