Blenderのボーンから自動割り当て(Assign Automatic from Bones)という機能を使用して、すでに調整が終わったウェイトを維持したまま、新規に追加したボーンにウェイトを自動で割り当てる方法を紹介します。
1 モンキーを使用した作例
ここではモンキー(Monkey)に「Head」と名前を付けたボーンをひとつだけ関連付けした状態から(画像1参照)、
「Ear.L」と「Ear.R」というボーンを後から追加してウェイトの自動割り当てを行う場合を例にします(画像2参照)。
上記のようにボーンが少ない場合は再度自動のウェイトで(With Automatic Weights)を使用して関連付けをしたほうが早いですが、すでに調整済みのウェイトがたくさんある場合はこの方法は使用できないので、ボーンから自動割り当て(Assign Automatic from Bones)を使用して追加したボーンだけのウェイトを割り当てる必要があります。
同じ内容を下記の動画でも紹介しています。
1.1 説明用のメッシュとアーマチュアの作成
まずは説明用のメッシュとアーマチュアを作成します。
3Dビューポートのヘッダーにある追加(Add)>メッシュ(Mesh)からモンキー(Monkey)を追加します(画像3参照)。
さらに追加(Add)からアーマチュア(Armature)を追加します(画像4参照)。
追加したアーマチュアを選択した状態で、プロパティ(Properties)>ボーン(Bone)で名前を「Head」と変更します(画像5参照)。
プロパティ(Properties)>オブジェクト(Object)>ビューポート表示(Viewport Display)で最前面(In Front)にチェックを入れて、表示方法(Display As)をワイヤーフレーム(Wired)に変更します(画像6参照)。
プロパティ(Properties)>データ(Data)>ビューポート表示(Viewport Display)の名前(Names)にチェックを入れて、ボーンの名前を表示させます(画像7参照)。
この時点で画像8のようになっているはずです。
ここまで出来たらモンキー⇒アーマチュアの順番でShiftキーを押しながら選択して、Ctrlキー+Pキーを押してペアレント対象(Set Parent To)のメニューを呼び出して、アーマチュア変形(Armature Deform)の自動のウェイトで(With Automatic Weights)を選択します(画像9参照)。
これで説明用のメッシュとアーマチュアは完成です。
1.2 追加したボーンにウェイトを自動で割り当てる方法
ここからは調整が終わったウェイトを維持したまま、新規に追加したボーンにウェイトを自動で割り当てる方法を紹介します。
手順1
アーマチュアを選択して編集モードに切り替えたら、耳の位置に合わせたボーンを追加して画像10のように「Ear.L」と「Ear.R」と名前を付けます(画像10参照)。
「Ear」の最後には「.L」と「.R」を忘れずにつけてください。
手順2
ポーズモードに切り替えて「Ear.L」と「Ear.R」を選択します(画像11参照)。
選択ができたらオブジェクトモードに切り替えて、アーマチュア⇒モンキーの順番でShiftキーを押しながら選択します(画像12参照)。
手順3
現在の状態からボーンから自動割り当て(Assign Automatic from Bones)で「Ear.L」と「Ear.R」の関連付けを行ってもいいのですが、後ほど行うウェイトペイントでの手間を省くためにペイントマスク(Paint Mask)を使用して事前に頂点グループの範囲を限定しておきます。
現在モンキーがアクティブになっているのでそのまま編集モードに切り替えて、画像13のように耳の部分だけを選択します。
一方を選択したら残りはミラー選択(Select Mirror)を使用して選択すると便利です。
耳の部分だけを選択ができたらウェイトペイントモードに切り替えて、ペイントマスク(Paint Mask)をオンにします(画像14参照)。
これで画像15のように編集モードで選択していた耳の部分以外にマスクを設定できました。
この状態でボーンから自動割り当て(Assign Automatic from Bones)を使用すると、マスクが設定してある部分には頂点グループが割り当てられないようになります。
手順4
ペイントマスク(Paint Mask)が設定できたので、「Ear.L」と「Ear.R」が選択されていることを確認して3Dビューポートのヘッダーにあるウェイト(Weights)>ボーンから自動割り当て(Assign Automatic from Bones)を選択します(画像16参照)。
これで「Ear.L」と「Ear.R」の関連付けもできました。
ここまで出来たらペイントマスク(Paint Mask)はオフにしてください。
手順5
現在「Head」・「Ear.L」・「Ear.R」のウェイトはそれぞれ以下のようになっています。
画像17は初めからあった「Head」のウェイトですが、ボーンから自動割り当て(Assign Automatic from Bones)を使用したので「Ear.L」と「Ear.R」を関連付けた後でも元のウェイトを維持しています。
画像18は「Ear.L」です。
画像19は「Ear.R」です。
上の3つの画像で確認できるように耳の部分はウェイトの合計が1以上になっている部分があるので、これを手動で調整していきます。
サイドバー(Side Bar)のツール(Tool)>シンメトリー(Symmetry)で頂点グループをミラー反転(Mirror Vertex Groups)にチェックが入っていること、ミラー(Mirror)のXがオンになっていることを確認します(画像20参照)。
また、サイドバー(Side Bar)のツール(Tool)>オプション(Option)の自動正規化(Auto Normalize)にチェックを入れます(画像21参照)。
この状態で主に「Head」の耳の部分のウェイトの値を0で塗っていくことでウェイトの調整を行います。編集モードで耳の部分の頂点が選択中なので、再度ペイントマスク(Paint Mask)を使用してウェイトの調整を行うと便利です。
頭の部分と耳の部分の境界線がはっきりしすぎている場合はぼかし(Blur)で多少ぼかします。
ウェイトの調整が終わった「Head」・「Ear.L」・「Ear.R」のウェイトはそれぞれ以下のようになっています。
画像22は「Head」です。
画像23は「Ear.L」です。
画像24は「Ear.R」です。
以上で完成です。
2 補足
2.1 ポーズを作成している場合
ポーズを作成している場合、そのままの状態でボーンから自動割り当て(Assign Automatic from Bones)を使用するとうまくウェイトが割り当てられない場合があるので、アーマチュアを選択してプロパティ(Properties)>データ(Data)>ポーズ(Pose)でレスト位置(Rest Position)を選択した状態で(画像25参照)、ボーンから自動割り当て(Assign Automatic from Bones)を使用してください。
ボーンから自動割り当て(Assign Automatic from Bones)を使用後はポーズ位置(Pose Position)に戻してください。
2.2 ボーンの選択について
今回の記事では手順2でポーズモードにしてボーンを選択していますが、Blender 4.0以降ではShiftキーを押しながらで複数のボーンを選択できるので、手順4のボーンから自動割り当て(Assign Automatic from Bones)を使用する前にボーンを選択しても構いません。
Blenderの4.0より前のバージョンでは手順4の状態では複数のボーンを選択できないようなので、手順2のように予めポーズモードで選択しておく必要があります。
2.3 手動でウェイトペイント
後からボーンを追加するような場合はボーンから自動割り当て(Assign Automatic from Bones)を使わずに手動でウェイトペイントすることも多いです。
すべて手動でウェイトペイントする場合は、手順2まで進んだらウェイトペイントモードに切り替えてペイントしていきます。
2.4 変形(Deform)のチェック
手順5で初めからあったボーン(この記事では「Head」)のウェイトを調整する際に、カスタムシェイプ(Custom Shape)を使用している場合は変形(Deform)にチェックの入っていないボーンのウェイトまで調整しないように注意してください。
2.5 ペイントマスク(Paint Mask)による範囲の限定
手順3で行ったペイントマスク(Paint Mask)による頂点グループの範囲の限定は、自動のウェイトで(With Automatic Weights)を使用した場合は機能しないようです。
以上、Blenderの「調整済みのウェイトを維持したままでボーンを追加する方法」でした。
コメント