はじめに
今回は、Blenderでキャラモデルにウエイトを塗って動かす方法を解説します。
第19回の続きになります。
このようなウエイト設定済みのモデルがあり、本番環境でデバッグ済みな事を前提に進めます。

素体のウエイト動作+揺れ物系の動作確認ができていればOKです。

また、このモデルの左右対称パーツはミラーモディファイアを使い片側だけ作られてます。

下着の作成
体のメッシュを選択。
Tabキーで編集モード。
Lキーで体のパーツを選択。
Alt+Sの収縮/膨張で少しだけ膨らませます。

Pキーで膨らました形状を分離。

Ctrl+Tab → 4キーでオプジェクトモード。
この状態で膨らました体を選択。

Ctrl+Tab → 6キーで編集モード。

マテリアルを使って、膨らました体に色を塗ります。
「+ボタン」でスロットを追加。
「+新規」でマテリアルを作成。

ベースカラーをグレーにします。
下着の仮の色です。

Aキーで全選択。
制作したマテリアルが選択されてる事を確認。
「割り当て」をクリック。
すると、作成したマテリアルの色になります。

ここから、下着に不要なメッシュをおおまかに削除。
Bキーで矩形選択 → Xキー → 「頂点」で消せます。

すると、下着の原形らしい形になります。
これをより精度を上げて行うと下着になります。

下着の形を作る
Kキーのナイフツールで下着の形に切り込みを入れます。

この切込みに合わせて面を選択。
Xキー → 面などで削除。
すると、下着の形が浮かび上がってきます。

下着の土台はAlt+Sの収縮膨張を使い作りました。
なので、左右対称軸に近い部分に問題が起こる事があります。
股部分を中心に、問題があれば修正します。

靴下の上部はS → Z → 0キーで一直線に揃えれます。

肉によって、布が張った形はスカルプトで作ります。
(Kキーのスネークフックブラシがおすすめ)

その他、スカルプトなどを駆使して形を作ります。

下着の紐の接点を綺麗に繋ぐため、ブラの後ろ側に分割を増やしました。
(Ctrl+Rでループカット)

基本的な下着はこれで作れます。
靴下のつま先は別の問題が起こるので個別に対処します。

靴下のつま先を作る
足の指はとても頂点が多いです。
なので作り直します。
頂点を選択 → Xキーで「頂点」削除。

削除して生成された断面をAlt+クリックでループ選択。

Eキーで足の指が隠れるように押し出し。
Lキーでループ選択。
Pキーで分離。

Ctrl+Tab → 4キーでオプジェクトモード。
制作したつま先の原形を選択。

「モディファイア」を追加を選択。

「シュリンクラップ」を追加します。

ターゲット右側にあるスポイトをクリック。
その後「足のモデル」を選択。

オフセットを少し増やします。
すると、つま先の原形が脚の指に合った形になります。

右クリック → 「スムーズシェード」を入れます。

そしたら、つま先を面貼りします。
真ん中から面貼りして、外側に広げていくと綺麗に張りやすいです。
(説明の為、シュリンクラップを解除してます)

下図のように面貼りしました。
左右に三角面ができたので、真ん中にループカットを追加。
無理やり四角面化しました。

シュリンクラップが入ると、下図のようになります。
この状態でシュリンクラップモディファイアを適応。
(シュリンクラップモディファイアの上にマウスを移動 → Ctrl+A)

あとは、スカルプトを使いつま先の形を整えます。

必要であれば、Ctrl+Rで分割数を増やします。

オプジェクトモードで「つま先」 → 「靴下」の順に選択。
Ctrl+Jで適用。

分離したスキマを面貼り。

同じ頂点数のはずなので、綺麗に面貼りできます。

面貼りしたら、辺選択に切り替え。
Alt+クリックでつま先側の辺をループ選択。
Gキー2回押しで、靴下側の頂点と同じ位置に移動。
Aキーで全選択 → Mキーの「距離で」重なった頂点を溶解。

あとは、スカルプトで形を調整。

これで、下着が完成です。

下着を動かす
下着は素体の形状を拡大して作りました。
なので、頂点にウエイトの情報がはいってます。
ナイフツールで切ったところも、元あったウエイトの値を元に自動で設定が入ります。

ブラとパンツだけなら、これで大丈夫です。
…が、新規に作成したつま先にはウエイトの情報がありません。

そこで、ウエイト転送を行います。
下着のメッシュを選択 → モディファイアーを追加。

「データ転送」を選択。

ソースで「体のメッシュ」を選択。

頂点データにチェック。
頂点グループを有効化。
マッピングを最接近頂点などに設定。

Ctrl+Aで適用。

すると、足の指も動くようになります。

以上が、下着を動かす処理です。
下着の突き抜け対策
ウエイト転送で動かすと、突き抜ける箇所が出てきます。
メッシュの構造が違うので、多少は仕方ないです。

これの対処法は下記の3つ。
・分割数を増やす
・サイズを大きくして、体から離す
・ウエイトを修正する
Ctrl+Rのループカットだけでも、突き抜けが治る事があります。

Sキー → Shift+Xキーで拡大。
サイズを大きくすることも突き抜け対策になります。

最後の手段はウエイト調整。
あまりやりすぎると “沼” ります。
が、一番効果的。

以上が、下着の突き抜け対策です。
肩の影響を考慮、修正する
3DCGは肩のメッシュがよく問題になります。
たとえば、このような形状の場合…

腕を下げるとブラ紐が伸びます。
これぐらいならまだ許容できますが…

このような衣装はもはや別モノになります。
なので、肩回りは注意して、できるだけ避けてください。

このような「デザイン」による突き抜け対策はこちらで解説。
デザイン画を確認。
靴下の長さを間違えていたので修正しました。

押し出しでヒラヒラを入れる部分を追加。
(これは後に、テクスチャという絵でヒラヒラを書いて表現しようと思います)

なにかを「追加する」編集した場合、ウエイト転送をやり直してください。
以上で靴下を動かす処理が完了です。
服の作成
こちらの服を作ります。

体のメッシュを選択。
Tabキーで編集モード。
Lキーなどで体のメッシュを選択。
Alt+Sで下着より大きく拡大。

Pキーで分離。

白色のマテリアルを割り当て。

服に要らなそうな頂点を、大雑把に削除。

Kキーのナイフツールと、頂点選択 → Xキーの削除を使い、服の形を作ります。

へそなどは面の構造を変える必要があります。

Kキーで変えたい形を描画。

そこから、不要な辺や頂点を溶解。

すると、下図のような構造になります。
あとは、スカルプトで微調整。

胸の谷間は、プロポーショナル変形などを使い調整します。

これで服の上部分が完成です。

次はスカートを作ります。
スカートの作成
ビューポートオーバーレイ → 3Dカーソルを表示。

Alt+クリックで服の一番下にある半円をループ選択。
Pキーで分離。

オプジェクトモードで半円を選択。
もう一度、編集モードに入ります。

Eキーで下方向に押し出し。

「> 。. る」キー → 6キーでピボットポイントを「3Dカーソル」に設定。
S → Shift+Zキーで横方向に拡大。

これで、スカートの土台ができます。

「> 。. る」キー → 4キーでピボットポイントを「バウンディングボックスの中心」に設定。
スカート下部の半円を選択して位置を調整。

少し前方向に回転させて傾けると、突き抜けにくくなります。
(膝は基本、前方向に動く + 傾けて膝にかかる面積を少し減らせる)

Ctrl+R → 中ホイールを操作 → 造形用のループカットを増やします。

スカートの形状 → 服の形状を順に選択。
Ctrl+Jで統合。

服とスカートの間にできた隙間を埋めます。
必要であれば、隙間の辺をまとめ、マージなどで溶解してください。

これで、スカートが完成です。

形の微調整
スカルプトなどで微調整します。

Z → 4キーでワイヤーフレーム表示。
これを使うと、素体と服のズレ具合を確認できます。

デザイン画を見ながら、形をチェック。

近いポーズを取らせると、違和感などに気づきやすいと思います。

胸の分割数が多いので減らします。

頂点選択 → Xキーのマージなどを使い減らしました。

あと、細かなところはスカルプトで調整。

必要な方は、尻尾部分に穴を開けます。

凸形状のポリゴン割りを応用すると穴を空けれます。

以上で、スカートの作成が完了です。
スカートにボーンを入れる
面の数を調整する
ビューポートオーバーレイ → 「統計」にチェック。

Alt+クリックで、スカートの半円をループ選択。
面の数を確認。
今回は23でした。

23は使いにくい数字なので、分割を増減させます。
今回は分割を増やし、24にしました。
整数で割れる数が多い分割数にすると、ボーンやウエイトを入れやすいです。

スカルプトのスムーズなどを使い、面幅の差を減らしました。

電卓を使い、いくつの面刻みでボーンを入れるか計画します。
・半円の面の数 ÷ 半円に入れたいボーン数 = ボーン間の面の数

24は6で割ると、下図のようになります。

ミラーを入れてるので、正確なボーン数は下記のようにあります。
・スカートのボーン数 = 半円に入れたボーン数 ×2

ミラーの対称軸にボーンを入れた場合は、簡単なメモで確認してください。
以上が、面の数調整です。
スカートと服を分離する
Tabキーで編集モード。
服の上部分を選択 → Pキーで分離。

服の上部分は、尻尾の穴の1つ下の面あたりが目安。
(スカートの穴はウエイトが入れにくいので外しました)

以上が服とスカートの分離です。
スナップを使ってボーンを入れる
ボーンを選択。
Tabキーで編集モード。
Hipsから押し出し、スカートのルートボーンを作成。
そこから、スカートのボーンを入れます。

面の数に合わせて入れます。

Shift+Tabキーでスナップを有効化。
スナップ先を「頂点」+「移動、回転、スケール」に設定。

すると、面に合わせてボーン先がスナップされます。
この状態でボーンを入れてください。

以上が、スナップを使ってボーンを入れる方法です。
ボーンを調整する
名前を変えたいボーンを選択。
ボーンプロパティで名前を変更。

私はボーン名を「Skirt_A~G.001」に設定しました。
この “.001” が重要なので、最後に必ず入れてください。

ボーン名は前から後ろにかけてA~Gの英語を割り当ててます。
ボーン名は下記の方法で表示。
・オプジェクトデータプロパティ → ビューポートオーバーレイ表示 → 名前にチェック
・ビューポートオーバーレイ → テキスト情報にチェック

ボーンを選択。
右クリック → 細分化。
すると名前が自動で “.002” に変わって増えます。

さらに、先端をボーンを選択 → 細分化。

そして、スナップを入れた状態でボーン配置を調整します。

左右対称にしたいボーンの名前に「.L」を付けます。

アーマチュア → 「対象化」で左右対称にします。

これで、スカートにボーンを入れる処理が完了です。
服を動かす
普通の服はウエイト転送を使います。
モディファイアを追加 → データ転送 → ソースで体を選択。
頂点データ、頂点グループを有効化。
マッピングを「最接近辺の補間」にして、Ctrl+Aで適用。

データ転送は、ここにあります。

モディファイアは右端のぶつぶつをクリック → マウスを上に動かすと並び順を変えれます。
データ転送は一番上に設定してください。

あとは頂点データのマッピングです。
これは… 大きな差は生まれません、動けば何でも大丈夫です。


印象だけで言うと… 面 < 辺 < 点の順でウエイトの綺麗さが変わります。
が、「面」や「辺」の設定だと動かない時があります。
動かない場合は「点」などを使ってください。
あとは、ソースを「素体のモデル」に設定。

Ctrl+Aで適用。

これで、服を動かす処理が完了です。
ここからは、スカートを動かす処理を入れます。
スカートを動かす
スカートは自動ウエイトでウエイトを乗せます。
が、全てのボーンが入ってる状態だと脚や体の影響を受けてしまいます。

そこで、スカートのボーンを選択。
Pキー → 「ボーンを別アーマチュアに分離」で分けます。

スカートのルートボーンは選択しないでください。
ウエイトを乗せるスカートのボーンだけ分けます。

次に、スカートのウエイトを削除します。
スカートを選択。
オプジェクトデータプロパティ → 頂点グループ → 下矢印 → 全グループを削除。

ウエイトを消したスカート → スカートのボーンの順に選択。
Ctrl+P → 「自動ウエイトで」を実行。

すると、スカートが動くようになります。
ボーンがスカートだけなので、脚や体の影響を受けません。

そしたら、分離したパーツを元に戻します。
スカートのボーン → 体のボーンの順に選択。
Ctrl+Jで統合

スカートのボーンを選択 → Tabキーで編集モード。
スカートの親ボーンをすべて選択 → スカートのルートボーンを選択。
Ctrl+P → 「オフセットを保持」を実行。

これで、親子関係を回復できます。

これでスカートを動かす処理が完了です。
スカートと服を繋げる
スカートのメッシュが分かれてます。
すると、動かした時に下図のように分離します。

スカートのメッシュを選択 → Tabキーで編集モード。
Alt+クリックで一番上の頂点を選択。
Xキーで削除。

Tabキーでオプジェクトモードに戻ります。
スカート → 服の順に選択。
Ctrl+Jで統合。

隙間を面貼りします。
辺を選択 → Fキーで面貼り。

ウエイトは “頂点” 荷情報が入ってます。
なので、面の追加はウエイトに影響を与えません。

ボーンを選択。
Ctrl+Tabでボーズモード。
ポーズオプションで「自動IK」を有効化。
ボーンを動かして挙動を確認。

スカートはルートを動かすと崩れるので注意。

以上で服を動かす処理が完了です。
VRChatにアップして動作確認
VRChatにアップして確認しました。
服とスカートのつなぎ目が角張りました。

そこで、Hipsのボーンを選択。
スカートの接続部分を面選択でマスク。
ウエイト → スムーズで滑らかにします。

あとはVRChat想定のモデルなら…
Unity上でPhys Boneを入れて動きを確認。

これで、角張りを修正 + 揺れ物挙動のチェックが完了です。


ただ、このままだと脚を上げた際突き抜けます。
こちらの対策は次回で解説。
以上で、衣装のモデルが完成です。

まとめ
今回はBlenderで衣装のモデルを作る方法を紹介しました。
・衣装は素体を少し膨らませて作る
・Kキーのナイフツールで形を成型
・膨らませた素体から不要な部分を削除して服を作る
・スカートは服の底面を押し出して作る
・スカートにボーンを入れる時は、面の分割数を意識して入れる
・スカートのウエイトはスカートの形状とボーンを分離して自動ウエイトを使う
↓次回↓

また、ほかにも3DCGについて解説してます。
ぜひ、こちらもご覧ください。
コメント