FaceNinja

參考 · ARKit · 臉部追蹤

52 個 ARKit 混合變形,展示在真實頭部上。

ARKit 用 52 個混合變形(blendshape)描述一張臉:每個都是 0 到 1 的權重,對應 jawOpen 或 eyeBlinkLeft 這樣的動作。iPhone 的臉部追蹤傳送這些權重,Live Link Face、VTuber 應用程式和遊戲引擎會在任何擁有同樣 52 個形狀的頭部上回放它們。這裡列出每個名稱、它控制的動作,以及一個擁有全部 52 個的頭部。

免費 免費建立帳號,即可下載 20 個高品質的 MetaHuman 範例頭部:4K 皮膚、52 個 ARKit 混合變形、GLB/FBX/MetaHuman ZIP。

全部 52 個,按臉部部位分組

名稱與 Apple 的寫法完全一致。Left 和 Right 指的是這張臉自己的左右,而不是觀看者的左右。

眼睛14 個混合變形

  1. eyeBlinkLeft
    eyeBlinkRight
    閉上眼瞼。
  2. eyeLookDownLeft
    eyeLookDownRight
    眼瞼跟隨向下的視線。
  3. eyeLookInLeft
    eyeLookInRight
    眼瞼跟隨朝向鼻子的視線。
  4. eyeLookOutLeft
    eyeLookOutRight
    眼瞼跟隨遠離鼻子的視線。
  5. eyeLookUpLeft
    eyeLookUpRight
    眼瞼跟隨向上的視線。
  6. eyeSquintLeft
    eyeSquintRight
    眯眼:下眼瞼和臉頰上抬。
  7. eyeWideLeft
    eyeWideRight
    睜大眼睛:上眼瞼上抬。

下頜4 個混合變形

  1. jawForward下頜前推。
  2. jawLeft下頜移向這張臉的左側。
  3. jawRight下頜移向這張臉的右側。
  4. jawOpen張開下頜。

嘴23 個混合變形

  1. mouthClose下頜保持張開時閉合嘴唇;與 jawOpen 配合使用。
  2. mouthFunnel張開的嘴唇收圓成漏斗狀,像發「oo」音時那樣。
  3. mouthPucker閉合的嘴唇向前噘起,像親吻時那樣。
  4. mouthLeft兩片嘴唇一起移向這張臉的左側。
  5. mouthRight兩片嘴唇一起移向這張臉的右側。
  6. mouthSmileLeft
    mouthSmileRight
    嘴角上揚。
  7. mouthFrownLeft
    mouthFrownRight
    嘴角下垂。
  8. mouthDimpleLeft
    mouthDimpleRight
    嘴角向後拉,朝酒窩的方向。
  9. mouthStretchLeft
    mouthStretchRight
    嘴角向兩側和下方拉伸。
  10. mouthRollLower下唇向內卷,蓋住牙齒。
  11. mouthRollUpper上唇向內卷,蓋住牙齒。
  12. mouthShrugLower下唇向上、向外推。
  13. mouthShrugUpper上唇向上、向外推。
  14. mouthPressLeft
    mouthPressRight
    該側下唇向上壓緊上唇。
  15. mouthLowerDownLeft
    mouthLowerDownRight
    該側下唇向下拉。
  16. mouthUpperUpLeft
    mouthUpperUpRight
    該側上唇上抬。

眉毛5 個混合變形

  1. browDownLeft
    browDownRight
    眉毛外側下壓。
  2. browInnerUp兩側眉毛的內端上抬。
  3. browOuterUpLeft
    browOuterUpRight
    眉毛外側上抬。

臉頰3 個混合變形

  1. cheekPuff兩頰鼓起。
  2. cheekSquintLeft
    cheekSquintRight
    下眼瞼周圍的臉頰上抬。

鼻子2 個混合變形

  1. noseSneerLeft
    noseSneerRight
    鼻翼一側上抬,像冷笑時那樣。

舌頭1 個混合變形

  1. tongueOut舌頭伸出嘴外。

名稱來源:Apple 的 ARKit 文件。

在真實頭部上調節這些形狀

這些是範例頭部,每個都是 FaceNinja 用一張照片生成的原樣結果。載入一個並拖曳滑桿:每個滑桿對應這張臉上的一個 ARKit 形狀,表情則由多個形狀混合而成。

檢視台靜態圖片

範例頭部

FaceNinja 根據照片 S-07 做出的 3D MetaHuman 頭部

方向鍵可轉動頭部,加號與減號縮放,按 0 重設視角,Esc 離開檢視器。

表情
視角
燈光

ARKit 讀數

數值會隨表情變化。拖曳滑桿可單獨設定一個混合變形。

合成人物預覽已為網頁壓縮。下載檔含完整的 4K 貼圖。

六種表情,以及組成它們的形狀

一個表情是多個形狀的混合。下面每張靜態圖都是樣本 S-16,調高了圖下列出的形狀;中性臉不含任何形狀。

  • 樣本 S-16,一位合成人物,表情:中性中性
    —
  • 樣本 S-16,一位合成人物,表情:mouthSmileLeft, mouthSmileRight微笑
    mouthSmileLeft mouthSmileRight
  • 樣本 S-16,一位合成人物,表情:jawOpen, browInnerUp驚訝
    jawOpen browInnerUp
  • 樣本 S-16,一位合成人物,表情:browDownLeft, mouthFrownLeft皺眉
    browDownLeft mouthFrownLeft
  • 樣本 S-16,一位合成人物,表情:mouthPuckermouthPucker
  • 樣本 S-16,一位合成人物,表情:eyeBlinkLefteyeBlinkLeft

為什麼 tongueOut 需要舌頭

tongueOut 只有在帶舌頭、嘴巴又能張得足夠大的頭部上才會顯示。FaceNinja 的頭部兩者都有,所以 GLB 和 FBX 帶有全部 52 個形狀,含 tongueOut。

Perfect Sync:VTuber 中的 52 個形狀

在 VTuber 圈,擁有全部 52 個 ARKit 形狀的形象被稱為 Perfect Sync(完美同步):iPhone 的追蹤會直接驅動每一個形狀,而不是幾個預設。基於 VRM 的應用程式需要 VRM 檔案,而 FaceNinja 不生成 VRM。我們免費的創作者套件走另一條路線:你的頭部在 Unreal Engine 中成為 MetaHuman,由 Live Link Face 或網路攝影機驅動。

52 個形狀在各引擎中的位置

四個引擎中的同樣 52 個名稱
引擎形狀所在位置說明
Unreal EngineSkeletal Mesh 上的變形目標(Morph Target);Live Link Face 按名稱驅動它們。匯入時開啟變形目標,並在頭部的材質上勾選 Used with Morph Targets(文件 EN)。
UnitySkinned Mesh Renderer 上的 Blend Shape,來自 FBX。模型匯入設定中的 Import BlendShapes 預設是開啟的。
Godot 4MeshInstance3D 上的 Blend Shape,來自 GLB。find_blend_shape_by_name() 給出 set_blend_shape_value() 所需的索引。
three.jsmesh.morphTargetDictionary 把每個名稱對映到它在 mesh.morphTargetInfluences 中的索引。用 GLTFLoader 載入 GLB。

關於 ARKit 混合變形的問題

01什麼是 ARKit 混合變形?
Apple 為 iPhone 和 iPad 上的臉部追蹤定義的 52 個具名臉部動作。每個都是 0 到 1 的權重,任何表情都是它們的混合。
02ARKit 混合變形一共有多少個?
52 個:眼睛 14 個、下頜 4 個、嘴 23 個、眉毛 5 個、臉頰 3 個、鼻子 2 個、舌頭 1 個。
03我需要 iPhone 嗎?
要即時捕捉全部 52 個,你需要一台帶 Apple 臉部追蹤的裝置,例如帶 Face ID 的 iPhone;Live Link Face 用的就是它。要回放它們,任何能讀取混合變形的引擎都可以,不需要 iPhone。
04FaceNinja 的頭部包含 tongueOut 嗎?
包含。GLB 和 FBX 帶有全部 52 個形狀,含 tongueOut,都是為每張臉量身製作的。
05什麼是 Perfect Sync?
VTuber 圈的術語,指擁有全部 52 個 ARKit 形狀的形象,臉部追蹤可以直接驅動每一個形狀。
06能試試帶全部 52 個形狀的頭部嗎?
能。免費建立帳號,下載 20 個範例頭部:每個 GLB 和 FBX 都帶有全部 52 個。

能試試帶全部 52 個形狀的頭部嗎?

能。免費建立帳號,下載 20 個範例頭部:每個 GLB 和 FBX 都帶有全部 52 個。