初心者なりにまとめた苦悩のメモです。
ウェイトの概要
- 数値は0から1までの範囲
- 値が大きいほどオブジェクトがボーンに追従する
- 0だと追従せず1だと完全に追従する
ウェイトを付けるまでの基本的な流れ
- object modeでshift+A メッシュでオブジェクトを追加。いい感じに編集する。
- object modeでshift+A アーマチュアでボーンを追加。1のオブジェクトに合わせて編集する。
- オブジェクトを選択する
- ボーン全体(アーマチュア)を選択する
- オブジェクトをアーマチュアに対応付ける(Ctrl+p)
- 空のグループでを選択
- 空グループを選択すると、ボーン名から自動で頂点グループが作成されるようになる。作成された時点ではグループの中は空だが、頂点に重み付けすると、対応するグループに登録されていく
- Edit> Lock Object Modesのチェックを外す
ウェイトペイント時の操作で困ったこととか
ブラシを使って塗るだけの作業なのに、癖強で難儀したところを紹介↓
Ctrl+左クリックでボーンの選択ができない
左上のアイコンで、ボーンのアイコンを選択しておく。
私の環境だと、Ctrl+Shift+左クリックで選択できた。
ボーンが選択できない
ウェイトを付けるときにボーンの選択が必要になるが、ウェイトペイントモードへの入り方に気をつけないとボーンが選択できず作業ができない。
- ウェイトペイントモードへの入り方
- アーマチュアを選択してポーズモード
- オブジェクトを選択してウェイトペイントモード
この手順以外で切り替えるとボーンのアイコン自体が表示されない。
一か所しかウェイトを塗れない
頂点を選択するモードになっていると選択した頂点しかウェイトが塗れない。
なんか思ってるとこにウェイトを塗れない
基本的に頂点がある部分に着色できるので、ワイヤーフレームに表示を切り替えておくと色が塗れる場所がわかりやすい。
塗れているのか分からない
ウェイトが乗っていないところを黒く表示する。ボーン名が表示されていない
アウトライナーでアーマチュアを選択してviewport displayのNamesにチェックを入れる
動きを確認するために回転で動かしたボーンを元の位置に戻す
- Aでボーンを全て選択する
- Alt+Rでもとに戻る
ウェイトに小さい値を設定したのにオブジェクトが普通に動くのは何故か
オブジェクトがボーンに追従する強さを表すと単純に考えて設定してみたところ、なんか思ってたんと違う…という状態になった。
1つの頂点にウェイトを0.5に設定して動かしてみたら、オブジェクトがガッツリ追従してきたよ?これは何でなの😖期待したイメージだと、動いたボーンに対して、オブジェクトは半分程度しか動かないはずだったんだけどなぁ…。
そもそも何に対して1と考えているのかな。
少し詳しく調べてみると、どうやらウェイトは、1つの頂点を引っ張り合う力の割合を決めている様子。まぁ、どこにも引っ張り合う力なんて書いてないけど、自分がわかりやすくするための解釈です。この引っ張る力はボーン由来で、筋肉が引っ張る力だと見れると思う。メッシュを貼るときも、人体の筋の付き方をある程度意識して貼ったほうがウェイト設定が楽になるのかな🤔。
で、どうすれば想定した動きになるのだろう。
引っ張る力はボーンに対応付けられている(ように私には見えてる)から、他のボーンからも影響を受けるようにすると思った通りに動くようになるでしょう。
例を考えてみる。
頂点Aに対してボーン1(頂点グループ1)で0.2、頂点グループ2(ボーン2)で0.8とウェイトを設定する。ここで、頂点Aに設定されたウェイトの合計は1。
これを実際に設定してみると、ボーン1を動かしたときのその頂点の動きは2割程度となった。
尚、1つの頂点に設定されるウェイトの合計は1になることが多いようだが、1を超えても問題なく動作する。ただ過剰に引っ張られるということが起こるみたい。
で、一番はじめの問題となった例は、1つのボーンにしかウェイトを設定していないので、他の引っ張る力を受けていないので1を設定しているかのように動いている。
<Blender><こぼれ>ウェイトの結構大事な基本の話|ななっしゅ
引っ張り合ってる部分の例
下のの画像はキャラクターの腕の部分で、頂点を選択した状態。頂点を選択するとItemタブの一番下にVertex Weightsの項目が表示されるようになり、そこに頂点のウェイトが表示される
ここを操作すれば、上腕のボーンと肘から腕のところのボーンがそれぞれに引っ張る力を、細かく調整できるので便利だった。