Blender でドライバーを使う
位置・回転・拡縮をそれぞれリンクさせ、コントロールするのはコンストレイントでもできる。しかしドライバーを使えば、それらを影響力とリンクさせたり、チェックボックスを操作したり、あらゆるパラメータを操作できる。
ここではシェイプキーの影響力をドライバーで操作する例を紹介する。これは、ひじを曲げたとき上腕二頭筋が隆起するのを表現したりするのに使える。この隆起をシェイプキーで作成し、ひじの回転角度に対応してシェイプキーの影響力を強くする。
肘の回転に合わせて筋肉を膨らませるだけならボーンとトランスフォームコピーを使うのが手軽だ。それについてはボーンを使った筋肉の表現を参照。

Blender 2.80
Blender 2.80 でドライバーのワークフローは大きく改善された。Blender 2.80 でドライバーを設定するには、ドライバーを設定したい要素の上で「右クリック > ドライバーを追加(Ctrl + D)」を実行する。するとドライバー設定ウインドウが現れるのでそこでドライバーの設定を行う。

Blender 2.78
Blender 2.78 ではドライバーの作成方法が変更された。このバージョンでドライバーを作成するには、対象のプロパティを右クリックしドライバーを追加(Add Drivers(Ctrl + D))> 後で手動設定(シングル)(Manually Create Later(Single))をクリックする。

グラフエディタのプロパティパネル(N)がタブ化された。ドライバータブでドライバーを編集できる。

ドライバーの作成
シェイプキーの使い方は他の記事に譲るとして、以下のようなシェイプキーがあるとする。


この Key 1 にドライバーを追加する。シェイプキーをプレビューするピンのチェックを外し、Value: を右クリック > Add Driver を実行する。ドライバーがセットされると Value: が紫色に変化する。


ドライバーの設定
Graph Editor でドライバーモードに変更し、Value(Key 1) を選択するとグラフが表示される。

このドライバーを以下のように設定する。ドライバー設定画面が表示されていないときは N キーで表示できる。

エラーが出るときは
Python auto-execution disabled というエラーが出るときは、スクリプトの自動実行を許可すれば実行できるようになる。File > User Preference(Ctrl + Alt + U)で User Preference を開き、File の Auto Execution を許可する。


設定の解説
回転角度は弧度法が採用されている。360°回転したときその値は2*πつまり6.28になる。
Expr が var-1 なのは、ひじが直角になるあたりで上腕二頭筋を変形させ始めたいからだ。 この値はモデルごとに微調整が必要になる。
Ob/Bone はシェイプキーをコントロールするボーン/オブジェクトを設定する。
Type: は位置/回転/スケールのどれをパラメータのコントローラとして使うかを選択する。これに X Rotation を選択するのはひじの回転は X 軸で回転するようにきめてあるからだ。詳細はボーンのローカル座標軸設定を参照。
Space: にローカル空間を設定するのは、ボーンの回転量によって影響力を操作したいからだ。グローバル空間の場合は親のボーンが変更されたときもその回転量が変化してしまう。