見出し画像

【ARKit/FaceTracking】パーフェクトシンクに必要なシェイプキーまとめ【私的メモ】

こちらはの記事は、ARkit,AR52,perfectSyncと呼ばれるiPhone,iPadの使用して3Dモデルの表情を動かす際に必要なシェイプキーをまとめています。

BlendShapeの種類は意外と少ない


なるべく内容がごちゃごちゃしないようにまとめました。
シェイプキー52個ほどあり最初は発狂しそうになりますが、左右上下対称を除けば30種類までまとまります。

また、口の部分だけで15種類ほどのシェイプキーがまとまっているので、それ以外はイメージより少ないはずです。それぞれ1~4種類しかありません。

まとめの見方


(Left/Right)と書いてあった場合は、左右それぞれ用意する必要があります。
例: [browOuterUp](Left/Right) → [browOuterUpLeft]と[browOuterUpRight]のシェイプキーをそれぞれ用意してください。
(Left/Right)の記載がないものは一つだけで大丈夫です。
※このような記載にしているのは行数を減らすための処置です。

BlendShape名称の入力例。

眉毛

内側だけ上げる [browInnerUp]

困り眉毛を作ります。
眉尻を固定しながら目頭が上がることを目指します。
瞼も若干上がると動きにリアリティが増します。

全体を下げる [browDown](Left/Right)

目を凝らして見る時の眉毛のようです。
目も若干下がっています。

外側だけ上げる [browOuterUp](Left/Right)

怒り眉毛を作ります。
眉頭を固定できるとより動作がキレイです。
ややオーバー気味のアクションのほうが良く動く印象になります。
眉尻眉頭の角度情報と、眉毛全体を下げるBlendShapeを組み合わせることで、自由に眉毛が動く仕組みです。

視線


【重要】眼球の動きは登録しないでください。
眼球の動き自体はEyeTracking側で動作するので、FaicalTrackingでは表情の小さな動きだけを設定します。
目の周りのわずかな動きだけを登録するイメージです。GIFのように眼球が動かないのが正解です。

上げる [eyeLookUp](Left/Right)

瞼が若干上がっています。(分かりづらい)


下げる [eyeLookDown](Left/Right)

瞼が若干下がっています。(分かりづらい)


内側にする [eyeLookIn](Left/Right)

【重要】[eyeLookIn][eyeLookOut]は「左右」ではなく「内外」です。
視線が内側か外側かを基準に決めています。
例えば、[eyeLookInLeft]は、左目を内側(鼻を見る)状態をイメージします。
逆に[eyeLookOutLeft]は、左目を外側(耳を見る)の状態をイメージします。

目頭が若干上に動いているのがわかります。


外側にする [eyeLookOut](Left/Right)

目じりが若干上に動いているのがわかります。



まばたき [eyeBlink](Left/Right)

シンプルなまばたきです。


目をすぼめる [eyeSquint](Left/Right)

目を細めます。

目を見開く [eyeWide](Left/Right)

目を見開いてます。



頬を膨らませる [cheekPuff]

ぷくー。
頬だけでなく口もぷくーっとさせましょう。

頬を上げる [cheekSquint](Left/Right)

セルルックなモデルは、頬に動きを付けることができません。
そのため、下瞼と口を動かすことで、頬を上げることを表現しています。
本来想定されている動きはこちらにあります。




しかめる [noseSneer](Left/Right)

セルルックなモデルなため、鼻の動きを付けることができません。
そのため、眉をしかめることで対応しています。
鼻をしかめる時は怒りの感情が多いと思いますので、怒りの表情を表示する意識して設定してあげると良いと思います。
本来想定されている動きはこちらにあります。


口を開く [jawOpen]

口を開けます。
ARKitでは顎の動きの扱いなので、顎カテゴリとしています。
口だけでなく、顎が下がってることに注目してください。

顎を前に動かす[jawForward]

顎を前に動かします。


顎を横に動かす [jaw](Left/Right)

顎を横に動かします。


口をすぼめる [mouthFunnel] 

口をすぼめます。
口笛を吹くイメージです。

口を小さくする [mouthPucker]

口の横幅を小さくします。
横幅を小さくした分、口が少し前に出ています。


口を左右に動かす [mouth](Left/Right)

口を左右に動かします。

上唇を噛む [mouthRollUpper]

上唇を嚙みます。V字口。
上唇が下に下がっているのがわかります。

下唇を噛む[mouthRollLower]

下唇を噛んでいます。
下唇が上がっているのがわかります。

上唇を上に動かす [mouthShrugUpper]

上唇を上に動かします。
上唇を上に上がっているのがわかります。

下唇を上に上げる[mouthShrugLower]

困っている時の口の形です。
一応横からの図ですが、口が困っているのがわかります。

口を閉じる [mouthClose]

破綻していますが正常です。
JawOpenと組み合わせる特殊シェイプキーだからです。次のGIFで解説します。
このGIFはJawOpen100%を用意してから、mouthCloseを動かしてる様子。
JawOpen100%とmouthClose100%が打ち消しあい標準の口の形に戻っているのがわかります。
本モデルでは簡略化されて確認できませんが、
JawOpenは口と顎が開き、mouthCloseは口だけが閉じます。
すると、顎だけが下に下がるアニメーションになるのです。
これにより、食べ物を食べるといった咀嚼アニメーションが可能になります。

スマイル口 [mouthSmile](Left/Right)

スマイルスマイル。

怒り口 [mouthFrown](Left/Right)

ムッとしてる時の表情。


横に広げる [mouthDimple](Left/Right)

ただ横に広がるだけです。
左右に動かす口の動きとは違う点に注意。

唇を上に動かす [mouthUpeerUp](Left/Right)

特殊な動き方をしています。
左右上下とも100%にしても破綻しないようにしてください。
横からみた図。変化が少ないので分かりづらいです。

唇を下に動かす [mouthLowerDown](Left/Right)

これも特殊な動き方をしています。
これも左右とも100%にしても破綻しないようにしてください。

アヒル口 [mouthPress](Left/Right)

う、わかりづらい…。
これはLeft/Rightどちらも100%にした状態。
ちょっとアヒル口みたいな感じ。

口角を斜め下に下げる [mouthStretch](Left/Right)

口角を斜め下にします。


舌を出す [tongueOut]

舌だけを出します。口は基本開かない。
口を開く動きをするとJawOpenと乗算されて開く口が大きくなってしまうためです。


さらに詳しく

以下のサイトにさらに詳しく記載されています。見てみて…。

Gifのモデルは以下のデータを使用しています。


この記事が気に入ったらサポートをしてみませんか?