Blender 4.1 の使い方 (25) ボーンコレクションとRigify

前 (シミュレーションゾーン) www.mztn.org


ボーンコレクションとRigifyの使い方

モデルを変形するために使うボーンについては、アーマチュア (ボーン) でも解説していますが、ボーンをファイルを格納するフォルダのように分類するために、 ボーンコレクション(Bone Collections) というボーンをグループ化する機能が Blender 4.0 から使用できるようになりました。 さらに Blender 4.1 ではボーンコレクションを階層化できるようになりました。ボーンコレクションの中に(の下に)ボーンコレクションを配置できるようになりました。

BoneCollection41_22c_pose4.png


ボーンコレクション(Bone Collections) を使うことで、数100のボーンで組まれた複雑なリグでも扱いやすくなります。 下のポーズは人型のメッシュに Blender の標準アドオンの Rigify を使って生成されたリグを使っています。Blender 4.0 以降の Rigify はボーンコレクションを使うように変更されています。

Blender 3.6 までは アーマチュアレイヤー(Armature Layers) という、32個のレイヤーのどこかにボーンを配置する方法で、どの位置に何が配置されているか知っている必要がありました。 ボーンコレクションになってボーンのグループが名前で管理できるようになり使いやすくなりました。

BoneCollection_Rigify36.png


まずはボーンコレクションの簡単な使い方の説明から始めて、リグを組む (リギング: rigging) ための Blender の標準のアドオンである Rigify もボーンコレクションを使うようになったので、ボーンコレクションで便利になるところを紹介したいと思います。

楽に Rigify を試す事ができるように、指先まで Rigify が生成するリグに合わせた人型のサンプルメッシュもダウンロード (251KB)できます。 Rigify を有効にして Human (Meta-Rig) をメニューから追加するだけで使えます(後述)。

BoneCollection41_01.png


ボーンコレクションの操作

ボーンを追加すると、ボーン(Bones) という名前のボーンコレクションに自動的に割り当てられます。 日本語ではボーンと「ボーン」という名前のボーンコレクションの区別がつかないので注意してください。

BoneCollection41_basic00.png


ポーズモードで、ボーンコレクションに含まれる複数のボーンをまとめて選択したり、選択を解除したりすることができます。

BoneCollection41_basic01.png


ボーンコレクションは [+] ボタンで新規追加したり、[-]で削除することもできます。

BoneCollection41_basic02.png


ボーンコレクションを右クリックして、メニューからボーンコレクションを追加/削除することもできます。 ボーンコレクションをすべて削除しても含まれている(割り当てられている)ボーンが削除されるわけではありません。 ボーンコレクションの追加はアクティブになっているボーンコレクションの次の位置に追加されます。

BoneCollection41_basic02a.png


新規に作成したボーンコレクション(ボーン.001)にボーンを割り当てるには、3Dビューポートでボーンを選択して割当ボタンをクリックします。これで中央のボーンは、ボーンとボーン.001という2つのボーンコレクションに割り当てられました。 3Dビューポートで選択されたボーンを含むボーンコレクションには⏺️が表示されます。

BoneCollection41_basic03.png


一番下のボーンは「ボーン.001」には割り当てられていないため、⏺️は表示されません。

BoneCollection41_basic04.png


中央のボーンを選択して、「ボーン」ボーンコレクションをアクティブな状態で「削除」をクリックすると「ボーン」への割当は解除されます。

BoneCollection41_basic05.png


ボーンコレクションの👁️‍🗨️のアイコンをクリックすると、割り当てられているボーンを非表示にできます。

BoneCollection41_basic06.png


Blender 4.1 以降では、ボーンコレクションをドラッグして、別のボーンコレクションにドロップするとボーンコレクションを階層構造にすることができます。 ここでは、「ボーン.001」を「ボーン」の子とすることができます。

BoneCollection41_basic07.png


ボーンコレクションが階層構造になっている場合には、親を非表示にすると、子が表示指定であっても表示されません。

BoneCollection41_basic08.png


以上のような簡単な例ではボーンコレクションのメリットをあまり感じられませんが、ボーンが複雑な構成となっていると色々便利になります。

Rigify のボーンコレクション

複雑なボーン(アーマチュア)の構成でも、ボーンコレクションを階層化することで使いやすくなります。 複雑なボーン構成の例として、Rigify を使います。 今回は以下のような人体のメッシュを用意(ダウンロード) しました。

通常はモデル(メッシュ)の形状に合わせて Rigify のメタリグを修正してリグを生成しますが、今回のメッシュは Rigify のボーンの配置にメッシュ形状の方を合わせています。


BoneCollection41_01c.png



アドオンとして Rigify を有効にするとアーマチュアに人型のリグ(Human)を選択できるようになります。

BoneCollection41_02c.png


メタリグはメッシュに隠れてしまうので、プロパティのビューポート表示から最前面(In Front)に切り替えます。 通常はメタリグの個々のボーンをメッシュの形状に合わせて移動やスケールの変更を行います。

今回はメッシュ自体を Rigify のメタリグに合わせてあるので、ボーンの移動などは必要ありません。

BoneCollection41_03c.png


Rigify の顔のリグをアップグレードします。

BoneCollection41_04c.png


Rigify の顔のリグをアップグレードすると口の表情を操作しやすくなります。Z軸方向に拡大すると口を開けるなど。

UpdateFaceRig.png


Generate Rig でリグを生成します。

BoneCollection41_05c.png


アウトライナーに「rig」が現れます。この時点から「metarig」は不要です。削除して構いません。

BoneCollection41_06c.png


生成したリグはメッシュに隠れた部分もあるので、プロパティのビューポート表示から最前面(In Front)に切り替えてすべて表示されるようにします。

BoneCollection41_07c.png


ボーンコレクション

プロパティに表示されるボーンコレクションは、個々のボーンの名称ではなく、ボーンのグループに付けられた名前です。 ボーンコレクションには複数のボーンが含まれている場合があります。

BoneCollection41_08c.png


ポーズモードでボーンコレクションを選択して、「select」押すとそのボーンコレクションに含まれるボーンを選択できます。

BoneCollection41_08c2.png


プロパティのタブをボーンに切り替えると選択したボーンの名称が表示されます。

BoneCollection41_08c3.png


ボーンコレクションの表示/非表示は「👁️‍🗨️」マークで切り替えます。 多くのボーンコレクションの表示/非表示を一括して切り替えるには、マウスを「👁️‍🗨️」マークの上でドラッグします。

BoneCollection41_09c.png


メッシュとボーンの接続

メッシュとボーンを接続するとボーンの動きに合わせてメッシュが変形するようになります。 まず、オブジェクトモードで、シフトキーを押しながら、メッシュ、ボーンの順序で選択します。 ボーンがアクティブオブジェクトとして選択された状態にします。

BoneCollection41_10c.png


メニューから「オブジェクト/ペアレント/自動のウェイトで」を選択すると、ボーンとメッシュを構成する頂点の位置関係からウェイトが自動的に設定されます。


BoneCollection41_11c.png


アウトライナーでリグの下にメッシュが移動することが確認できます。

BoneCollection41_12c.png


例えば、ボーンコレクションの Leg.L (IK) を表示にして、左足の足の裏にあるボーンを動かすとメッシュの左足の部分がボーンの動きに合わせて変形することが確認できます。

BoneCollection41_13c.png


動かしたボーンは、「ポーズ/トランスポーズをクリア/すべて」で元の位置に戻ります。

BoneCollection41_14c.png


ボーンコレクションの追加

[+] ボタンでボーンコレクションを新規追加できます。

BoneCollection41_15c.png


追加したボーンコレクションは表示位置を移動させることができます。

BoneCollection41_18c.png


ボーンコレクションにボーンを割り当て

指定したボーンコレクションに選択したボーンを割り当てることができます。 1つのボーンは複数のボーンコレクションに割り当てることが可能です。

BoneCollection41_19c.png


ボーンコレクションの名前の変更

ボーンコレクションの名前をダブルkリックすると名前を変更できます。

BoneCollection41_20c.png


ソロフラグ(★)の意味

ソロフラグ(★) はチェックしたボーンコレクションだけを表示できます。 複数のボーンコレクションのソロフラグ(★) をチェックできます。

BoneCollection41_21c.png


ボーンコレクションの階層化

ボーンコレクションをドラッグして、別のボーンコレクションにドロップするとボーンコレクションに親子関係を持足せることができます。

BoneCollection41_22c.png


この例では Rigify が持つボーンコレクションとは別に、自分専用のボーンコレクションを作成しています。

BoneCollection41_23c.png


Rigify が持つボーンコレクションを「Rigify」というボーンコレクションの下にまとめた例。

BoneCollection41_24c.png


Forward Kinematics(FK) と Inverse Kinematics(IK)

3次元のグラフィックスの内部処理の話になりますが、オブジェクトの座標系(局所座標系)で表された頂点座標はスクリーンに表示するために何度も座標変換する必要があります。図の赤い点をボクシングのグローブとすると、グローブと手首の位置関係、手首と肘の位置関係、... かかととリングの位置関係、全体が存在する空間とスクリーンの関係といった感じです。

3次元のグラフィックスを画面に表示するためには、リングからグローブに向かって順次位置関係を決めて行く(順方向)必要があります。これを Forward Kinematics (FK : 順運動学) といいます。 グローブを前に出す時には、根本から先に向かって(順方向)、腰 → 胸 → 肩 → 肘 → 手首 → グローブのように関節の角度を内部処理で決めていく必要があります。

ForwardKinematics.png


グローブからリングに向かって位置関係を決めて行く(逆方向)ことができればポーズの設定が楽になります。グローブの位置や角度だけを指定するとその他の部分の位置や角度が決まります。 この方法を Inverse Kinematics (IK : 逆運動学) といいます。 他の部分の位置や角度は色々な値にできる可能性があって一つに決められないため、内部的には繰り返し計算などで最適解を求めます。

FK のボーンをまとめてボーンコレクションに割り当てています。

BoneCollection41_25c.png


Rigify では、ボーン毎に FK と IK を切り替えたり、中間的な状態に設定したりすることができます。

BoneCollection41_26c.png


FK と IK を一致させるにはサイドバーの 「FK->IK」または「IK->FK」をクリックします。ここではFKのボーンをIKに合わせています。

BoneCollection41_27c.png


これは IK を FK に合わせる場合です。

BoneCollection41_28c.png



Rigify のボーンコレクションとボーン一覧

Rigifyのボーンはボーンコレクションで分類されていて、ORG にはメタリグのコピー、 メッシュの変形に使うボーンコレクションに属するボーンを一覧にしました。

ボーンコレクションボーン
Faceear.L
ear.R
eye_master.L
eye_master.R
jaw_master
teeth.B
tongue
jaw_master_mouth
nose_master
teeth.T
eye_common
eye.L
eye.R
Torsotorso
hips
chest
neck
head
breast.L
breast.R
shoulder.L
shoulder.R
Fingersf_index.01_master.L
thumb.01_master.L
f_middle.01_master.L
f_ring.01_master.L
f_pinky.01_master.L
palm.L
f_index.01_master.R
thumb.01_master.R
f_middle.01_master.R
f_ring.01_master.R
f_pinky.01_master.R
palm.R
Arm.L (IK)VIS_upper_arm_ik_pole.L
upper_arm_parent.L
upper_arm_ik.L
hand_ik.L
upper_arm_ik_target.L
Arm.L (FK)upper_arm_fk.L
forearm_fk.L
hand_fk.L
Arm.R (IK)VIS_upper_arm_ik_pole.R
upper_arm_parent.R
upper_arm_ik.R
hand_ik.R
upper_arm_ik_target.R
Arm.R (FK)upper_arm_fk.R
forearm_fk.R
hand_fk.R
Leg.L (IK)VIS_thigh_ik_pole.L
thigh_parent.L
thigh_ik.L
foot_ik.L
foot_spin_ik.L
foot_heel_ik.L
toe_ik.L
thigh_ik_target.L
Leg.L (FK)thigh_fk.L
shin_fk.L
foot_fk.L
toe_fk.L
Leg.R (IK)VIS_thigh_ik_pole.R
thigh_parent.R
thigh_ik.R
foot_ik.R
foot_spin_ik.R
foot_heel_ik.R
toe_ik.R
thigh_ik_target.R
Leg.R (FK)thigh_fk.R
shin_fk.R
foot_fk.R
toe_fk.R

ページ先頭へ


Blender 2.8 - 4.3 の使い方 [目次]

copyright (C) 2019-2024 Jun Mizutani