眼部动画辅助工具
除了唇形同步功能外,Runtime MetaHuman Lip Sync 插件还包含两个用于驱动 MetaHuman 眼部动画的可选辅助工具:
- 自动眨眼:一个辅助工具,可在 MetaHuman 上生成自然、随机的眨眼动作
- 视线追踪:一个动画蓝图节点,使 MetaHuman 的眼睛注视世界空间中的某个位置
这些功能完全独立于口型同步,可单独使用、组合使用,或与口型同步节点配合使用。它们旨在作为轻量级即插即用辅助工具,用于添加逼真的眼部行为,无需手动制作。
功能预览
视频演示
两个辅助工具的完整演练,包括旧版控制器的变通方案。
如果你的面部动画管线已经包含眨眼和动态视线,可以跳过本页。这些辅助工具适用于以下场景:你希望实现逼真的眼部行为但不想自行制作,例如动画序列未包含眨眼动作,或需要眼睛动态追踪移动目标(静态动画序列无法实现)。它们也可以叠加在现有面部动画之上,补充缺失的细节,比如在仅驱动嘴部动画的序列上添加眨眼效果。
自动眨眼
自动眨眼辅助工具通过驱动 MetaHuman 面部控制骨骼的 CTRL_L_eye_blink 和 CTRL_R_eye_blink 曲线,生成随机且自然的眨眼动作。
工作原理
每一帧,你都需要从面部动画蓝图的事件图表中调用 Update MetaHuman Auto Blink,并传入该帧的增量时间。该函数:
- 按调用方
AnimInstance键控的每个角色状态轨迹(下次眨眼时间、当前开合阶段等) - 返回两个 0..1 范围内的浮点值,分别对应左眼和右眼,表示每只眼睛当前的闭合程度
- 随后将这些值存储在蓝图变量中,并输入到动画图表中的 控制绑定 节点
设置
两步操作: 先在事件图表中添加眨眼调用,然后在动画图表中将数值输入控制绑定节点。
1. 事件图表:每帧驱动眨眼数值
在你的面部动画蓝图(例如 Face_AnimBP 或你复制/创建的版本,参见设置指南)中,打开事件图表,并在事件蓝图更新动画中添加以下内容:
- 调用
更新元人类自动眨眼 - 将 Delta Time X(来自事件)连接到 Delta Seconds
- (可选)配置 Config 结构体。默认设置已足够自然
- 将 左眨眼值 和 右眨眼值 提升为蓝图变量(例如
LeftBlinkValue、RightBlinkValue)

2. 动画图表:将值输入面部控制绑定
在同一个动画蓝图的动画图表中:
- 在所有可能写入眨眼曲线的面部逻辑之后(例如在
Blend Runtime MetaHuman Lip Sync和任何自定义面部动画层之后)放置一个控制绑定节点 - 在节点的详细信息面板中,将控制绑定类(在UE 5.8+中为控制绑定资产引用)设置为你的MetaHuman面部控制绑定。路径通常为:
/All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig- 根据 MetaHuman 的导入方式,您的项目路径可能有所不同。
- 在细节面板中,展开输入部分,为以下项启用使用引脚:
CTRL_L_eye_blinkCTRL_R_eye_blink
- 将你的
LeftBlinkValue变量连接到CTRL_L_eye_blink - 将你的
RightBlinkValue变量连接到CTRL_R_eye_blink

将控制绑定节点放置在唇形同步混合节点(以及任何其他面部动画节点)之后,以确保眨眼值不会被其他逻辑覆盖。
配置
更新 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. 动画图表:添加节点
在你的面部动画蓝图的动画图表中:
- 添加一个
Runtime MetaHuman Eyes Aim节点 - 在细节面板中将 模式 保持设置为 曲线
- 将其放置在所有可能写入眼部注视曲线的面部逻辑(如口型同步、自定义动画等)之后,原理与自动眨眼控制绑定节点相同
- 将现有姿势连接到 源姿势
- 将输出连接到链条中的下一个节点(或
输出姿势) - 创建一个
向量蓝图变量(例如目标世界位置),并将其连接到节点的 目标世界位置 引脚。你将在下一步的事件图表中更新此变量。

2. 事件图表:输入目标位置
目标世界位置引脚期望一个世界空间中的 FVector。常见情况是让 MetaHuman 注视玩家摄像机。在事件蓝图更新动画中:
- 获取玩家摄像机管理器(玩家索引 0)
- 检查是否有效
- 如果有效,调用获取摄像机位置
- 将其存储到
TargetWorldLocation蓝图变量中

若要追踪任意角色(NPC、物品、兴趣点),请每帧获取该角色的位置并存储到同一变量中。对于固定注视点,可在节点的细节面板中一次性设置目标世界位置,或将其设为常量。
如果曲线模式的方法不适用于您的 MetaHuman 变体(请参阅上述警告),请使用此设置。在骨骼模式下,该节点直接旋转眼部骨骼,并且必须在控制绑定完成评估之后运行,这意味着它应归属于面部后处理动画蓝图,而非常规的面部动画蓝图。
三个步骤: 找到后期处理动画蓝图,在RigLogic之后添加节点,然后从该蓝图的事件图表中为其提供目标位置。
1. 定位面部后期处理动画蓝图
- 打开你的 MetaHuman 的面部骨骼网格体资源(例如,在你的 MetaHuman 文件夹下的
Face) - 在该资源的细节面板中,找到后期处理动画蓝图字段
- 打开该资源,它通常命名为类似
Face_PostProcess_AnimBP的形式
2. 动画图:在 RigLogic 之后添加节点
在面部后处理动画蓝图(Face Post Process Anim BP)的动画图表中:
- 找到现有的
AnimNode_RigLogic节点(它将面部控制装备曲线转换为骨骼变换) - 在
AnimNode_RigLogic之后、Output Pose之前添加一个Runtime MetaHuman Eyes Aim节点 - 在节点的细节面板中,将 模式 设置为 骨骼
- 将
AnimNode_RigLogic连接到眼睛瞄准节点的 源姿势 - 将眼睛瞄准节点的输出连接到
Output Pose - 在此后期处理动画蓝图中创建一个
Vector蓝图变量(例如TargetWorldLocation),并将其连接到节点的 目标世界位置 引脚

默认骨骼引用(FACIAL_L_Eye 和 FACIAL_R_Eye)与标准 MetaHuman 面部骨骼相匹配。如果角色使用自定义骨骼且眼部骨骼名称不同,可在节点的细节面板中,于骨骼类别下覆盖这些引用。
3. 事件图表:输入目标位置
由于该节点位于后处理动画蓝图(Post Process Anim BP)中,目标位置逻辑也必须位于该蓝图的事件图表(Event Graph)内,而非 Face_AnimBP 中。其设置与曲线模式(Curves mode)完全相同(获取摄像机位置、某个Actor的位置,或使用常量),只需在 Face_PostProcess_AnimBP 内部执行即可。

任何无关的逻辑(如口型同步、自动眨眼等)可以保留在常规的面部动画蓝图(Face AnimBP)中。只有眼睛注视目标位置的计算需要移到这里。 面部控制绑定会基于其曲线每帧强制驱动眼部骨骼。如果常规面部动画蓝图(在控制绑定之前)中运行了"眼部瞄准"节点,控制绑定随后会覆盖骨骼旋转。后处理动画蓝图在控制绑定生成最终骨骼变换之后运行,因此它是应用需要"胜出"的最终骨骼旋转的正确位置。为什么骨骼模式需要后处理动画蓝图?
配置
所有设置均暴露在Runtime MetaHuman Eyes Aim节点的详细信息面板中。
瞄准与限制
平滑处理与扫视
骨骼(仅限骨骼模式)
| 属性 | 默认 | 描述 |
|---|---|---|
| 左眼骨骼 | FACIAL_L_Eye | 左眼骨骼名称。与标准MetaHuman面部骨骼匹配。 |
| 右眼骨骼 | FACIAL_R_Eye | 右眼骨骼名称。与标准MetaHuman面部骨骼匹配。 |
校准(仅限曲线模式)
这些值定义了头部空间角度如何映射到 MetaHuman 面部控制绑定的视线曲线值。默认设置针对标准 MetaHuman 面部控制绑定进行了优化,通常无需修改。
| 属性 | 默认 | 描述 |
|---|---|---|
| 每单位曲线的偏航角度 | 30° | 映射到偏航视角曲线值为1.0的角度。 |
| 每单位曲线的音高角度 | 25° | 映射到俯仰视角曲线值为1.0的角度。 |
结合口型同步与其他动画
两个辅助工具旨在与插件的口型同步节点以及您已有的任何自定义面部动画共存。通用规则是:将视线目标和控制绑定(自动眨眼)节点放置在口型同步及任何自定义面部动画之后,这样它们的数值就不会被下游覆盖。
查看详细执行流程图(曲线模式与骨骼模式)
根据您的 MetaHuman 绑定使用的是推荐的曲线模式还是备用的骨骼模式,执行逻辑的放置位置会有所不同。展开下方图表,查看两种管线的具体执行顺序:
自动眨眼和口型同步在两种模式下仍位于常规面部动画蓝图(Face AnimBP)中。
关于身体动画的分层细节,请参阅与现有动画结合。
注意事项与限制
这些辅助工具是 MetaHuman 专属的。它们依赖于标准的 MetaHuman 面部控制绑定曲线名称(CTRL_L_eye_blink、CTRL_R_eye_blink、CTRL_expressions_eyeLook*)以及标准的眼部骨骼(FACIAL_L_Eye、FACIAL_R_Eye)。它们不适用于自定义的非 MetaHuman 角色。
需要帮助吗?
如需定制开发,请联系 [email protected]。