跳到主要内容

眼部动画辅助工具

除了唇形同步功能外,Runtime MetaHuman Lip Sync 插件还包含两个用于驱动 MetaHuman 眼部动画的可选辅助工具:

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

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

功能预览

自动眨眼:自动眼部眨眼
视线瞄准:追踪玩家摄像机
眼睛瞄准:跟随移动的目标角色

视频演示

两个辅助工具的完整演练,包括旧版控制器的变通方案。

何时使用这些辅助工具

如果你的面部动画管线已经包含眨眼和动态视线,可以跳过本页。这些辅助工具适用于以下场景:你希望实现逼真的眼部行为但不想自行制作,例如动画序列未包含眨眼动作,或需要眼睛动态追踪移动目标(静态动画序列无法实现)。它们也可以叠加在现有面部动画之上,补充缺失的细节,比如在仅驱动嘴部动画的序列上添加眨眼效果。

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

工作原理

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

  1. 按调用方 AnimInstance 键控的每个角色状态轨迹(下次眨眼时间、当前开合阶段等)
  2. 返回两个 0..1 范围内的浮点值,分别对应左眼和右眼,表示每只眼睛当前的闭合程度
  3. 随后将这些值存储在蓝图变量中,并输入到动画图表中的 控制绑定 节点

设置

两步操作: 先在事件图表中添加眨眼调用,然后在动画图表中将数值输入控制绑定节点。

在你的面部动画蓝图(例如 Face_AnimBP 或你复制/创建的版本,参见设置指南)中,打开事件图表,并在事件蓝图更新动画中添加以下内容:

  1. 调用 更新元人类自动眨眼
  2. Delta Time X(来自事件)连接到 Delta Seconds
  3. (可选)配置 Config 结构体。默认设置已足够自然
  4. 左眨眼值右眨眼值 提升为蓝图变量(例如 LeftBlinkValueRightBlinkValue

Auto Blink Event Graph setup

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

  1. 在所有可能写入眨眼曲线的面部逻辑之后(例如在Blend Runtime MetaHuman Lip Sync和任何自定义面部动画层之后)放置一个控制绑定节点
  2. 在节点的详细信息面板中,将控制绑定类(在UE 5.8+中为控制绑定资产引用)设置为你的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

Auto Blink Anim Graph setup

放置位置至关重要

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

配置

更新 MetaHuman 自动眨眼节点接受一个可选的 配置 结构体。默认设置对大多数角色来说已经足够自然,如需调整行为,请展开下方内容。

配置属性

时序

属性默认描述
眨眼最小间隔时间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),用于让角色的眼睛追踪世界空间中的某个位置,例如玩家摄像机、其他角色或任何移动目标。它支持偏航/俯仰角度限制、平滑过渡、目标经过头部后方时的防翻转保护,以及可选的微扫视功能以增强真实感。

选择模式

该节点支持两种模式,可通过节点详情面板中的模式下拉菜单进行选择:

Mode驱动对象放置位置
曲线(默认)面部控制绑定中的视线曲线(CTRL_expressions_eyeLook*面部动画蓝图(例如 Face_AnimBP)中,控制绑定节点之前
骨骼直接绕过控制骨骼(Control Rig),使用 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. 创建一个 向量 蓝图变量(例如 目标世界位置),并将其连接到节点的 目标世界位置 引脚。你将在下一步的事件图表中更新此变量。

Eyes Aim Anim Graph setup

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

目标世界位置引脚期望一个世界空间中的 FVector。常见情况是让 MetaHuman 注视玩家摄像机。在事件蓝图更新动画中:

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

Eyes Aim, tracking the camera

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

配置

所有设置均暴露在Runtime MetaHuman Eyes Aim节点的详细信息面板中。

瞄准与限制

瞄准

属性默认描述
Mode曲线选择眼睛驱动方式。请参阅选择模式
目标世界位置(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的角度。

结合口型同步与其他动画

两个辅助工具旨在与插件的口型同步节点以及您已有的任何自定义面部动画共存。通用规则是:将视线目标和控制绑定(自动眨眼)节点放置在口型同步及任何自定义面部动画之后,这样它们的数值就不会被下游覆盖。

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

根据您的 MetaHuman 绑定使用的是推荐的曲线模式还是备用的骨骼模式,执行逻辑的放置位置会有所不同。展开下方图表,查看两种管线的具体执行顺序:

自动眨眼和口型同步在两种模式下仍位于常规面部动画蓝图(Face AnimBP)中。

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

注意事项与限制

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

需要帮助吗?

Join our Discord
online · support

如需定制开发,请联系 [email protected]