Blender でボーンフェイスリグ

ボーンで表情を作るときでもシェイプキーでやっているように、よく使う表情を登録しておいてそれを組み合わせて使うと便利だ。Action と Action コンストレイントを使えば、ボーンで組んだリグでもシェイプキーのようにボーンの状態を操作できる。
この記事ではボーンに Rigify の Pitchipoy を使っている。Blender 2.79 以降では通常の Rigify でフェイスリグが使える。
Action を使って表情を保存する
表情のアクションには2種類ある。ひとつはまばたきのようなキーがひとつのアクション。もうひとつは眉の上下のようなキーがふたつのアクションだ。
キーがひとつのアクションはニュートラルのキーと変形後のキーと、ふたつのキーが必要になる。キーがふたつのアクションでもニュートラルのキーは必要だ。ふたつのキーの移動量が同じになるとは限らないからだ。


このとき Fake User にチェックを入れて Action が削除されないようにする。

ボーンを使って Action を復元する
Action コンストレイントを使えばアクションに記録されたポーズを復元できる。シェイプキーと同じように、Action コンストレイントを重ねると上書きではなく追加される。


簡易版フェイスリグ
簡易版は目や眉毛の動きが左右で分れておらず、リップシンク用のポーズはない。コントロールできるのは
- 眉の上下
- 右上がりの眉と右下がりの眉
- まばたき
- 口を縦横に開く
- 口角の上下
これだけでもかなりの種類の表情を作れる。
一般的なTips
アクションのニュートラルをコントロール用ボーンのローカル位置の 0 に割り当てる。こうすると Alt + G でボーンの位置をリセットしたときに、デフォームボーンを初期値に戻せる。
Pitchipoy ではコンストレイントのコピーはやらない方がいい。Pitchipoy のコントロール用ボーンに様々なコンストレイントがついているため、リグが壊れることがある。
目のアクション設定
コントロール用ボーンのローカル Y[-0.1, 0]にまぶたの Action を割り当てる。ボーンをマイナス方向へ動かすのは、瞼を閉じる動作と同じ方向にするためだ。
コントロール用ボーンの Target Range はボーンの移動量で変化する。コントロール用ボーンの大きさに合わせて適宜修正する。

上の画像のボーンはコントローラー用ボーン。Action コンストレイントはメッシュを変形させるボーンにつける。
眉のアクション設定
ローカル Y[-0.05,0.05] に眉の上下を、ローカル X[-0.05,0.05] に右上がり右下がりを割り当てる。

口のアクション設定
ローカル Y[-0.1,0] に口の開閉を、ローカル X[0,0.1] に口を広げるアクションを割り当てる。顔メッシュのもともとの口が小さかったので口をすぼめるアクションは作らなかった。そのアクションがある場合はローカル X[-0.05,0.05] にアクションを割り当てる。

口角のアクション設定
ローカル Y[-0.05,0.05] に口角の上下を割り当てる。
