跳至主要内容

眼部動畫輔助工具

除了口型同步之外,Runtime MetaHuman Lip Sync 外掛程式還包含兩個用於動畫 MetaHuman 眼睛的選用輔助工具:

  • 自動眨眼:一個輔助工具,可在 MetaHuman 上產生自然、隨機的眼睛眨眼
  • 眼睛注視:一個 Animation Blueprint 節點,可讓 MetaHuman 的眼睛注視世界空間中的某個位置

這些功能完全獨立於口型同步,可單獨使用、搭配使用,或與口型同步節點結合使用。它們旨在作為輕量級、即插即用的輔助工具,用於添加逼真的眼部行為,而無需手動製作。

功能預覽

自動眨眼:自動眼睛眨動
眼睛瞄準:追蹤玩家攝影機
眼睛瞄準:跟隨移動中的目標角色

影片逐步解說

兩個輔助工具的完整逐步解說,包括舊版骨架的因應做法。

何時使用這些輔助工具

如果您的臉部動畫流程已經包含眨眼和動態視線,您可以跳過此頁面。這些輔助工具是為了在您希望獲得逼真眼部行為、但不想自行製作的場景而存在,例如當您的動畫序列不包含眨眼時,或當您需要眼睛動態跟隨移動目標時(這是靜態動畫序列無法做到的)。它們也可以疊加在現有的臉部動畫之上,以補足缺少的部分,例如在僅動畫化嘴巴的序列上加入眨眼。

自動眨眼輔助工具透過驅動 MetaHuman Face Control Rig 的 CTRL_L_eye_blinkCTRL_R_eye_blink 曲線,產生隨機且自然的眨眼效果。

運作方式

每一幀,您從 Face Animation Blueprint 的 Event Graph 呼叫 Update MetaHuman Auto Blink,並傳入該幀的 delta time。此函式會:

  1. 追蹤每個角色的狀態(下次眨眼時間、目前張開/閉合的階段等),並以呼叫的 AnimInstance 作為鍵值
  2. 回傳兩個 0..1 範圍內的浮點數值,一個代表左眼,一個代表右眼,表示目前每隻眼睛的閉合程度
  3. 接著,您將這些數值儲存在 Blueprint 變數中,並將它們輸入到 Anim Graph 中的 Control Rig 節點

設定

**兩個步驟:**先將眨眼呼叫加入你的事件圖表(Event Graph),然後在動畫圖表(Anim Graph)中將數值饋入控制綁定(Control Rig)節點。

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

  1. 呼叫 Update MetaHuman Auto Blink
  2. Delta Time X(來自事件)連接到 Delta Seconds
  3. (可選)設定 Config 結構。預設值看起來已經很自然
  4. Left Blink ValueRight Blink Value 提升為 Blueprint 變數(例如 LeftBlinkValueRightBlinkValue

Auto Blink Event Graph setup

在同一個動畫藍圖的動畫圖表中:

  1. 放置一個 Control Rig 節點來驅動眨眼曲線。它的確切位置取決於你是否要將 Auto Blink 與其他臉部動畫(如口型同步、自訂序列等)結合使用:
    • 無其他臉部動畫: 將 Control Rig 節點直接放在主鏈中,位於 Output Pose 之前。
    • 結合唇形同步及/或其他臉部動畫: 將此 Control Rig 節點連接到 Layered blend per bone 節點,而非直接放在鏈中,請參閱下方提示。
  2. 在節點的詳細資訊面板中,將控制綁定類別(在UE 5.8+中為控制綁定資產參考)設定為您的MetaHuman臉部控制綁定。路徑通常為
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • 您的專案路徑可能會因 MetaHuman 的匯入方式而有所不同。
  3. Details面板中,展開Input區段,並為以下項目啟用Use Pin
    • 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

位置安排至關重要。

若您未與其他臉部動畫結合使用,請將 Control Rig 節點放置在唇形同步混合節點(及其他任何臉部動畫節點)之後的鏈條中,以免眨眼數值被覆寫。若您確實要與唇形同步或其他臉部動畫結合使用,請遵循與既有動畫結合指南,改將此 Control Rig 節點連接到 Layered blend per bone 節點的 Base Pose 輸入端,分層混合節點能同時保留兩者,而非讓其中一方單純覆寫另一方。

設定

Update MetaHuman Auto Blink 節點接受一個可選的 Config 結構體。預設值對大多數角色來說看起來已經很自然,如果您想調整行為,請展開以下內容。

設定屬性

時間安排

屬性預設值說明
眨眼最小間隔時間2.0 秒眼睛完全睜開時,兩次眨眼之間的最小間隔時間。
眨眼最大間隔時間4.0 秒兩次眨眼之間的最大間隔時間。實際間隔會在最小與最大值之間隨機決定。
閉眼最短持續時間0.04 秒眼睛保持完全閉合的最短時間。
閉眼最長持續時間0.08 秒眼睛保持完全閉合的最長時間。

插值

屬性預設值說明
閉眼插值速度35.0閉眼時的速度。人類閉眼的速度比睜眼快,因此此值刻意高於睜眼速度。
睜眼插值速度18.0睜眼時的速度。
閉合閾值0.97眨眼被視為「完全閉合」並開始進入保持階段的值。
睜開閾值0.02眨眼被視為「完全睜開」並排定下一次眨眼的值。

雜項

屬性預設值說明
獨立眼睛falsetrue 時,左右眼會以各自的時間獨立眨眼。當 false(預設值)時,雙眼會完全同步眨眼。
bEnabled(函式引腳)truefalse 時,眼睛會緩緩張開並暫停眨眼。適用於過場動畫、睡眠、死亡等情境。

執行階段控制

您也可以呼叫 Reset Auto Blink State 來明確清除指定 AnimInstance 的內部狀態(例如在角色重生或切換過場動畫狀態時)。

眼睛瞄準

「眼睛注視」輔助工具是一個動畫藍圖節點Runtime MetaHuman Eyes Aim),可讓角色的眼睛追蹤世界空間中的某個位置,例如玩家攝影機、其他角色,或任何移動中的目標。它支援偏航/俯仰角限制、平滑處理、當目標經過頭部後方時的抗翻轉保護,以及可選的微跳視(micro-saccades)以增加真實感。

選擇模式

此節點支援兩種模式,可透過節點「詳細資訊」面板中的模式下拉選單進行選擇:

Mode它驅動的內容放置位置
曲線(預設)臉部控制綁定(Control Rig)的眼部注視曲線(CTRL_expressions_eyeLook*臉部動畫藍圖(例如 Face_AnimBP)中,位於控制綁定(Control Rig)節點之前
骨骼直接驅動 FACIAL_L_Eye / FACIAL_R_Eye 骨骼,繞過控制綁定(Control Rig)臉部後處理動畫藍圖(例如 Face_PostProcess_AnimBP)中,位於 AnimNode_RigLogic 節點之後

曲線模式是建議的預設選項。它能與其他基於曲線的臉部系統(如口型同步、表情、ARKit 混合變形等)乾淨地組合,因為數值是透過正常的 Control Rig 評估來結合,而非爭奪骨骼變換。

當曲線模式無法運作時,請使用骨骼模式。

在某些 MetaHuman 變體(尤其是較舊的骨架,包括一些透過 Quixel Bridge 下載的)上,視線曲線實際上並不會驅動眼睛。可見的症狀是,當 Curves 模式節點啟用時,眼睛會向下看,瞳孔幾乎被隱藏,無論目標位置為何。

如果您看到這個,請切換到 Bones 模式。Bones 模式會直接旋轉眼球骨骼,因此無論 Control Rig 如何接線,它都能適用於所有 MetaHuman 變體。請參閱下方 設定 中的 Bones 標籤。

設定

預設設定。該節點位於標準的臉部動畫藍圖中,並驅動臉部控制綁定的眼神注視曲線。

兩個步驟: 將節點加入你的動畫圖表(Anim Graph),然後從事件圖表(Event Graph)提供目標位置給它。

1. 動畫圖表:新增節點

在您的臉部動畫藍圖的動畫圖表中:

  1. 新增一個 Runtime MetaHuman Eyes Aim 節點
  2. 在 Details 面板中,將 Mode 保持設定為 Curves
  3. 將它放置在所有其他可能寫入眼睛注視曲線的臉部邏輯(唇形同步、自訂動畫等)之後,此原則與 Auto Blink Control Rig 節點相同
  4. 將現有的姿勢連接到 Source Pose
  5. 將輸出連接到鏈中的下一個節點(或 Output Pose
  6. 建立一個 Vector Blueprint 變數(例如 TargetWorldLocation),並將其連接到節點的 Target World Location 接腳。您將在下一步中從 Event Graph 更新此變數。

Eyes Aim Anim Graph setup

2. 事件圖表:輸入目標位置

目標世界位置(Target World Location)接腳預期接收世界空間的 FVector。常見的情況是讓 MetaHuman 注視玩家攝影機。在事件藍圖更新動畫(Event Blueprint Update Animation)中:

  1. 取得玩家攝影機管理員(玩家索引 0)
  2. 檢查是否有效
  3. 若有效,呼叫取得攝影機位置
  4. 將其儲存在 TargetWorldLocation 藍圖變數中

Eyes Aim, tracking the camera

若要改為追蹤任意Actor(NPC、物品、興趣點),請在每一幀取得該Actor的位置,並將其儲存在同一個變數中。若要設定固定的凝視點,請在節點的Details面板中,將Target World Location設定一次或設為常數。

設定

所有設定都顯示在 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 臉部 CR 的眼部注視曲線值。預設值已針對標準 MetaHuman 臉部 CR 進行調校,通常無需更改。

屬性預設值說明
偏航角每單位曲線度數30°對應於偏航注視曲線值 1.0 的角度。
俯仰角每單位曲線度數25°對應於俯仰注視曲線值 1.0 的角度。

結合口型同步與其他動畫

這兩個輔助工具皆設計為可與外掛的嘴型同步節點,以及您既有的任何自訂臉部動畫共存。

  • Eyes Aim 應放置在唇形同步及同一鏈條中任何自訂臉部動畫之後,這樣其眼部注視數值才不會在下游被覆寫。請參閱上方選擇模式設定
  • Auto Blink 使用 Layered blend per bone 節點而非簡單的線性放置方式,關於如何將 Control Rig 節點接入其 Base Pose 輸入,請參閱上方放置位置很重要的提示。
查看詳細執行流程圖(曲線模式 vs. 骨骼模式)

根據您的 MetaHuman 綁定使用的是建議的 Curves 模式 還是備用的 Bones 模式,執行邏輯的放置位置會有所不同。展開下方圖表,即可查看兩種管線的完整執行順序:

自動眨眼與口型同步在兩種模式下仍位於一般的 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]