參考 · ARKit · 臉部追蹤
52 個 ARKit 混合變形,展示在真實頭部上。
ARKit 用 52 個混合變形(blendshape)描述一張臉:每個都是 0 到 1 的權重,對應 jawOpen 或 eyeBlinkLeft 這樣的動作。iPhone 的臉部追蹤傳送這些權重,Live Link Face、VTuber 應用程式和遊戲引擎會在任何擁有同樣 52 個形狀的頭部上回放它們。這裡列出每個名稱、它控制的動作,以及一個擁有全部 52 個的頭部。
全部 52 個,按臉部部位分組
名稱與 Apple 的寫法完全一致。Left 和 Right 指的是這張臉自己的左右,而不是觀看者的左右。
眼睛14 個混合變形
eyeBlinkLeft閉上眼瞼。
eyeBlinkRighteyeLookDownLeft眼瞼跟隨向下的視線。
eyeLookDownRighteyeLookInLeft眼瞼跟隨朝向鼻子的視線。
eyeLookInRighteyeLookOutLeft眼瞼跟隨遠離鼻子的視線。
eyeLookOutRighteyeLookUpLeft眼瞼跟隨向上的視線。
eyeLookUpRighteyeSquintLeft眯眼:下眼瞼和臉頰上抬。
eyeSquintRighteyeWideLeft睜大眼睛:上眼瞼上抬。
eyeWideRight
下頜4 個混合變形
jawForward下頜前推。jawLeft下頜移向這張臉的左側。jawRight下頜移向這張臉的右側。jawOpen張開下頜。
嘴23 個混合變形
mouthClose下頜保持張開時閉合嘴唇;與jawOpen配合使用。mouthFunnel張開的嘴唇收圓成漏斗狀,像發「oo」音時那樣。mouthPucker閉合的嘴唇向前噘起,像親吻時那樣。mouthLeft兩片嘴唇一起移向這張臉的左側。mouthRight兩片嘴唇一起移向這張臉的右側。mouthSmileLeft嘴角上揚。
mouthSmileRightmouthFrownLeft嘴角下垂。
mouthFrownRightmouthDimpleLeft嘴角向後拉,朝酒窩的方向。
mouthDimpleRightmouthStretchLeft嘴角向兩側和下方拉伸。
mouthStretchRightmouthRollLower下唇向內卷,蓋住牙齒。mouthRollUpper上唇向內卷,蓋住牙齒。mouthShrugLower下唇向上、向外推。mouthShrugUpper上唇向上、向外推。mouthPressLeft該側下唇向上壓緊上唇。
mouthPressRightmouthLowerDownLeft該側下唇向下拉。
mouthLowerDownRightmouthUpperUpLeft該側上唇上抬。
mouthUpperUpRight
眉毛5 個混合變形
browDownLeft眉毛外側下壓。
browDownRightbrowInnerUp兩側眉毛的內端上抬。browOuterUpLeft眉毛外側上抬。
browOuterUpRight
臉頰3 個混合變形
cheekPuff兩頰鼓起。cheekSquintLeft下眼瞼周圍的臉頰上抬。
cheekSquintRight
鼻子2 個混合變形
noseSneerLeft鼻翼一側上抬,像冷笑時那樣。
noseSneerRight
舌頭1 個混合變形
tongueOut舌頭伸出嘴外。
名稱來源:Apple 的 ARKit 文件。
在真實頭部上調節這些形狀
這些是範例頭部,每個都是 FaceNinja 用一張照片生成的原樣結果。載入一個並拖曳滑桿:每個滑桿對應這張臉上的一個 ARKit 形狀,表情則由多個形狀混合而成。
範例頭部

方向鍵可轉動頭部,加號與減號縮放,按 0 重設視角,Esc 離開檢視器。
ARKit 讀數
數值會隨表情變化。拖曳滑桿可單獨設定一個混合變形。
六種表情,以及組成它們的形狀
一個表情是多個形狀的混合。下面每張靜態圖都是樣本 S-16,調高了圖下列出的形狀;中性臉不含任何形狀。
中性—
微笑mouthSmileLeft mouthSmileRight
驚訝jawOpen browInnerUp
皺眉browDownLeft mouthFrownLeft
mouthPucker
eyeBlinkLeft
為什麼 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 個形狀在各引擎中的位置
| 引擎 | 形狀所在位置 | 說明 |
|---|---|---|
| Unreal Engine | Skeletal Mesh 上的變形目標(Morph Target);Live Link Face 按名稱驅動它們。 | 匯入時開啟變形目標,並在頭部的材質上勾選 Used with Morph Targets(文件 EN)。 |
| Unity | Skinned Mesh Renderer 上的 Blend Shape,來自 FBX。 | 模型匯入設定中的 Import BlendShapes 預設是開啟的。 |
| Godot 4 | MeshInstance3D 上的 Blend Shape,來自 GLB。 | find_blend_shape_by_name() 給出 set_blend_shape_value() 所需的索引。 |
| three.js | mesh.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 個。