リファレンス · ARKit · フェイストラッキング
ARKitブレンドシェイプ52種を、実際のヘッドで。
ARKitは顔を52のブレンドシェイプで表します。jawOpenやeyeBlinkLeftのような動きごとの、0から1までのウェイトです。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開いた唇を「う」のように丸め、漏斗の形にする。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がそれぞれ写真1枚から作ったものです。1つ読み込んでスライダーをドラッグしてください。スライダー1つがその顔のARKitシェイプ1つで、表情はいくつかのシェイプの組み合わせです。
サンプルのヘッド

矢印キーでヘッドを回転、+と-で拡大縮小、0で視点をリセット、Escでビューアーを閉じます。
ARKitの値
値は表情に連動します。スライダーで1つのシェイプを調整できます。
6つの表情と、それを作るシェイプ
表情はシェイプの組み合わせです。下の各静止画は、サンプルS-16で、その下に書いたシェイプを強めたものです。無表情の顔には、シェイプはかかっていません。
無表情—
笑顔mouthSmileLeft mouthSmileRight
驚きjawOpen browInnerUp
しかめ面browDownLeft mouthFrownLeft
mouthPucker
eyeBlinkLeft
tongueOutに舌が必要な理由
tongueOutは、舌があり、口が十分に開くヘッドでしか見えません。FaceNinjaのヘッドはその両方を備えているので、GLBとFBXにtongueOutを含む52種すべてが入っています。
パーフェクトシンク:VTuberでの52のシェイプ
VTuberの世界では、ARKitシェイプ52種をすべて持つアバターをパーフェクトシンク(Perfect Sync)と呼びます。いくつかのプリセットではなく、iPhoneのトラッキングが各シェイプを直接動かします。VRMベースのアプリにはVRMファイルが必要ですが、FaceNinjaはVRMファイルを作りません。無料のCreator Kitは別のルートを取ります。あなたのヘッドがUnreal EngineのMetaHumanになり、Live Link FaceやWebカメラで動きます。
各エンジンでの52のシェイプの場所
| エンジン | シェイプの場所 | メモ |
|---|---|---|
| Unreal Engine | Skeletal Meshのモーフターゲット。Live Link Faceが名前で動かします。 | モーフターゲットを有効にして読み込み、ヘッドのマテリアルでUsed with Morph Targetsにチェックを入れます(ドキュメント EN)。 |
| Unity | FBXから読み込まれる、Skinned Mesh Rendererのブレンドシェイプ。 | モデルのインポート設定で、Import BlendShapesはデフォルトでオンです。 |
| Godot 4 | GLBから読み込まれる、MeshInstance3Dのブレンドシェイプ。 | find_blend_shape_by_name()で、set_blend_shape_value()に渡すインデックスが得られます。 |
| three.js | mesh.morphTargetDictionaryが、各名前をmesh.morphTargetInfluencesのインデックスに対応づけます。 | GLTFLoaderでGLBを読み込みます。 |
ARKitブレンドシェイプについての質問
- 01ARKitブレンドシェイプとは何ですか?
- AppleがiPhoneとiPadのフェイストラッキング用に定義した、名前つきの52の顔の動きです。それぞれ0から1までのウェイトで、どんな表情もその組み合わせで表せます。
- 02ARKitブレンドシェイプはいくつありますか?
- 52種です。目14、顎4、口23、眉5、頬3、鼻2、舌1。
- 03iPhoneは必要ですか?
- 52種すべてをリアルタイムでキャプチャするには、Face ID搭載のiPhoneなど、Appleのフェイストラッキングに対応したデバイスが必要です。Live Link Faceもこれを使います。再生だけなら、ブレンドシェイプを読めるエンジンであれば、iPhoneなしで動きます。
- 04FaceNinjaのヘッドに
tongueOutは含まれますか? - はい。GLBとFBXには、
tongueOutを含む52種すべてが、顔ごとに作られて入っています。 - 05パーフェクトシンクとは何ですか?
- ARKitシェイプ52種をすべて持ち、フェイストラッキングが各シェイプを直接動かすアバターを指す、VTuberの用語です。
- 0652種すべてを持つヘッドを試せますか?
- はい。無料で登録して、サンプルヘッド20個をダウンロードしてください。どのGLBとFBXにも52種すべてが入っています。