Rigifyのリグでシェイプキーとドライバを使用する方法

環境

Blender2.83.4

結論

・ドライバ設定で,ORG-<ボーン名>を使用する.

1. シェイプキーの割当て

シェイプキーを理解している人はこの項目を飛ばして読んでも問題ない.

Rigifyで生成したRigでポーズをとらせる.次にポーズをとらせたオブジェクトのArmatureプロパティにて赤枠のボタンをonにする.

画像2

+を2回押し,Basisと任意のシェイプキーを作成する.Basisではなくもう一つ作成したシェイプキー(画像だとKey 1)がハイライトされてることを確認すること.

画像2

編集モードでオブジェクトを編集する.この際に頂点数が変化する編集を行ってはいけない.頂点の移動のみが許される.再びオブジェクトモードに戻り,キー値を変更して正しく頂点が移動しているかを確認する.

2. ドライバの割当て

ドライバは関数であり,ある値の変化に応じて別の値を変化させるものである.今回はボーンの角度によってシェイプキーのキー値を変更するもの.

シェイプキーのキー値を右クリックし,ドライバーを追加を選択する.次にエディタータイプをドライバーに変更する.

画像3

Nキーで右側のプロパティを表示する.次にドライバーの項目に移る.オブジェクトとボーンを次のように設定する.
・タイプ: 任意
・(x): 任意の名前
・オブジェクト: rig
・ボーン: ORG-ボーン名
・タイプ,モード,スペースは任意
下の画像は肩の頂点を修正した際に割り当てたドライバの設定例である.

画像4

このORG-ボーン名はrigのボーンレイヤーの32番目で確認できる.

画像5

左側からシェイプキーを選択する.中央のグラフに直線が表示される.
・横軸: ドライバで指定した値
    ・上の設定例ではORG-upper_arm.RのZ回転量(単位はラジアン)
・縦軸: シェイプキーの値

2つの点を移動して,元のポーズ時にはキー値が0,ポーズをとらせたときはキー値が1になるようにする.下の画像ではORG-upper_arm.RのZ回転量が約-0.14[rad]のときキー値が0,約-0.025[rad]の時キー値が1なるように設定してある.グラフからも分かる通り,-0.14~-0.025[rad]の間の場合はキー値が比例する.この間を直線ではなく曲線にすることも可能である.

画像6

ドライバの設定を行い,ポーズをとらせることでシェイプキーが自動で変化できるていることを確認する.

補足

・ドライバで「無効なドライバーターゲット」が表示され,ターゲットの項目が赤くなることがある.その場合は「依存関係を更新」を押せば修正されれう.

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