跳到主要内容

眼部动画辅助工具

除了口型同步外,Runtime MetaHuman Lip Sync 插件还包含两个可选的辅助工具,用于为 MetaHuman 眼部添加动画效果:

  • Auto Blink:一个辅助工具,可为 MetaHuman 生成自然、随机的眨眼动作
  • Eyes Aim:一个动画蓝图节点,可使 MetaHuman 的眼睛注视世界空间中的某个位置

这些功能完全独立于口型同步,可以单独使用、组合使用,或与口型同步节点配合使用。它们旨在作为轻量级的即插即用辅助工具,无需手动制作即可为眼部添加逼真的行为。

功能预览

自动眨眼:自动眼睛眨眼
眼睛瞄准:追踪玩家摄像机
眼睛注视:跟随移动的目标演员
何时使用这些辅助工具

如果您的面部动画管线已经包含眨眼和动态注视,您可以跳过此页面。这些辅助工具适用于您希望获得逼真的眼睛行为但无需自行制作的情况,例如,当您的动画序列不包含眨眼时,或者当您需要眼睛动态跟随移动目标(静态动画序列无法做到这一点)时。它们也可以叠加在现有面部动画之上,以添加缺失的部分,例如在仅动画化嘴部的序列上添加眨眼。

自动眨眼辅助工具通过驱动 MetaHuman 面部控制骨骼的 CTRL_L_eye_blinkCTRL_R_eye_blink 曲线,产生随机、自然的眨眼效果。

工作原理

每一帧,您从面部动画蓝图的事件图表中调用 Update MetaHuman Auto Blink,并传入该帧的增量时间。该函数:

  1. 跟踪每个角色的状态(下次眨眼时间、当前睁开/闭合阶段等),以调用它的 AnimInstance 为键
  2. 返回两个 0..1 范围内的浮点值,分别代表左眼和右眼当前的闭合程度
  3. 然后,您将这些值存储在蓝图变量中,并在动画图表中将其输入到控制骨骼节点

设置

两步: 在事件图表中添加眨眼调用,然后在动画图表中将值输入到控制骨骼节点。

1. 事件图表:每帧驱动眨眼值

在您的面部动画蓝图(例如 Face_AnimBP 或您复制/拷贝的版本,请参阅设置指南)中,打开事件图表并在 Event Blueprint Update Animation 中添加以下内容:

  1. 调用 Update MetaHuman Auto Blink
  2. 增量时间 X(来自事件)连接到Delta Seconds
  3. (可选)配置 Config 结构体。默认值看起来已经很自然
  4. 左眼眨眼值右眼眨眼值提升为蓝图变量(例如 LeftBlinkValueRightBlinkValue

自动眨眼事件图表设置

2. 动画图表:将值输入到面部控制骨骼

在同一个动画蓝图的动画图表中:

  1. 所有其他可能写入眨眼曲线的面部逻辑之后(例如在 Blend Runtime MetaHuman Lip Sync 和任何自定义面部动画层之后)放置一个控制骨骼节点
  2. 在节点的细节面板中,将控制骨骼类设置为您的 MetaHuman 面部控制骨骼。路径通常为:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • 您的项目可能根据 MetaHuman 的导入方式而有不同的路径。
  3. 细节面板中,展开输入部分并为以下项启用使用引脚
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. 将您的 LeftBlinkValue 变量连接到 CTRL_L_eye_blink
  5. 将您的 RightBlinkValue 变量连接到 CTRL_R_eye_blink

自动眨眼动画图表设置

放置位置很重要

将控制骨骼节点放置在唇形同步混合节点(以及任何其他面部动画节点)之后,这样眨眼值就不会被其他逻辑覆盖。

配置

Update MetaHuman Auto Blink 节点接受一个可选的 Config 结构体。对于大多数角色,默认值看起来已经很自然,如果您想调整行为,请展开下方内容。

配置属性

时间

属性默认值描述
眨眼最小间隔时间2.0 秒眼睛完全睁开时,两次眨眼之间的最小间隔。
眨眼最大间隔时间4.0 秒两次眨眼之间的最大间隔。实际间隔在最小值和最大值之间随机化。
闭合保持最小时间0.04 秒眼睛保持完全闭合的最短时间。
闭合保持最大时间0.08 秒眼睛保持完全闭合的最长时间。

插值

属性默认值描述
闭合插值速度35.0闭眼时的速度。人类闭眼比睁眼快,因此此值有意高于睁眼速度。
睁开插值速度18.0睁眼时的速度。
闭合阈值0.97眨眼被认为“完全闭合”并开始保持阶段的值。
睁开阈值0.02眨眼被认为“完全睁开”并安排下一次眨眼的值。

杂项

属性默认值描述
独立眼睛false当为 true 时,左右眼独立眨眼,具有不同的时间。当为 false(默认)时,双眼完美同步眨眼。
bEnabled(函数引脚)true当为 false 时,眼睛会逐渐睁开并暂停眨眼。适用于过场动画、睡眠、死亡等场景。

运行时控制

您也可以调用 Reset Auto Blink State 来显式清除给定 AnimInstance 的内部状态(例如,在角色重生或切换过场状态时)。

眼睛注视

眼睛注视辅助工具是一个动画蓝图节点Runtime MetaHuman Eyes Aim),它使角色的眼睛追踪一个世界空间位置——例如,玩家摄像机、另一个演员或任何移动目标。它支持偏航/俯仰限制、平滑处理、当目标经过头部后方时的防翻转保护,以及可选的微扫视以增加真实感。

选择模式

该节点支持两种模式,通过节点细节面板中的模式下拉菜单选择:

模式驱动内容放置位置
曲线(默认)面部控制骨骼的眼睛注视曲线(CTRL_expressions_eyeLook*面部动画蓝图(例如 Face_AnimBP)中,控制骨骼节点之前
骨骼直接驱动 FACIAL_L_Eye / FACIAL_R_Eye 骨骼,绕过控制骨骼面部后处理动画蓝图(例如 Face_PostProcess_AnimBP)中, AnimNode_RigLogic 节点之后

曲线模式是推荐的默认模式。它能与其他基于曲线的面部系统(唇形同步、表情、ARKit 混合形状等)干净地组合,因为值是通过正常的控制骨骼评估组合的,而不是在骨骼变换上产生冲突。

当曲线模式不起作用时,请使用骨骼模式

在某些 MetaHuman 变体上(特别是较旧的骨骼,包括一些通过 Quixel Bridge 下载的),眼睛注视曲线实际上并不驱动眼睛。可见的症状是,当曲线模式节点激活时,眼睛向下看,瞳孔几乎隐藏,无论目标位置如何。

如果您看到这种情况,请切换到骨骼模式。骨骼模式直接旋转眼骨,因此无论控制骨骼如何连接,它都能在每个 MetaHuman 变体上工作。请参阅下方设置中的骨骼选项卡。

设置

默认设置。该节点位于标准的面部动画蓝图中,并驱动面部控制骨骼的眼睛注视曲线。

两步: 在动画图表中添加节点,然后从事件图表中为其提供目标位置。

1. 动画图表:添加节点

在您的面部动画蓝图的动画图表中:

  1. 添加一个 Runtime MetaHuman Eyes Aim 节点
  2. 在细节面板中将模式保持设置为曲线
  3. 将其放置在所有其他可能写入眼睛注视曲线的面部逻辑之后(唇形同步、自定义动画等),与自动眨眼控制骨骼节点的原理相同
  4. 将现有姿势连接到源姿势
  5. 将输出连接到链中的下一个节点(或输出姿势
  6. 创建一个 Vector 蓝图变量(例如 TargetWorldLocation)并将其连接到节点的目标世界位置引脚。您将在下一步中从事件图表更新此变量。

眼睛注视动画图表设置

2. 事件图表:输入目标位置

目标世界位置引脚期望一个世界空间的 FVector。一个常见的情况是让 MetaHuman 看着玩家摄像机。在 Event Blueprint Update Animation 中:

  1. 获取玩家摄像机管理器(玩家索引 0)
  2. 检查是否有效
  3. 如果有效,调用获取摄像机位置
  4. 将其存储在 TargetWorldLocation 蓝图变量中

眼睛注视,追踪摄像机

要追踪任意演员(NPC、物品、兴趣点),请改为每帧获取该演员的位置并存储到同一个变量中。对于固定的注视点,请在节点的细节面板中一次性设置目标世界位置或将其作为常量。

配置

所有设置都在 Runtime MetaHuman Eyes Aim 节点的细节面板中公开。

瞄准与限制

瞄准

属性默认值描述
模式曲线选择驱动眼睛的方式。请参阅选择模式
目标世界位置(0,0,0)眼睛注视的世界空间点。默认作为引脚公开。
bEnabledtrue当为 false 时,眼睛逐渐回到前方并忽略目标。默认作为引脚公开。

限制

属性默认值描述
最大偏航角度35°相对于头部前方方向的最大水平(偏航)偏移。限制在 0 到 80 之间。
最大俯仰角度25°相对于头部前方方向的最大垂直(俯仰)偏移。限制在 0 到 80 之间。
后方防翻转true防止目标经过头部后方时眼睛翻转。
平滑与扫视

平滑

属性默认值描述
插值速度12.0眼睛运动的平滑速度。越高 = 反应越快,越低 = 更迟缓。

扫视

微扫视是真实眼睛不断执行的微小、随机的注视偏移。添加它们可以避免完美平滑追踪的“死眼”外观。

属性默认值描述
启用扫视true切换微扫视的开启/关闭。
扫视偏航幅度(度)1.5°每次扫视的最大水平抖动。小值(1–2°)感觉自然;较大值看起来抽搐。
扫视俯仰幅度(度)1.0°每次扫视的最大垂直抖动。通常略小于偏航幅度。
扫视最小间隔0.6 秒两次扫视之间的最小时间。
扫视最大间隔2.5 秒两次扫视之间的最大时间。较大的值感觉更平静,较小的值感觉不安。
骨骼(仅骨骼模式)
属性默认值描述
左眼骨骼FACIAL_L_Eye左眼骨骼名称。与标准的 MetaHuman 面部骨骼匹配。
右眼骨骼FACIAL_R_Eye右眼骨骼名称。与标准的 MetaHuman 面部骨骼匹配。
校准(仅曲线模式)

这些值定义了头部空间角度如何映射到 MetaHuman 面部控制骨骼的眼睛注视曲线值。默认值已针对标准 MetaHuman 面部控制骨骼进行调整,很少需要更改。

属性默认值描述
每单位曲线偏航角度30°映射到偏航注视曲线值为 1.0 的角度。
每单位曲线俯仰角度25°映射到俯仰注视曲线值为 1.0 的角度。

与唇形同步和其他动画结合

这两个辅助工具旨在与插件的唇形同步节点以及您已有的任何自定义面部动画共存。一般规则:将眼睛注视和控制骨骼(自动眨眼)节点放置在唇形同步和任何自定义面部动画之后,这样它们的值就不会被下游覆盖。

查看详细执行流程图(曲线模式 vs. 骨骼模式)

根据您的 MetaHuman 骨骼是使用推荐的曲线模式还是备用的骨骼模式,执行逻辑的放置位置将会改变。展开下面的图表以查看两种管线的确切执行顺序:

自动眨眼和口型同步在两种模式下仍然存在于常规的 Face AnimBP 中。

关于与身体动画分层的详细信息,请参阅与现有动画结合

注意事项与限制

这些辅助工具是 MetaHuman 专属的。它们依赖于标准的 MetaHuman 面部 Control Rig 曲线名称(CTRL_L_eye_blinkCTRL_R_eye_blinkCTRL_expressions_eyeLook*)以及标准的眼部骨骼(FACIAL_L_EyeFACIAL_R_Eye)。它们不适用于自定义的非 MetaHuman 角色。

需要帮助?

Join our Discord
online · support

对于定制开发需求,请联系 [email protected]