
〈Blender〉モデリング初心者が女の子を作って動かすまでの備忘録 #11【リギング3】
今回はボーン入れ(前回の続き)とウェイト塗りを行いきます。
そして大きな見逃しをしていました!顔パーツを作る工程を丸ごと飛ばしていました。#6の記事に追記しておきました。失礼致しました…。
目にボーン追加
VRMの場合、目の制御は幾つか方法があるようですが、一番無難なボーンで行きます。
Headの子ボーンを作成。左に配置して対称化。
目はまだペアレントしていないので、目>ボーンの順に選択して「空のオブジェクトで」でペアレント。
頂点グループを「eye.L(R)」にリネームし、ウェイト情報を追加。
同じ手順で「白目、まつげ、まゆげ、二重」もペアレントとウェイトを設定します。
塗りづらいときは「/」キーでソロ表示されます。
髪のスキニング
続いて髪行きます。「髪の揺れ=ボーンの揺れ」となります。
まずは前髪の一部の中心にボーンを1本配置し、「自動のウェイトで」でペアレントしました。
まず「自動正規化」ですが、髪のウェイトペイント作業でかなり邪魔だったので無効にしておきます。
「Head」グループに揺れにあまり影響のない根本あたりをグラデーションツール(ブラシAddモード>グラデーションツール)で滑らかに塗ります。
Headウェイトと混ざり合うように、髪の頂点グループにウェイトを塗ります。
にじみやぼかしツールは、「墨を指でぬぐったら伸びる」が一番近い感覚かなと思いました。そのようにペンを動かすとスムーズに滲んだりボケてくれます。
あとは大きめにボーンを回転させて、きちんと髪が付いてくるようにウェイトを馴染ませます。あまりブラシツールで細かく塗るよりかは、グラデーションツールで大まかに行った方が綺麗に変形してくれることが多いです。
今更にはなりますが、必ずウェイト値は1.0にしなくてはいけないという決まりはありません。動き方を見ながら、1.0を超えないことを意識することの方が大事です。
髪ごとにスキニング作業を行っていきます。まずはボーンを先に配置し終えました。「何本か束ねて1ボーン、」もしくは「1束1ボーン」を基準に置いてあります。
髪の一部がミラーで作成されているので、ボーン対称化を髪でも活用します。非対称な髪はそのまま1本ずつ配置しました。
配置できたら「自動のウェイトで」でペアレントを1本ずつ行い、ウェイトペイントの作業を継続させていきます。
【ウェイト塗りの例】左:head、 右上:hair.L、 右下:hair.R
髪は対象化させた共通のボーン、左右の別ボーンと2種類のボーンを扱いますが、Xミラーを有効にしていてもきちんとこのように望み通りの塗り分けを行ってくれます。
あとはモディファイアの順序ですが、
ミラー
アーマチュア
サブディビジョンサーフェース
の順で置いてください。
1本のボーンで動きの違う複数の髪束を扱う
少し考えたのが、同じ場所に奥まって2束ある場合。同じボーンで制御したいので外側は大きく動き、内側は貫通しないよう小さく動くようにする必要がありました。
ひとまず手前側はこれまで通りの感覚で塗りました。
そしてあまり動いてほしくない奥側はこのように塗りました。
左:Head 右:Hair
このようにheirのウェイトはかなり薄めで、フンワリ乗せた程度です。この程度のウェイトでもかなり影響力があるのでこれで丁度良い挙動になりました。
ウェイトの値はかなりデリケートですね。
ずばり、ウェイトペイントで心がけたこと
・とにかく滑らかなグラデーションで塗る!」
例えば以下の画像、真ん中だけ少しウェイトが薄くなっています。
これだけでも、こんなにガタつきが起きてしまいます。
・塗り分け
もう少し頭側に引っ張られたいなあ→その部分のHeadウェイトを塗る
もう少し大きく動いてほしいなあ→その部分のHairウェイトを塗る
といった感じです。
あまり暴れて欲しくない髪の場合「Headウェイトを髪先までやや濃いめに、Hairウェイトをなるべく薄く」とすれば、落ち着いた挙動になります。
↑Hairのウェイトを髪先まで濃いめに塗らなかった場合
Hairウェイトを髪先までさっきのよりやや濃いめに塗った時
・ウェイト値
可動箇所は青~黄色ぐらいの小さめのウェイト値で塗っています。(1.0を超えないようにするため)
以上、初心者的心掛けポイントです。
服のスキニング
服へのスキニングはウェイトの転写機能を使用していきます。
ボディの時と同様に、服とアーマチュアを「空のグループで」でペアレントさせます。
ペアレント後、オブジェクトモードで「ボディ>服」の順に選択し、ウェイトペイントモードに。
ウェイトツールの「ウェイトの転送」を選択し、メニュー内の「転送元レイヤーの選択」を「名前」にします。
転送元レイヤーの選択
アクティブレイヤー:転送元で選択された頂点のみが転送される
名前:相互に一致する頂点グループ名があればその情報をすべて転送
これでボディに設定したウェイト情報がそのまま服へコピーされました。
この調子で全ての服にウェイトの転送を行います。
本当のところ服はクロスシミュレーションさせたいのですが、今回はVRMにさせることを目標としているのですべてボーンで制御したいと思います。
いつかUnityのクロスシミュレーション(Magica Clothとか)も試してみたいです。
以上でリギングが終了です!次回からUV展開を行っていきます。