```html

Phone Video → Facial Blendshapes → Blender

從影片進行臉部動作捕捉:QuickMagic 手機動態捕捉指南

在一般智慧型手機上錄製臉部表演,使用 QuickMagic 提取 blendshape 動畫,將 ARKit 風格頻道重新導向至 Blender 角色,校正表情範圍與抖動,並將結果傳送至 Maya、Unreal Engine 或 Unity。

2025 年 3 月 28 日發布 · 2026 年 7 月 15 日更新 · QuickMagic 編輯團隊

原始的 QuickMagic 臉部動作捕捉教學封面,顯示手機影片與 Blender 臉部動畫
原始文章封面已壓縮並直接嵌入此 HTML 檔案中。
直接回答: 將手機放在眼睛高度,緊密框住臉部,使用柔和均勻的光線,從中性表情開始,錄製一段簡短的表演。將原始影片上傳至 QuickMagic,選擇方案提供的臉部或 OnlyFace 工作流程,檢查眨眼、下巴以及左右表情,匯出臉部動畫,匯入 Blender,並透過驅動器或明確對應將來源 blendshape 值連接到目標角色的形狀鍵。

當前工作流程的事實

捕捉硬體一般 RGB 手機影片
深度感應器QuickMagic 影片輸入不需要
免費方案30 秒上限及 FBX 格式
Only Face 格式列於 Starter 與 Professional 方案
目標需求Blend shapes、臉部關節或對應的控制項
核心轉移方法頻道對應 + 範圍重新對應
對原始文章的修正: 目前的免費方案列出 30 秒限制而非 60 秒,且 Only Face 列於 Starter 與 Professional 方案格式中,而非當前免費方案的格式清單。文章也描述 Human Generator 角色會自動準備好進行直接的 QuickMagic 轉移;在實際製作中,請驗證已安裝的附加元件版本中確切的形狀鍵名稱、範圍與轉移功能。

觀看原始臉部捕捉教學

手機影片到 Blender 臉部動態捕捉

示範原始的手機影片、QuickMagic 與 Blender 臉部動態捕捉工作流程。

在 YouTube 上開啟影片

QuickMagic AI + Blender Human Generator 臉部動畫

展示使用 Human Generator 的選用付費 Blender 角色工作流程。

在 YouTube 上開啟影片

兩個播放器均使用靜態 YouTube iframe,無需執行階段 JavaScript。若瀏覽器、地區、網路或本地檔案檢視器封鎖嵌入播放,請使用紅色直接連結按鈕。所有文章圖片均嵌入在此 HTML 檔案中。

臉部動態捕捉產出什麼

臉部動態捕捉將可見的表情轉換為隨時間變化的控制項。在 blendshape 工作流程中,每個控制項代表一個動作,例如張開下巴、閉合眼皮、揚起眉毛、抿唇或鼓頰。動畫是一系列隨時間變化的係數值,而非最終的角色網格。

Apple 將 ARKit 臉部表情記錄為一組命名係數的字典,這些係數對應特定的臉部特徵動作。這些係數可以驅動 2D 或 3D 角色。QuickMagic 的 OnlyFace 文件描述了與 ARKit 相容的 52 個 blendshape 工作流程。

與 ARKit 相容不等於每個臉部角色都能即插即用。 角色可能使用相同名稱,但需要不同的倍數、限制或校正形狀。風格化角色通常需要刻意非線性的反應曲線。

1錄製可追蹤的手機表演

手機臉部捕捉設定,顯示相機位置、構圖與光線
穩定、清晰的 RGB 影片即足以支援 QuickMagic 工作流程。不需要深度硬體,雖然基於深度的系統是其他管線中的另一種捕捉選項。
  • 將手機放在眼睛高度並保持穩定。
  • 構圖時讓眉毛、下巴和臉頰兩側都保持在畫面中。
  • 使用柔和均勻的正面或側前方光線。
  • 從約兩秒的中性表情開始。
  • 做出清晰的眨眼、張嘴、微笑、皺眉、嘟嘴和眉毛動作。
  • 包含左右不對稱的表情以偵測鏡像映射。
  • 盡量減少眼鏡反光、頭髮遮住眼睛、手遮住嘴巴及快速轉頭。
  • 上傳原始相機檔案,而非重新壓縮的社群媒體副本。
錄製選擇建議起始點原因
解析度1080p 或更好(若可用)保留眼睛、嘴唇和眉毛細節
影格率一般表演 30 FPS;快速表情 60 FPS(若方案支援)平衡曲線密度與可見動作細節
鏡頭避免極近的超廣角構圖減少臉部透視變形
頭部移動適中且可控使臉部保持可讀,並將表情與頭部姿勢分開

2在 QuickMagic 中處理並驗證臉部動畫

  1. 登入 QuickMagic 並開啟適用的影片轉動態捕捉工作流程。
  2. 上傳原始手機影片。
  3. 選擇臉部處理或 OnlyFace 格式(若當前方案可用)。
  4. 僅使用所需的影格範圍。
  5. 生成動畫。
  6. 檢視中性臉部、眨眼、張嘴、閉唇、微笑、眉毛及不對稱表情。
  7. 若可見的來源追蹤錯誤,可在支援的付費方案上使用 2D 精煉。
  8. 匯出所需的 FBX/臉部輸出,並保留未更動的來源檔案。
不要給出統一的處理時間,例如「1–3 分鐘」。處理時間會根據佇列優先級、片段長度、選用功能及服務負載而變。

了解來源與目標臉部頻道

QuickMagic ARKit 風格來源頻道對應至目標角色臉部綁定圖
來源提供動畫係數。目標決定這些係數如何變形其臉部。

最小有用的驗證集合

  • jawOpen
  • eyeBlinkLefteyeBlinkRight
  • mouthSmileLeftmouthSmileRight
  • browInnerUp
  • mouthPucker
  • 至少一個臉頰/鼻子表情
  • 眼睛注視頻道(若目標支援)

三種映射情況

來源與目標建議方法
名稱與意義一致建立直接驅動器,然後調整增益與限制。
意義一致但名稱不同建立明確的映射字典。
目標使用關節/控制器透過驅動器、節點或驅動關鍵影格將係數映射到控制器變換或屬性。

3使用內建形狀鍵與驅動器的 Blender 工作流程

Blender 工作流程:從 QuickMagic FBX 匯入到目標形狀鍵驅動器映射與驗證
Blender 將 blend shapes 稱為「形狀鍵」。「驅動器」可以連接來源形狀鍵值與目標形狀鍵值,無需逐一手動複製每個關鍵影格。
  1. 開啟 Blender,選擇 檔案 → 匯入 → FBX
  2. 匯入已啟用動畫的 QuickMagic 臉部 FBX。
  3. 選取來源臉部網格,檢查 物件資料屬性 → 形狀鍵
  4. 在時間軸上拖曳以確認來源形狀鍵值有動畫。
  5. 在同一場景中載入目標角色。
  6. 確認目標包含形狀鍵或其他可控的臉部綁定。
  7. 對每個目標表情,新增一個讀取匹配來源值的驅動器。
  8. 當目標表情過弱或過強時,加入增益、限制或自訂反應曲線。
  9. 在烘焙或刪除來源之前,先測試完整片段。
Blender 目前的 FBX 文件指出,匯入的動作可以連結到物件、骨骼或形狀鍵。務必確認哪個物件/動作接收了曲線,而非假設動畫會自動附加到目標上。

Blender 腳本:為匹配形狀鍵名稱建立驅動器

以下腳本會為每個名稱與來源形狀鍵完全相同的目標形狀鍵建立帶限制的驅動器。執行前請複製 Blender 檔案,並修改兩個物件名稱。

# Blender: create drivers for matching facial shape-key names
# Edit these two object names before running in Blender's Scripting workspace.
import bpy

SOURCE_OBJECT = "QuickMagic_SourceFace"
TARGET_OBJECT = "Target_Character"
GAIN = 1.0

source = bpy.data.objects.get(SOURCE_OBJECT)
target = bpy.data.objects.get(TARGET_OBJECT)

if source is None or target is None:
    raise RuntimeError("Source or target object was not found.")

if not source.data.shape_keys or not target.data.shape_keys:
    raise RuntimeError("Both objects must contain shape keys.")

source_keys = source.data.shape_keys.key_blocks
target_keys = target.data.shape_keys.key_blocks

created = []
skipped = []

for target_key in target_keys:
    name = target_key.name
    if name == "Basis":
        continue
    if source_keys.get(name) is None:
        skipped.append(name)
        continue

    # Remove an existing driver on the target value, if present.
    try:
        target_key.driver_remove("value")
    except TypeError:
        pass

    fcurve = target_key.driver_add("value")
    driver = fcurve.driver
    driver.type = "SCRIPTED"

    variable = driver.variables.new()
    variable.name = "src"
    variable.type = "SINGLE_PROP"
    variable.targets[0].id_type = "KEY"
    variable.targets[0].id = source.data.shape_keys
    escaped = name.replace("\\", "\\\\").replace('"', '\\"')
    variable.targets[0].data_path = f'key_blocks["{escaped}"].value'

    # Clamp to the common 0–1 target range.
    driver.expression = f"min(max(src * {GAIN}, 0.0), 1.0)"
    created.append(name)

print(f"Created {len(created)} drivers.")
print("Skipped unmatched target keys:", skipped)

執行腳本之後

  1. 在時間軸上拖曳以確認目標有動畫。
  2. 檢視印出的未匹配目標鍵清單。
  3. 手動映射不同名稱的頻道。
  4. 在需要的地方修改 GAIN 或個別驅動器運算式。
  5. 仔細測試左右頻道。

選用的 Human Generator 工作流程

Human Generator 是付費的 Blender 角色生成附加元件,並非 QuickMagic 的必要條件。目前市集頁面支援現代 Blender 版本,但購買層級、Blender 相容性與轉移工具應在當前產品頁面上確認。

  1. 透過 Blender 附加元件文件流程安裝 Human Generator。
  2. 建立或載入一個具有臉部形狀鍵系統的角色。
  3. 匯入 QuickMagic 來源 FBX。
  4. 比對來源與目標形狀鍵名稱。
  5. 若附加元件明確支援來源資料,則使用其文件中的轉移功能;否則使用 Blender 驅動器。
  6. 調整目標特定的表情強度與校正形狀。
不要保證每個 Human Generator 角色都自動包含完全相同的來源名稱,或所有頻道都會自動匹配。請驗證已安裝的版本與實際生成的角色。

清理與校準臉部動畫

表情過弱

增加該頻道的增益,或對該特定表情使用較陡的反應曲線。

表情過強或使臉部變形

限制目標值並降低增益。檢查是否有多個形狀疊加。

眨眼不完全

確認影片中眼皮可見,然後調整眨眼增益;若目標眼皮變形不完全,可加入校正形狀。

嘴部同步感覺模糊

保留張開下巴與閉唇動作。避免過度平滑而抹除子音時間點。

左右表情相反

測試單側微笑與眉毛揚起,然後校正鏡像的來源/目標映射。

抖動

僅平滑明顯有雜訊的頻道區間。保留自然的眼球移動、眨眼、說話清晰度與不對稱表演。

在 Maya、Unreal Engine 與 Unity 中使用相同的臉部資料

臉部 blendshape 工作流程目的地:Blender、Maya、Unreal Engine 與 Unity
資料模型在各工具之間相似,但匯入與映射機制不同。

Maya

使用 Connection Editor、驅動關鍵影格或工具/重映射節點,將來源係數連接到目標 Blend Shape 節點權重。使用 Graph Editor 進行校準,並僅在必要時烘焙目標控制項。

Unreal Engine

匯入相關 FBX 時啟用 morph-target 匯入。Unreal 可以在動畫序列中封裝 morph-target 動畫,並暴露個別的 morph 曲線。MetaHuman 的使用需要獨立且相容的曲線映射工作流程。

Unity

Unity 透過 SkinnedMeshRenderer 暴露網格 blend-shape 權重。可以在動畫片段中動畫化它們,或透過腳本在執行階段設定。確認匯入的 FBX 是否包含目標網格所需的曲線。

常見的臉部捕捉問題

問題可能原因建議修正
Only Face 遺失當前免費方案或不受支援的工作流程檢查 Starter/Professional 權限與目前的匯出選單。
Blender 匯入後無形狀鍵動畫曲線連結到另一個物件/動作,或來源佈局不受支援檢查