Meta Quest Pro 表情トラッキング/ パーフェクトシンク対応表 ※追記あり
Meta Quest Proの内部にはフェイストラッキング用のカメラが内蔵されており、ユーザーの表情・視線の動きをリアルタイムにトラッキングできます。
モデルをこれに対応させるには、Meta Movement SDK の OVRFaceExpressions で定義された63個のシェイプキーが必要です。
iPhoneフェイストラッキング(ARKit)向けのシェイプキーが揃っていれば、ほぼシェイプキー名の差し替えで対応可能です。
一部は、ARKitのシェイプキーを上下左右に分割して作成することになります。
青字は、ARKitのシェイプキーを左右(L/R)・上下(T/B)に分ける項目です。
赤字は、新規で作成する項目です。
全て揃っていなくてもそこそこ動きます。
いずれもFacial Action Coding System (FACS)に基づいた表情設計ということで、シェイプキーほぼそのまま流用できました やったね
— はいぬっか (@hinzka) 2022年12月18日
VRM対応の、リアルタイムで表情調整できるツール等はまだないよ
一旦パーフェクトシンクで整えてからQuest Pro対応させるのが合理的かとおもいます pic.twitter.com/51fXz2NVfy
OVRFaceExpressions | ARKitとの互換 | 内容 | |
1 | BrowLowererL | browDownLeft | 左眉全体を下げる |
2 | BrowLowererR | browDownRight | 右眉全体を下げる |
3 | CheekPuffL | cheekPuff |
左頬をふくらます
|
4 | CheekPuffR | cheekPuff | 右頬をふくらます |
5 | CheekRaiserL | cheekSquintLeft | 左頬をもちあげる |
6 | CheekRaiserR | cheekSquintRight | 右頬をもちあげる |
7 | CheekSuckL | 新規 | 左頬をへこます ※CheekPuffLの逆ベクトル |
8 | CheekSuckR | 新規 | 右頬をへこます ※CheekPuffRの逆ベクトル |
9 | ChinRaiserB | mouthShrugLower | 上唇を上げる |
10 | ChinRaiserT | mouthShrugUpper | 下唇を上げる |
11 | DimplerL | mouthDimpleLeft | 左えくぼ (口角を後ろに引く) |
12 | DimplerR | mouthDimpleRight | 右えくぼ (口角を後ろに引く) |
13 | EyesClosedL | eyeBlinkLeft | 左閉じ目 |
14 | EyesClosedR | eyeBlinkRight | 右閉じ目 |
15 | EyesLookDownL | eyeLookDownLeft | 左目で下を見るときの瞼 |
16 | EyesLookDownR | eyeLookDownRight | 右目で下を見るときの瞼 |
17 | EyesLookLeftL | eyeLookOutLeft | 左目で左を見るときの瞼 |
18 | EyesLookLeftR | eyeLookInRight | 右目で左を見るときの瞼 |
19 | EyesLookRightL | eyeLookInLeft | 左目で右を見るときの瞼 |
20 | EyesLookRightR | eyeLookOutRight | 右目で右を見るときの瞼 |
21 | EyesLookUpL | eyeLookUpLeft | 左目で上を見るときの瞼 |
22 | EyesLookUpR | eyeLookUpRight | 右目で上を見るときの瞼 |
23 | InnerBrowRaiserL | browInnerUp | 左眉の内側を上げる |
24 | InnerBrowRaiserR | browInnerUp | 右眉の内側を上げる |
25 | JawDrop | jawOpen | 顎を開く |
26 | JawSidewaysLeft | jawLeft | 左に顎をずらす |
27 | JawSidewaysRight | jawRight | 右に顎をずらす |
28 | JawThrust | jawForward | 顎を前に出す |
29 | LidTightenerL | eyeSquintLeft | 左目を細める |
30 | LidTightenerR | eyeSquintRight | 右目を細める |
31 | LipCornerDepressorL | mouthFrownLeft | 左口角を下げる |
32 | LipCornerDepressorR | mouthFrownRight | 右口角を下げる |
33 | LipCornerPullerL | mouthSmileLeft | 左口角を上げる |
34 | LipCornerPullerR | mouthSmileRight | 右口角を上げる |
35 | LipFunnelerLB | mouthFunnel | 左の下唇をラッパ状に突き出す (ウの口) |
36 | LipFunnelerLT | mouthFunnel | 左の上唇をラッパ状に突き出す (ウの口) |
37 | LipFunnelerRB | mouthFunnel | 右の下唇をラッパ状に突き出す (ウの口) |
38 | LipFunnelerRT | mouthFunnel | 右の上唇をラッパ状に突き出す (ウの口) |
39 | LipPressorL | 新規 | 左唇を上下に圧縮する 唇の幅は変化しない |
40 | LipPressorR | 新規 | 右唇を上下に圧縮する 唇の幅は変化しない |
41 | LipPuckerL | mouthPucker | 左唇を細めつつ突き出す (チューの口) |
42 | LipPuckerR | mouthPucker | 右唇を細めつつ突き出す (チューの口) |
43 | LipStretcherL | mouthStretchLeft | 左口角を引き下げつつ横に伸ばす |
44 | LipStretcherR | mouthStretchRight | 右口角を引き下げつつ横に伸ばす |
45 | LipSuckLB | mouthRollLower | 左の下唇を巻き込む (もぐもぐの口) |
46 | LipSuckLT | mouthRollUpper | 右の上唇を巻き込む (もぐもぐの口) |
47 | LipSuckRB | mouthRollLower | 左の下唇を巻き込む (もぐもぐの口) |
48 | LipSuckRT | mouthRollUpper | 右の上唇を巻き込む (もぐもぐの口) |
49 | LipTightenerL | mouthPressLeft | 左の口角をぎゅっと緊張 ※ARKitより弱める |
50 | LipTightenerR | mouthPressRight | 右の口角をぎゅっと緊張 |
51 | LipsToward | mouthClose | 顎を開いた状態で唇を閉じる |
52 | LowerLipDepressorL | mouthLowerDownLeft | 左の下唇を引き下げる |
53 | LowerLipDepressorR | mouthLowerDownRight | 右の下唇を引き下げる |
54 | MouthLeft | mouthLeft | 口全体を左に寄せる |
55 | MouthRight | mouthRight | 口全体を右に寄せる |
56 | NoseWrinklerL | noseSneerLeft | 左の鼻をしかめる (左の眉根が寄る) |
57 | NoseWrinklerR | noseSneerRight | 右の鼻をしかめる (右の眉根が寄る) |
58 | OuterBrowRaiserL | browOuterUpLeft | 左眉の外側を上げる |
59 | OuterBrowRaiserR | browOuterUpRight | 右眉の外側を上げる |
60 | UpperLidRaiserL | eyeWideLeft | 左の目を見開く |
61 | UpperLidRaiserR | eyeWideRight | 右の目を見開く |
62 | UpperLipRaiserL | mouthUpperUpLeft | 左の上唇を引き上げる |
63 | UpperLipRaiserR | mouthUpperUpRight | 右の上唇を引き上げる |
VRChatでQuestProのフェイストラッキングを使いたい人向けの追記:
眉毛がしっかり動くとたのしい が徐々にHMDがずりおちてきちゃいます よいしょ pic.twitter.com/6GcHmjG5JB
— はいぬっか (@hinzka) 2023年4月26日
ALXRとVRCFaceTrackingを用いて、表情のOSCデータをVRChatへ送信することができます。サックーさんの記事が参考になります。
このシステムでは、検知した各種表情に対して、任意のシェイプキーを自由に割り当て可能になっています。このため、ARKit用シェイプキーの文字列をわざわざQuestPro用にリネームする必要はありません。
UnityでQuestProのトラッキング環境を自作している人向けの追記:
VRMのBlendshape Clip経由の表情定義でフェイストラッキングできるスクリプトを、くにやんさんが公開されています。
Meta Movement SDKで定義された文字列で、Clipを63個用意し、それぞれに対応するBlendShapeを登録しておけば、QuestProで動作させることができます(パーフェクトシンクと同じしくみです)。
FaceExpressionsController.cs
FaceExpressionsControllerVRM.cs
の2つを、BlendShapeを持つオブジェクト(VRoidであれば"Face")にアタッチします。
Quest Pro、単体で3点トラッキングと顔トラッキングと指トラッキングできてMR合成できて外部ストリーミングもできる
— はいぬっか (@hinzka) 2023年3月12日
組み合わせると楽しいよ これは良いおもちゃ pic.twitter.com/R3F65s9ju4