跳至主要内容

眼部動畫輔助工具

除了唇形同步之外,Runtime MetaHuman Lip Sync 外掛程式還包含兩個可選的輔助工具,用於為 MetaHuman 製作眼部動畫:

  • Auto Blink:一個輔助工具,可在 MetaHuman 上產生自然、隨機的眨眼動作
  • Eyes Aim:一個動畫藍圖節點,可讓 MetaHuman 的眼睛注視世界空間中的某個位置

這些功能完全獨立於唇形同步,可以單獨使用、一起使用,或與唇形同步節點結合使用。它們被設計為輕量級、即插即用的輔助工具,用於添加逼真的眼部行為,而無需手動製作。

功能預覽

自動眨眼:自動眼睛眨動
眼睛注視:追蹤玩家攝影機
眼睛注視:跟隨移動中的目標演員
何時使用這些輔助工具

如果您的臉部動畫流程已包含眨眼和動態注視,則可以跳過此頁面。這些輔助工具適用於您希望獲得逼真眼部行為,但無需自行創建的情況,例如,當您的動畫序列不包含眨眼,或需要眼睛動態跟隨移動目標(靜態動畫序列無法做到)時。它們也可以疊加在現有臉部動畫之上,以添加缺失的部分,例如在僅動畫化嘴巴的序列上添加眨眼。

自動眨眼輔助工具通過驅動 MetaHuman 臉部控制骨骼的 CTRL_L_eye_blinkCTRL_R_eye_blink 曲線,產生隨機、自然的眨眼效果。

運作原理

每一影格,您從臉部動畫藍圖的事件圖表中呼叫 Update MetaHuman Auto Blink,並傳入該影格的 Delta 時間。該函數會:

  1. 追蹤每個角色的狀態(下次眨眼時間、當前睜開/閉合階段等),並以呼叫的 AnimInstance 作為鍵值
  2. 返回兩個 0..1 範圍內的浮點數值,分別代表左眼和右眼當前的閉合程度
  3. 然後您將這些值儲存在藍圖變數中,並在動畫圖表中將其饋入控制骨骼節點

設定

兩個步驟: 在事件圖表中添加眨眼呼叫,然後在動畫圖表中將數值饋入控制骨骼節點。

1. 事件圖表:每影格驅動眨眼數值

在您的臉部動畫藍圖(例如 Face_AnimBP 或您複製/拷貝的版本,請參閱設定指南)中,打開事件圖表並在 Event Blueprint Update Animation 中添加以下內容:

  1. 呼叫 Update MetaHuman Auto Blink
  2. Delta Time 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 結構體。預設值對大多數角色來說已經很自然,如果您想調整行為,請展開下方內容。

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]