2023-10-20

【Blender】Faceitの手順書【Plugin】

表情リグを簡単に作るFaceitというBlender Plugin。何度やっても忘れるので設定手順をまとめる

Article Image
使用ソフトウェアバージョン備考
Blender3.6.2
Faceit2.3.12

概要

表情のリグ、シェイプキーを作ってくれるプラグイン。

リグを作るまでの設定がたくさんあり、すぐに忘れてしまうので手順として残す。

全機能解説ではない

Faceitは非常に設定すべき項目が多く、これまでの記事のように全解説にしてしまうと冗長になりすぎる。

私が実際にリグを作っていく中で躓きそうだったことはすべて解説するが、特別覚えなくても問題ない機能は省略する。

有料プラグイン

このプラグインは有料である。しかもちょっと高い。

だが、それだけの価値はある。更新も続いている。

Faceit : Facial Expressions and Performance Capture - Blender Market

Auto-Rig Proとセットで使える

あまりここに言及している人がいないが、Auto-Rigとセットで使用することが出来る。

これは後半のBake部分で触れる。

Faceitを設定する前にやっておくこと

Auto-Rig等がある場合、まずは顔のすべてのパーツが頭に追従すること。

つまり表情を動かすことはできないがAuto-Rigなどを移動すると目や眉毛などが正しくついてくる必要がある。

ただ、これは一通りFaceitの設定を行った「後」でやっても良い。

やりかた(Auto-Rig専用)

Auto-Rigが先に設定してある場合

まず、瞳や眉毛など頭に追従させたいパーツをすべて選択しておく。

shiftを押しながら最後にAuto-Rigのリグを選択に含めておく。

フェイスパーツ全選択

Skinタブ > Bind > Selected Bones Only + 目玉のマークをチェック

Selected bones only

こうするとDeformボーンだけの表示になる。

ポーズモードに入って頭のボーンだけを単体で選択。

頭のみ

これらをBindする(Engine=Heat Mapsが良い)

heatmaps

bind

ボーンの表示になったままなのでSelected Bones Onlyを外して次のレイヤーだけ表示に戻す

レイヤー

目玉のマークを外すだけでも戻ったので、それでも良い

Setup

基本的に左のタブから順番に作業していく。

最初はSetupから。

Setupタブ

顔に属するメッシュをすべて選択。ここでは髪も選択してしまっている。

眉毛や目など1つずつのパーツは別オブジェクトになっていて良い。

顔の周りを選択

Register Face Objectsを押す

register

先程選択したオブジェクトが一度登録される。

登録された画面

既にAuto-Rig等が設定されている場合はExisting Rigに登録しておく。

RIGが登録された画面

Register Objectsに登録されていないメッシュはこの後の作業に登録できないので注意。

一度ボタンを押した後でも追加で登録できる。

関係ないものは削除

髪や顔に連動しないアクセサリ類はリストから消しておく。

イヤリングなど顔に付随しているアクセサリは残す。

削除ボタン

Face Mainの登録

ここからは「どのメッシュがどの部位なのか」を明示していく。

Face Mainは顔の皮膚の部分といえばいいだろうか、顔そのものを指定する。

Objectモードで顔の皮膚にあたる部分を選択して

顔メッシュ

このボタンを押す/スポイトでクリック

Main

注意

顔に該当する1オブジェクトの中にメッシュが2つ以上ある場合

例えば

  • 顔と首のメッシュが繋がっていなくて2個になっている
  • 眉毛も胴体のメッシュに含まれている
  • 胴体と顔のメッシュが繋がっていて1つならよいが、実は爪のメッシュも同オブジェクトになっていて別メッシュになっている

このような場合エラーになる模様。

この場合、編集モードに入って顔のメッシュだけ選択して選択する。

胴体や足まで繋がっていても問題なく、とにかくひとつなぎのメッシュである必要がある。

顔だけ分離

※編集モード > Lキーで繋がっている頂点だけ全選択できる

Eyeの登録

オブジェクトモードで「目」に当たるものを複数選択する。

特に私のようなアニメ目の場合は迷うと思うが

  • レンズ部分
  • ハイライト部分
  • 目玉が書かれた板ポリの部分
  • リアル目(球体)の場合は白目の部分

目

これらをひとまとめにしてLeft, Rightで設定する

キャラに対して左右なので間違えないように。

真正面からみて作業すると、左右逆に設定するイメージ。

いっぺんにすべて登録する必要はなく、1つずつボタンを押して登録しても良い。

選択画面

左右の目が1つのメッシュになってしまっている場合は上のように編集モードで頂点を選択して設定する。

オブジェクトを選択した状態でこのボタンがグレーアウトしている場合Register Objectsに登録されていない可能性が高いので確認。

どこが登録されたか確認する

目のように複数のオブジェクトでひとまとまりのものは正しく登録されたか確認しにくい。

そこで次のボタンを使うと、登録されているものを目視できるようになっている。

確認ボタン

目に緑の網掛け

目を消去

Upper(Lower) Teeth

  • Upper Teeth = 上の歯
  • Lower Teeth = 下の歯

歯茎も作っている場合はここで同じように上下で分けて設定する。

口腔のモデルは何も設定せず。

Tongue

こちらは舌

Eyelashes

ここは結構色々詰め込む

  • まつ毛
  • 窪みで白目になっている部分(アニメ目の場合)
  • 目の上に落としている半透明の影(アニメ目の場合)

まつ毛など

おそらく目を瞑る時にひとまとめにして動く物かと思う。

ここでは眉毛は選択しないこと

個人的Tips

ここで二重線のようなメッシュも登録しているが、これが変形で非常に壊れやすい。

登録するところはここで良いと思うが、他に方法があるかもしれない。

二重線

Facial Hair

まつ毛ではない毛がここに含まれる

  • まゆげ
  • ひげ

Rigid

イヤリングやその他装飾品などはこちらへ登録。

顔に追従するが、変形しない物

手足は別オブジェクトに分けたほうが良いかも(要検証)

十分に検証出来ていないが顔のオブジェクトに胴体や手足の皮膚が含まれる場合、表情のウェイトが乗ってしまってそれらが動くという不具合が出る

顔以外(胴手足)は別オブジェクトに分けておいて、そもそもFaceitに登録しないほうが良いかと思われる。

一応Rigidに登録することで回避はできるのだが、リグのマージを行うと手足が動かなくなってしまう。

Check Geometry

Setupパネルが一通りセットできたらCheck Geometryボタンを押してエラーがないか確認する。

Check Geometry

次のマークがでたらクリックして詳細を確認する

ビックリマーク

私が知る限りでは、ここはThe Object is bound to another armature.しかみたことがない

注意メモ

殆どの場合、顔に設定しているメッシュが既にメインのrigに関連付けされてウェイトを持っているので顔リグとバッティングする可能性がある事を示唆している。

ひとまずこのままで良いので進める。

Rigタブ

Generate Landmarksをクリックする。

Generate Landmarks

マスクが現れるので顎の高さに合わせてクリック

顎が固定され高さを目に合わせてクリック

最後に横幅をあわせる

ここは後で調整できるので正確でなくて良い

マスク

微調整のヒント

ここから各頂点を微妙に動かして調整

適切な頂点の位置がどこかわからず、曖昧でイライラする人も多いと思う

しかしここを微調整しても大きくは変わらず、結局最後のスカルプト作業でかなり修正することになる。

解説におおよそ従っていれば問題ないと思われる。

顎の先端とその下が首の点

顎の点

顎の先端はギリギリでよい

唇のラインは基本内側に少し食い込ませて設置(唇の中央あたり)

ただし、両サイドの点だけ逆に広くつける

唇

頬にある点は上げ過ぎない

公式では頬骨が出っ張っているところより下になっている

頬

こちらも顎と同じく一番下の点だけ鼻の下になるので注意

鼻

目も両サイドだけ少し離す

ほかは皮膚の上になるように

目

目の上のラインは二重線あたりに入れるとのこと

目の上

目の横のポイント。こちらは横からも調整するので後ほど。

目尻

おでこ

おでこのラインはデフォルトM字になっているが合わせる必要はないとの情報あり。

ただ、公式ではM字になっているのでそのほうが良いかと思う。

ひとつ下のラインは眉に

おでこ

Project Landmarks

正面からの頂点作業が終わったらProject Landmarks

Project Landmarks

正面から顔にプロジェクトされ、横の画面になる

なお、顔のリグに髪を含めていなければ自動的に貫通して皮膚に張り付いてくれるので気にしないで良い。

横画面

あご

顎が角張っているところに配置

あご

さらにそのひとつ上を下の耳の付け根よりちょっと前へ

耳たぶの前

この耳たぶ前の点は、デフォルトでかなり前の方で止まるので非常に間違えやすい

顎下

公式では顎下のポイントは喉までいかないように調整されている。

横から見て一番高いところへ

鼻

注意:失敗している頂点がないか

顔にくっついていない頂点がないか確認

だめな例

離れていた場合はスナップモードにして

スナップ

この状態で少し動かしてやればくっつくはず

すこし皮膚に押し込む頂点

スナップモードを解除して

口の両サイドの頂点を皮膚の内側にわずかに押し込む。

唇の頂点も押し込む解説しているユーザーがあったが、どちらが良いかは不明。

両サイドだけは押し込んでおく。

唇

目の両端もわずかに皮膚の内側に押し込む。

これらは公式からの推奨。

目

真下から見た時にアーチ状になると良いらしい

アーチ

球体ではないアニメ目の調整

リグを作る前に球体ではないアニメ目は特殊な作業が必要

目のボーンがある場合

顔のボーンが設定してある場合はEye PivotsAuto > Flatに設定

Flat

ここでボーンなどを選べば良いと思われるが、未検証

目のボーンがない場合

Manualを選択し、緑色のPivotを移動する。

中央

緑色のpivotポイントが目玉より奥にあることを確認。

目のピヴォット

ただ、これもどれぐらい奥に引けばよいかは要調査。こめかみあたりで問題なかった。

これら作業はGenerate Faceit Rig前にしかできない。

既にRigを作ってしまった場合はEdit Landmarks設定に戻って行うこと。

Generate Faceit Rig

Generate Faceit Rigボタンを押すとリグが生成

Generate Faceit Rig

1つウィンドウを挟むが、基本OKで良いかと思う。

ウィンドウ

このウィンドウのセッティングについては要調査

Bind

上の状態ではリグができただけで動かない。

RigタブのままでUIが変わっているのでBindをクリックしデフォルトのままOKを押す。

Bind

これでコントローラーをポーズモードにいれれば動くので確認する。

上のBack to Landmarksを押すことでランドマーク設定からやり直しも可能。

注意:バインドのウィンドウが消えるまで何も押さない

バインド中に画面をクリックしてしまうと中途半端にバインドが中断されると思われる。

バインドのアイアログが消えるまで何も押さないこと。

バインドがおかしくなってしまってもLandmarksからやり直せばもう一度やり直せる。

この後の作業で先に覚えておく注意点

この後の作業は気に入らなければ戻って設定し直していくケースがよくある。

その時にBindし直した時メッシュが壊れるということがよくある。

コレはおそらくFaceitのバグで、一旦Landmarks設定まで戻った後、壊れるメッシュのシェイプキーを削除しよう。

シェイプキーはBasisを先に削除すると壊れることがある(?)ので注意

シェイプキー

Expressionsタブ

「目を閉じる」「口を開ける」などの基本的な表情表現をパラメタをいじるだけで動かせるキーを生成する。

Expressions

Load Faceit Expressionsを押す。その他は上級者用。

Load Faceit Expressions

基本はARKitのままOKで良い。

arkit

1つずつためしながら調整

上の操作でパーツごとに動きが自動で生成されている。

たとえばeyeBlinkLeftを選択すると、左目が閉じる。

左目

アニメ目の場合ほぼこれが成功することはない。

このままポーズモードにはいってコントローラーを動かして微調整。

特に何もしなくてもここで動かした場所は保存されているので、他のパーツに移動してから戻ってきても、コントローラは先ほど動かしたままになっている。

さらにスカルプトで調整

上の例を見てもらえば分かるが、アニメ目の場合はコントローラーだけでは修正不可能。目が崩れている。

これをスカルプトで細かく調整していく。

修正後

Objectモードに戻る > 修正したいメッシュを選択 >スカルプトボタンを押すとスカルプトモードになる。

スカルプトモード

このときこの例ではeyeBlinkLeftが選択されたままであることを確認。他のパーツになっていると、そこのキーが修正されてしまう。

編集モードでも可能

編集モードで動かした頂点も記録されていることを確認しているが、何かのタイミングで記録されない時がある(要検証)

この場合シェイプキーではなく「そもそも元の形を変形した」という最悪な結果になってしまう。

正しく書き込まれたかを逐一確認しながら作業する。

スカルプト後は反対側にミラー可能

次のボタンで左右反対側に調整をコピーしてやることが可能

ミラー

だが、この機能は結構左右でずれる。

なんだかんだで手作業で両方つくることが多い。

歯の動きも注目しておく

私が知る限りでは、口の中が見えるポーズにおいて歯の位置が悪いという感覚がよくある。

正直な所、概ね元のモデルの形状が悪い可能性が高いがそこまで修正するのは専門的知識と修正の苦労が必要。

口が開いているポーズで、歯の位置が悪いと感じたらこれらにも動きをつけたほうが良いかと思う

※上の前歯がやたら見えている、下の歯が見えても良い時に隠れている等

ただ、歯が動いている動作と口の動きが不一致で不自然になるケースが多いのでコレもひっそり動く程度にする。

前歯の例

Amplify調整

例えばjawOpenを見てみると口が開きすぎている

口開けすぎ

ここまで大きく口を開けることはまず無いのでAmplifyを押して数値を少し下げてやる。

amplify

0.8

MouthCloseが変!

moughCloseというエクスプレッションが変なことに気づくと思う

変な顔

これは正しいので気にしない

口を閉じた状態で顎を開くという動作は人間的に可能。

私は一応ここで歯が飛び出している箇所を修正、こちらも0.8にamplifyするなどの対応はしている。

関係ないパーツが動く!

表情と一緒に関係ないパーツが動く場合Rigidへ登録してやり直ししてやると治る可能性が高い。

ただ、これは同一オブジェクト内でメッシュが別れているときにしか使えないかもしれないので注意。

そもそも首より上のメッシュとそれ意外の素体は分けておいて、手足や胴体はFaceitに登録しないほうが良いかもしれない(要検証)

手動でウェイトを塗り直す場合

手動でウェイトを塗り直す場合は次

下半身にウェイト

ウェイトペイントに入ってDEFと接頭辞がついているグループを1つずつチェックする

UI画像

ここで手足にウェイトが乗っていた場合は無駄な部分のウェイトを消してやる。

楽なやり方があるかもしれないが、ブラシでSubtractが良いかと思う。

Bakeする

エクスプレッションを書き終えたらBakeタブへ移動する

bakeタブ

Faceit固有のエクスプレッションを個別のシェイプキーに書き出す処理だとのこと。

この処理は非破壊で行われるらしく、ベイクした後でも前の項目にもどって作業し直すことが可能。

Bake開始

Bake Shape Keysでベイク開始

ベイクボタン

ダイアログがでるがデフォルト+Keep Faceit Rig Activeをオンにしておくと表情のコントローラーがそのまま使える。

Keep Faceit Rig Active

オフの状態でBakeしてしまうと、ここまで使ってきたFaceitの表情コントローラーが削除される。

削除

恐らくこのコントローラーは細かすぎるため、通常は後述のMocap側にある追加のコントローラーを使うことを想定していると思われる。

あまり細かい表情調整が必要ないのであればこれはオフにしておいて後の項で追加する別のコントローラーを使うのも良い。

両方混在することもできる。

注意:Auto-Rig等とFaceitリグを合体する

Faceitのリグを別のリグとくっつけることが出来る。

重要:この作業だけはデータを書き換える破壊処理。この後Back to Landmarksまで戻れなくなる。

厳密には出来るが、その場合Auto-Rigのデータも全消去される事を確認しているので十分注意する

アーマチュアが自動で入っている

私が試した限りだと先にセットアップしておいたAuto-Rigが既に設定されており、手間が省ける。

Rig Utils > Join to Bodyをクリックしてくっつける。

Mocap

上までで殆ど完成しているがMocapタブでさらに色々できる。

Shapes

Source Shapeに既に設定済みのシェイプキーがはいっている。

Source Shape

ここで右の数値を上げ下げすることで、最大値/最小値を細かく調整できる。

口が開きすぎたり、眉が動きすぎるといったときに下げて調整すると便利。

Control

Generate Control Rigをクリックすると追加のリグが生成できる。

controlRig

追加のウィンドウがでるが、デフォルトでOKを押す。

手動で表情をアニメーションする時に使いやすいリグなので追加しておいて損はない。

Set Child Of

ここで追加したリグをヘッドボーンに追従させる設定

頭のリグ

次にControl Rig Setup And Utils > Experimental > Set Child Ofをクリック

set child of

iPhoneなどで顔をキャプチャしたLive Link Faceなどのモーションがそのまま使える。

読み込みUI

基本的にiPhoneから送ったデータ(csv)をここに読み込んでImport Live Link Face CSVボタンを押すだけ。

読み込んだら顔のアニメーションがタイムラインに記録されている。

ベイクする前にこの読み込みを行うと表情の動作サンプルとフェイシャルキャプチャがMIXされてしまう。

この機能は基本的にベイクした後で使おう。

以上

非常に長い内容になったが全機能精査できているわけではない。

が、基本セットアップで必要な項目は全部あると思う。

今回特に注意してほしいのはAuto-Rigなどとマージする箇所だけ後戻りできないので慎重にやってもらえればと思う。

マージ前のデータを別で保存しておくのが良いだろう。

個人的なメモ書きも兼ねているので、確実に覚えておきたい項目が他にあれば追記する。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)