今回はリギングです。ボーンやアーマチュア、ウェイトペイント関連です。
mmCGさんのリギング講座はこちら。いつもお世話になっています。

アーマチュア作成
まずは自分の復習の意味もかねて用語の説明から。
- ボーン:アバターを動かす骨。ヘッドとテイルがあります。
さらに2種類あります。
- デフォームボーン:メッシュを変形させるボーン。通常こちら。
- ボーン:名前はただのボーンだがメッシュ変形させないので制御ボーンに使われる。

- アーマチュア:親子関係のあるボーン群です。Blender用語で一般にはスケルトンと呼ばれるようです。

- リグ:デフォームボーンを制御する仕組みとインタフェース
IK(Inverse Kinematics), FK(Forward Kinematics)、制御ボーンなどです。

まずは左半分のアーマチュアを作ります。

ボーンの編集モードで、左右対称にさせたいボーン群を選んで(マウスの範囲ドラッグ)、アーマチュア→名前→自動ネーム(左右)を選びます。

すると自動的に「.L」がつけられる!

そしてさらに、その選択状態でアーマチュア→対称化を選択すると・・・

名称(左は.L、右は.R)も含めて、左右対称アーマチュアのできあがり!Blender、強力すぎます!
ウェイトペイント
次はウェイトペイントです。

- 自動ウェイト:
オブジェクトモードでボディ(ターゲット)メッシュを選択後、シフト押しながらボーンを選択、
Ctrl-P アーマチャ変形→「自動のウェイトで」
自動ウェイトは超便利。主力で使って、どうしようも無いときに手で修正。今後もポリゴン数複数対応(3万ポリゴン版、7万ポリゴン版)していくと、メッシュ変更するたびにウェイト塗り直しになる。そのためにも主力は自動ウェイトにしています。
自動ウェイトやり直すときは頂点グループ全削除してからやるのが無難。
- 自動ウェイト全削除 → 頂点グループ全削除
あるオブジェクトのウェイト情報をクリア(全消去)したい
オブジェクトモードでそのオブジェクトを選択。
メッシュプロパティの頂点グループを全削除
頂点グループ リスト右のVから「全グループ削除」
ボーンごと個別に自動ウェイトやりたくなるときもあります。
- 特定ボーンから自動ウェイト設定
たとえば髪の毛ボーンは除いて、体のボーンからのみ自動ウェイト設定したい
一度失敗したならば上記の自動ウェイト全削除してからやる(頂点グループ全削除)
ポーズモードで、ウェイトつけたいボーンを選択。(例:髪の毛は非選択)
オブジェクトモードにもどりメッシュを選択して、ウェイトペイントモードに移行。
(上記ボーン選択は生きている)
ウェイトペイントモードの上部「ウェイト」から「ボーンから自動割り当て」
- ボーンを動かし、メッシュ形状確認しながらながらウェイトペイントしたい!
とても重要なモードですが「できない!」ときが結構ある。そういう場合は下記をチェック
ポーズモードからウェイトペイントモードへ移行できないとき
[いずれもポーズモードにて]
・編集→オブジェクトのモードをロック チェックボックスをoff
・オーバーレイのボーン→形状をフェード チェックボックスをoff
特に2番目がよく外れています(知らないうちに!)。こまめに確認しましょう。
これでポーズモードからメッシュ選択できるようになり、
メッシュ選択時に Ctrl-TABでウェイトペイントモード選択できるようになる。そのウェイトペイントモードでは、Ctrl-左クリックでボーンが選択できて、RやGなどでボーン動かしながらウェイトペイントすることができます。
そうそう、こちらのRTX3060環境ではBlender3.2に切り替えたときウェイトペイントが超重くなりました。最近、デフォルトonになっているGPUサブディビジョンをoffにすることで軽快になりました。
- ウェイトペイントが重いとき
編集→プリファレンス→ビューポート→細分化→GPUサブディビジョンをoffに!
服のウェイト
今後の使い勝手を考えて、下着を延長しスパッツ・スポーツブラにしました。

この密着系衣服サーフェスデフォーム(サーフェス変形)で対応しています。しかしVRChatに持って行くとうまく動かないので、最終的にはボディテクスチャに書き込みました。ゆくゆくはちゃんと下着を作りたいです。
服のウェイトはデータ転送レイヤー使って、自動設定です。

- ウェイト転送(通常の服など)
オブジェクトモードで、服オブジェクトなどのたー別途オブジェクトを選択、
モディファイアー追加から、変形→「データ転送」モディファイアーを追加。ソースはボディなどのオブジェクト。
「頂点データ」にチェック、そしてその中の「頂点グループ」を選択。
「データレイヤーを生成」を押すと頂点グループが服オブジェクトに生成される。(メッシュプロパティで頂点グループ確認すること)
Ctrl-Aでデータ転送モディファイアーを適用
こんな感じになりました。

髪の毛リギング
もう根性の地道な世界なので詳細書きませんが、206個!の髪の毛ボーンをメッシュ境界ごとにいれてウェイトペイントしました。髪の毛は自動ウェイト使えないのですべて手塗りです。

そして、mmCGさんHair RIg講座に従ってrigid bodys generator使って髪の毛リグ完成させました。
206個の髪の毛ボーンは、VRChatのボーン数128本以下に引っかかるので、現在は抜いています。近いうちにVRChat対応の適度な髪の毛リグを作りたいと思っています。
2022/04/10: