Blenderでウェイト設定してみた
ウェイトについて見ていきます!
以前作ったIKBoneのシーンにオブジェクトを追加します。
人型っぽくして、これからウェイトを設定していきます。”body”という名称にしておきます。
オブジェクトモードで進めます。
“body”オブジェクトをまず選択して、次にIKBoneを組んでいる”Armature”選択します。
そして、Ctrl+P→自動のウェイトで を選びます。
bodyがArmatureの子になります
自動でウェイトへを選ぶことで、Blender側で勝手にウェイトを設定してくれました
これでbodyオブジェクトはBoneについていくようになります
動きを確認するためのポーズモードへ移動します。
ただ、先にArmatureを選択しておかないとポーズモードは表示されないので注意。
実際に腕のBoneを動かしてみると、わかりにくいですが画像赤丸の部分も一緒に動いてしまいました
自動でウェイトをつけると、意図しないところまでウェイトの影響が及んでしまいます
こういうところを修正していきます
オブジェクトモードで”body”オブジェクトを選択したら、さらにそこから編集モードへ行きます
モデルのポーズがデフォルトに戻りますが、無視して大丈夫です
重要なのは、意図しないウェイトの影響を受けている画像赤丸部分のポイントです。
選択して、ショートカットNでアイテムタブを出しその下の方にある頂点ウェイトを見ると
そのポイントに割り当てられているウェイトを見ることができます。
自動ウェイトで設定されたウェイトの名称は、Boneの名称を参照しています。
今回であれば、L_Shoulderというウェイトは肩のBoneの名称なので本来肩回りに付くはずのウェイトですが、
お腹のポイントにまで影響しているようです。L_UpArmも同様です。
その二つのウェイトを0にすることで、腕や肩を動かしたときにお腹のポイントが影響を受けなくなります。
ただ本来ウェイトは、それぞれの値を足して1になるのが理想です。
現状ではL_ShoulderとL_UpArmの値を0にしたためにその分だけ1に足りず、Spine01の0.243+Spine02の0.585=0.828という数値になっています。できれば合計1にしたいです。
そこで便利なのがNormalizeです。
Normalizeをクリックするだけで、残ったウェイトを自動的に良い感じに合計1にしてくれます。
腕をぐりぐり動かしてもお腹のポイントは動かなくなったので成功です!
腰を曲げてみると、お腹の真ん中のポイントの動き方に違和感を感じます。もっと隣のポイントと一緒に自然と曲がってほしい・・・
ここのウェイトも修正してみます。
Spine01、Spine02、L_Shoulder、R_Shoulderというウェイトがこのポイントに影響を与えてるようです。
このポイントの位置で、L_Shoulder、R_Shoulderという両肩のウェイトが影響しているのはおかしいので0にします。
その後、Normalizeして残ったウェイトの合計値を1にしておきます。
もう一度ポーズモードへ行って確認しますが、あまりポイントの位置は変わらず依然違和感を感じます。
一旦、先ほど修正に成功した画像赤丸のポイントの数値を見てみます。
このポイントのウェイトのSpine01とSpine02の数値、ここの数値が
全然違ってしまっているので、ここの数値を合わせます。
普通に数値入力で数字を合わせてもいいのですが、今回はCopyという機能で数値を合わせます
まず画像赤丸1番から選択して、その後に隣のポイント2番を選択します。
その後、Copyをクリックします。そうすれば、2番のウェイトの設定を1番に設定できます。
(Copyは最後に選択したポイントのウェイトの数値をそれまで選択していたポイントに適用させることができます。)
これでウェイトの設定が隣と一緒になり、きれいにポイントも曲がってくれました
ウェイトについてはまだまだ続きます!