〈Blender〉モデリング初心者が女の子を作って動かすまでの備忘録 #10【リギング2】
今回はウェイトペイントを行なっていきます。
初心者が「多分そうだろう」と憶測で書いている部分もあるので、間違っていたらごめんなさい!
前回の説明
まず#9で行ったペアレントの「自動のウェイトで」がそもそもどういう挙動か。
白い塔:ボーン 円:ウェイトペイント
視覚化するとこう(らしいです)。真ん中からじわ~っと伝わっていきます。
「自動のウェイトで」はこれを全てのボーンが一斉にモデルに対して行い、ウェイトが自動で均等に塗られることでモデルが動作するようになります。
ではそのウェイトとは何か?
ウェイトとは
ウェイトとは各頂点ごとに割り振られる「移動度合い」です。
頂点とボーンは#9で行ったペアレントで紐付けられるのですが、「紐付けられたボーンが動いた時、どの程度そのボーンに付いていくか」を数値で表します。その量がウェイトで表されます。
ウェイト値は0~1.0の間で設定でき、数字が大きいほどボーンに強く付いていきます。
キャラクターモデルはボーンに沿って頂点が大量に動き、体が動いて見えるといった仕組みです。
【ウェイト値の上限】
1つの頂点に複数ボーンのウェイト情報を格納させることができます。
ですが、ウェイトは各頂点で上限1.0 までで、それを超えると正常に動作しません。
「自動のウェイトで」はじんわり各ボーンからウェイトが各頂点に伝わっていくため、1.0を保ちながら且つ綺麗にウェイトが全身に塗られます。
〈ウェイトの上限例〉肩ボーン+肩の補助ボーン+上腕ボーン=必ずウェイト1.0以内に
#9で追加した補助ボーンは、意図的に動いてほしくないところに置くことで、優先的に補助ボーンに高い値が振られる仕組みを利用しているって感じですね。
ウェイトペイントで微調整
ボーン>ボディの順に選択し、ウェイトペイントモードにします。
そうすると「Ctrl+左クリック」でボーンを選んだり回転させながらウェイトを調整することができます。
【各頂点とボーンの紐付けられ方】
各頂点のウェイト情報は「頂点グループ」に格納され、いくつでも作ることが可能です。
「頂点1個ずつになんのボーンが紐づいているか」と言う見方ではなく、「そのボーンにどこの頂点が割り振られているか」と管理するのが頂点グループです。
頂点グループとボーンの名前を一緒にすることで、各ボーンと同名の頂点グループに格納されている頂点が連動し動きます。
「自動のウェイトで」ではウェイト塗り、頂点グループの生成までを自動で行ってくれます。
ある頂点→Head頂点グループに0.7、Neck頂点グループに0.3ウェイトが格納されている→Headボーンが動いたら0.7分ついて行く
例えばShoulder.L頂点グループを選択すると以下のように変色します。Shoulder.Lボーンが動いたら動く頂点がここにありますよ、と色情報で表示されます。
頂点ではなく滑らかなグラデーションで表現されるため、あたかも面にウェイトが振られているように見えますが、あくまでも頂点1つ1つにウェイトは割り振られているため、頂点が変色していると見た方が良いと思います。
影響度が視覚化しやすいよう、滑らかにグラデーションが掛かっているだけです。(多分)
なので以下画像のように、変色した部分にある頂点はShoulder.Lボーンが動くと一緒について行く=体が変形するといったイメージ感じです。
長くなってしまいました。ウェイトペイントの説明に戻ります。
続いて、肩の頂点グループを見てみると、(ctrl+左クリックでShoulder.Lボーンを選択)
ウェイトが首まで広がっているため、肩を上げると首が凹んでしまいます。
ペイントツールの「自動正規化」をONにして首のウェイトを0にします。
この自動正規化はその頂点を必ず1.0内に収めてくれるという機能です。
頂点グループ「Shoulder.L」の首付近ウェイト0.0に→「Neck」の首付近ウェイトにShoulder.Lで消されたウェイト値が+される=その頂点の合計を1.0
但し、ウェイトをマイナス(消す)させる時はその頂点が1.0を超える心配がないのでONにしなくてもいいかもしれないです。(逆に無理やり1.0にしようとほかの頂点グループに余分に塗られてしまう事がある)
なので消す作業を今からするこのタイミングで紹介したのはすみません…。
更に、ビューポートオーバーレイのワイヤーフレームをONにすると塗りやすいです。
塗りました。
動かしてみます。
GOOD!
こんな感じで気になる部分を塗っていきましょう。
私が詰まった点
ここで私が最初悩まされたところを紹介しておきます。
1頂点にいくつもの頂点グループが割り当てられていたりと、初心者にとっては本当に取っつきづらいですよね。
それが故に詰まったのがこれ。
私のボーン配置が悪かったせいで「自動でウェイトで」がうまく動作せず、顔を振り向かせると大きく歪みました。
原因はとてもシンプルで
このように他の頂点グループが、顔の回転を「行かないで!」といった感じに引き留めていました。
(※最初私はNeckを2ボーンに分けていて、尚且つその一つが顔にめり込んでいました)
こんな感じに変に引っ張られる場合、他の頂点グループが邪魔をしていることが多いです。邪魔しているウェイトを消してあげると…
解消します。私はこれで3日ぐらい悩みました。
(※画像はNeckボーンが2分割されていますが、Neckは1ボーンの方が良いです)
結論。
自動のウェイトでを使うなら、ボーンの位置は超重要!!
です。
頂点グループを数値で調整する
赤矢印が指している項目を有効にすると頂点が表示されます。ボックス選択で頂点が選べます。
アイテム>頂点ウェイトでその頂点のウェイト状況が細かく見られ、値をいじったり、値を他の頂点にコピーすることも可能です。
続いて、目や髪などそのほかの身体オブジェクトにウェイトを割り振っていきます。
綺麗にウェイトを塗る
基本的にはボディは「自動のウェイトで」の一発で決めたいところです。(面積が広くウェイトが塗りづらい)
ただ指など細かいところは、やはり修正が必要になってきます。
ペンで塗っていると正直あんまりきれいに塗れないですよね。がたがたなっちゃいます。
これでは綺麗なウェイト塗りではないですね…。それが故に、影響度が滑らかではないので動かすと、
変形も滑らかにされなくなってしまい、ゴム製のおもちゃみたいになってしまいます。
そこで使うのが、グラデーションツールです。
Photoshopやクリスタのグラデーションツールのように、サーッと綺麗にウェイトをグラデーション状に塗ってくれます。
正直ボディには適さないです。指や髪で威力を発揮します。
ですが綺麗なグラデーションウェイトは得られるので、さっきと比べると…
がたつきはなくなり綺麗に変形されます。
繰り返しになりますが、ボディのウェイトは「自動のウェイトで」一発で決めることが一番綺麗になります。そのために補助ボーンを活用します。
次回は髪や顔パーツなど、細かいところにウェイトを塗っていきます。