鎖骨と肩甲骨のリグ―Blender アニメーション

カテゴリ:blender

普通腕を肩より上にあげると鎖骨や肩甲骨も同時に挙上する. また腕を前に突き出すと肩甲骨も前へ移動する;このとき肩甲骨は肋骨に沿って回転する. 骨のこのような動きを模倣しないと,モデルを動かしたときにポリゴンが破綻しやすい.

この記事ではそれらを自動で行うリグを紹介する. IK と Limit Rotation と Transformation しか使わないので比較的簡単だ.

動作風景
動作風景

ボーンの初期配置

ボーン配置はそれほど特殊ではない. 特殊なのは肩甲骨の回転を表現するために鎖骨あたりに回転用ボーン M_pivotBlade.L を配置してあるところだ. 階層としては背骨ボーンと肩甲骨ボーンとの間にある. この回転用ボーンのデフォームを無効にしておく(Pose モードで Shift + W > Deform).

ボーンの初期配置
ボーンの初期配置

ローカル座標は重要だ. 鎖骨と肩甲骨はローカル X 軸座標で上下に動く. また肘もローカル X 軸座標で曲げるようになっている.

IK の設定

腕の IK に特殊なことはしない. いつものように IK のリグを作成する.

鎖骨と肩甲骨とにIK を設定する. 腕の IK ターゲット(T_arm.L という名前だとする)と D_clavicle.L とを選択し, D_clavicle.L に IK をつける. Chain Length: は1. 同様に D_blade.L にも IK を設定する.

ここまでで腕と IK 用ボーンが動く.

IK のテスト
IK のテスト

肩甲骨の回転

肩甲骨の回転は少し複雑だ. 肩甲骨を前後方向に回転させるために M_pivotBlade.L を回転させる; しかし D_blade.L と M_pivotBlade.L の回転軸が違うため M_pivotBlade.L に Transformation を設定することでこれを行う. また D_blade.L 自体は回転してほしくない. なので D_clavicle.L の前後方向の回転を M_pivotBlade.L へ伝えることになる.

肩甲骨の前後方向の回転を設定する. D_clavicle.L と M_pivotBlade.L とを選択し, Transformation を M_pivotBlade.L につける. ここでは D_clavicle.L の前後(Z軸)の回転を M_pivotBlade.L の Y 軸の回転へ変換する. パラメータはそれぞれ以下の画像のように設定する.

Transformation の設定
Transformation の設定

ここまでで鎖骨と肩甲骨とが IK に追従して回転するようになる. 現状では肩甲骨自体も回転している.

回転のテスト
回転のテスト

回転の制限

あとは D_clavicle.L と D_blade.L との IK の可動範囲を制限し, M_pivotBlade.L に Limit Rotation をつけるだけだ. IK の可動範囲は Properties > Bone > Inverse Kinematics で設定できる. それぞれ以下のように設定する. 回転量は自由に変更できる.

Limit Rotation の設定
IK の可動範囲制限と Limit Rotation の設定

blend ファイルダウンロード

関連記事
Blender 記事の目次
自動で動作するのを防ぎたければ Driver で Copy Rotation の影響力を 0 にすればいい. このようなスイッチの作成法は IK-FK 切り替えスイッチ を参照