眼部動畫輔助工具
除了唇形同步之外,Runtime MetaHuman Lip Sync 外掛程式還包含兩個可選的輔助工具,用於為 MetaHuman 製作眼部動畫:
- Auto Blink:一個輔助工具,可在 MetaHuman 上產生自然、隨機的眨眼動作
- Eyes Aim:一個動畫藍圖節點,可讓 MetaHuman 的眼睛注視世界空間中的某個位置
這些功能完全獨立於唇形同步,可以單獨使用、一起使用,或與唇形同步節點結合使用。它們被設計為輕量級、即插即用的輔助工具,用於添加逼真的眼部行為,而無需手動製作。
功能預覽
如果您的臉部動畫流程已包含眨眼和動態注視,則可以跳過此頁面。這些輔助工具適用於您希望獲得逼真眼部行為,但無需自行創建的情況,例如,當您的動畫序列不包含眨眼,或需要眼睛動態跟隨移動目標(靜態動畫序列無法做到)時。它們也可以疊加在現有臉部動畫之上,以添加缺失的部分,例如在僅動畫化嘴巴的序列上添加眨眼。
自動眨眼
自動眨眼輔助工具通過驅動 MetaHuman 臉部控制骨骼的 CTRL_L_eye_blink 和 CTRL_R_eye_blink 曲線,產生隨機、自然的眨眼效果。
運作原理
每一影格,您從臉部動畫藍圖的事件圖表中呼叫 Update MetaHuman Auto Blink,並傳入該影格的 Delta 時間。該函數會:
- 追蹤每個角色的狀態(下次眨眼時間、當前睜開/閉合階段等),並以呼叫的
AnimInstance作為鍵值 - 返回兩個 0..1 範圍內的浮點數值,分別代表左眼和右眼當前的閉合程度
- 然後您將這些值儲存在藍圖變數中,並在動畫圖表中將其饋入控制骨骼節點
設定
兩個步驟: 在事件圖表中添加眨眼呼叫,然後在動畫圖表中將數值饋入控制骨骼節點。
1. 事件圖表:每影格驅動眨眼數值
在您的臉部動畫藍圖(例如 Face_AnimBP 或您複製/拷貝的版本,請參閱設定指南)中,打開事件圖表並在 Event Blueprint Update Animation 中添加以下內容:
- 呼叫
Update MetaHuman Auto Blink - 將Delta Time X(來自事件)連接到Delta Seconds
- (可選)配置 Config 結構體。預設值看起來已經很自然
- 將左眼眨眼數值和右眼眨眼數值提升為藍圖變數(例如
LeftBlinkValue、RightBlinkValue)

2. 動畫圖表:將數值饋入臉部控制骨骼
在同一個動畫藍圖的動畫圖表中:
- 在所有其他可能寫入眨眼曲線的臉部邏輯之後(例如在
Blend Runtime MetaHuman Lip Sync和任何自訂臉部動畫層之後)放置一個控制骨骼節點 - 在節點的詳細資訊面板中,將控制骨骼類別設定為您的 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

將控制骨骼節點放置在唇形同步混合節點之後(以及任何其他臉部動畫節點),這樣眨眼數值就不會被其他邏輯覆蓋。
配置
Update MetaHuman Auto Blink 節點接受一個可選的 Config 結構體。預設值對大多數角色來說已經很自然,如果您想調整行為,請展開下方內容。
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. 動畫圖表:添加節點
在您的臉部動畫藍圖的動畫圖表中:
- 添加一個
Runtime MetaHuman Eyes Aim節點 - 在詳細資訊面板中將模式保持設定為曲線
- 將其放置在所有其他可能寫入眼部注視曲線的臉部邏輯之後(唇形同步、自訂動畫等),原則與自動眨眼控制骨骼節點相同
- 將現有姿勢連接到來源姿勢
- 將輸出連接到鏈中的下一個節點(或
輸出姿勢) - 創建一個
Vector藍圖變數(例如TargetWorldLocation)並將其連接到節點的目標世界位置引腳。您將在下一步中從事件圖表更新此變數。

2. 事件圖表:提供目標位置
目標世界位置引腳期望一個世界空間的 FVector。一個常見的情況是讓 MetaHuman 看著玩家攝影機。在 Event Blueprint Update Animation 中:
- 獲取玩家攝影機管理器(玩家索引 0)
- 檢查是否有效
- 如果有效,呼叫獲取攝影機位置
- 將其儲存在
TargetWorldLocation藍圖變數中

要追蹤任意演員(NPC、物品、興趣點),請改為每影格獲取該演員的位置並儲存在同一個變數中。對於固定的注視點,請在節點的詳細資訊面板中一次性設定目標世界位置或將其作為常數。
如果曲線模式方法對您的 MetaHuman 變體無效(請參閱上面的警告),請使用此設定。在骨骼模式下,該節點直接旋轉眼部骨骼,並且必須在控制骨骼完成評估之後運行,這意味著它屬於臉部後處理動畫藍圖,而不是常規的臉部動畫藍圖。
三個步驟: 找到臉部後處理動畫藍圖,在 RigLogic 之後添加節點,然後從該藍圖的事件圖表中提供目標位置。
1. 找到臉部後處理動畫藍圖
- 打開您的 MetaHuman 的臉部網格體資產(例如,在您的 MetaHuman 資料夾下的
Face) - 在資產的詳細資訊面板中,找到後處理動畫藍圖欄位
- 打開該資產,它通常命名為類似
Face_PostProcess_AnimBP
2. 動畫圖表:在 RigLogic 之後添加節點
在臉部後處理動畫藍圖的動畫圖表中:
- 找到現有的
AnimNode_RigLogic節點(它將臉部控制骨骼曲線轉換為骨骼變換) - 在
AnimNode_RigLogic之後和Output Pose之前添加一個Runtime MetaHuman Eyes Aim節點 - 在節點的詳細資訊面板中,將模式設定為骨骼
- 將
AnimNode_RigLogic連接到眼睛注視節點的來源姿勢 - 將眼睛注視節點的輸出連接到
Output Pose - 在此後處理動畫藍圖中創建一個
Vector藍圖變數(例如TargetWorldLocation)並將其連接到節點的目標世界位置引腳

預設的骨骼引用(FACIAL_L_Eye 和 FACIAL_R_Eye)與標準的 MetaHuman 臉部骨架匹配。如果您的角色使用具有不同眼部骨骼名稱的自訂骨架,請在節點詳細資訊面板的骨骼類別下覆蓋它們。
3. 事件圖表:提供目標位置
由於該節點位於後處理動畫藍圖中,目標位置邏輯也必須位於此藍圖的事件圖表中,而不是 Face_AnimBP 中。設定與曲線模式相同(獲取攝影機位置、演員位置或使用常數),只是在 Face_PostProcess_AnimBP 內部執行。

任何不相關的邏輯(唇形同步、自動眨眼等)可以保留在常規的臉部動畫藍圖中。只有眼睛注視的目標位置計算需要移到這裡。 臉部控制骨骼會根據其曲線每影格強制驅動眼部骨骼。如果眼睛注視節點在常規的臉部動畫藍圖中運行(在控制骨骼之前),控制骨骼隨後會覆蓋骨骼旋轉。後處理動畫藍圖在控制骨骼產生最終骨骼變換之後運行,因此它是應用需要「勝出」的最終骨骼旋轉的正確位置。為什麼骨骼模式需要後處理動畫藍圖?
配置
所有設定都暴露在 Runtime MetaHuman Eyes Aim 節點的詳細資訊面板上。
瞄準與限制
平滑與掃視
骨骼(僅限骨骼模式)
| 屬性 | 預設值 | 描述 |
|---|---|---|
| 左眼骨骼 | 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_blink、CTRL_R_eye_blink、CTRL_expressions_eyeLook*)以及標準的眼部骨骼(FACIAL_L_Eye、FACIAL_R_Eye)。它們不適用於自訂的非 MetaHuman 角色。
需要協助?
如需客製化開發需求,請聯絡 [email protected]。