キャラクターモデリングでは決して避けることができない作業にリギングというものがある。
リギングとはキャラクターにボーンという我々の骨に当たるものを通して、モデルに関連付ける作業全般を指す。
とにかくこれがめんどくさいことこの上ない。初心者なら尚更で、挫折する大きな要因になりえる。
だが、そんなリギングの作業をめちゃめちゃ短縮してくれるBlenderのプラグインが存在する
それが「Auto-Rig Pro」と「Voxel Heat Diffuse Skinning」である。
ただ、綺麗に動かすためには少々コツがあって、その流れをこの記事にてまとめることにする。
なのでこの記事はこのような人に読んで欲しい
対象読者
- Auto-Rig Proの使い方をざっくり知りたい人
- Voxel Heat Diffuse Skinningの使い方を知りたい人
- リギングで困っている人
- リギングで時短したい人
Auto-Rig Proとは?
Auto-Rig Proは、UnityおよびUnreal Engineで使用可能なリグを自動で3Dモデルに付与して、3Dモデルに動きををつける上で最も重要なリギングの作業を大幅に短縮してくれるBlenderの有料アドオンである。
これほんとにすごくて、人型だけじゃなく、動物や昆虫などのモデルにもリグを通してくれるし、FBXとして出力するところまでサポートしてくれている。
おすすめというより必携のプラグインの一つだと思っている。
Voxel Heat Diffuse Skinningとは?
Voxel Heat Diffuse Skinningとは、その名の通り一旦モデルを微小な立方体で上の画像の様に再構成し、そこからボーンを起点として一定の伝導率で「熱」を拡散させるという考え方でモデルに「重み」をつけていく方式で、ウエイトペイントを自動で行ってくれるこれまたBlenderの有料アドオンである。
この方式の優れた点は、近くても隣接していないオブジェクト同士はウエイトが連続でないということである。
今回の方法ではAuto-Rig Proにデフォルトで搭載されている自動ウエイトペイントと、このVoxel Heat Diffuse Skinningの自動ウエイトペイントを使い分けて最低限の労力でウエイトペイントをしていくことにする。
実際にリギングする
まず前提として、モデリングはほぼほぼ形になっている状態でサブディビジョンサーフェスなどのモディファイアは一切適応してなくてよい。
もちろんオブジェクトもまだ統合しなくてよい。
step
1Auto-Rig Proを使用してセットアップする
Auto-Rig Proのタブから骨を入れたいオブジェクトを選んだ状態、つまり素体を選んだ状態で「Get Selected Born」を押す
ポップアップでは「Full Body」を選択し
ワイヤーフレーム表示にしてAdd NeckやAdd Chinを押して正面から見たそれぞれの位置に置いていく
基本デフォルトの設定のまま「Go」ボタンでOK
これで骨が通るが、まだずれていることが多いので、必ず調整する。
終わったら「Match to Rig」を押す
※揺れものボーンなど、その他のボーンは後で作成するのでこの段階では無視する
step
2「Heat Maps」で一度スキニングする
まず、素体のオブジェクトだけ選んで(頭と体を分けている場合はその両方)、次にリグを選択し
Auto-Rig ProのSkinのタブを開いて「Engine」から「Heat Maps」を選び「Bind」を押す。
これもデフォルトの設定で大丈夫
step
3手以外すべてに「Voxel Heat Diffuse skinning」をかける
キャラクターのオブジェクトをすべて選んで、編集モードで手首から指先にかけての頂点を除いたすべての頂点を選択する。
オブジェクトモードに戻り、最後にリグを選択してAuto-Rig ProのSkinのタブを開いて「Engine」から「Voxel Heat Diffuse Skinning」を選び「Bind」を押す。
※「Voxel Heat Diffuse Skinning」はアドオンをインストールしておけば、自動でEngineに追加されているはず
なぜ手だけHeat Mapsでスキニングするのか
スキニングも適材適所ということで、指など複雑な箇所(細かいボーンが密集している)のモデリングはHeat Mapが相対的に優れている
voxel heat diffuse skinningは、メッシュを小さな立方体(ボクセル)に分解してからスキニングを行う。大まかな部分には良好な結果をもたらすことが多いが、指のような細かい構造に対しては、ボクセルのサイズが指の形状に対して大きすぎると適切に計算できない場合が多くなる。つまり、指のスキニングで問題を引き起こす主な理由は、指は非常に細かく、多くのボーンに影響を受けるため。
step
4適当に動かしてみて肩まわりとか、足まわりの不自然なウエイトを調節する。
手を上にあげてバンザイのポーズを取らせてみたり、膝を上げたりしてみたりして、不自然なところがないか確認し
その都度、ウエイトペイントに切り替えて修正。
step
5「Edit Born Reference」から揺れものボーンなどの子ボーンを追加
髪の骨を作る際は、頭の骨の先についている先端の球からEキーで子ボーンを作成していく
そしたら、頭の骨に接しているボーンを選択して、「Properties Window」から「Bone Properties」を選び、Relationsタブの中のConnectedの左のチェックを外す。そうすることで、親子関係を保ったまま親ボーンから子ボーンを離すことができるようになる。
※子ボーンのネーミングでは最初に「cc_」をつけておく。そうしないとゲームエンジン用に出力する際に失敗する。
Skirtのボーンに関して
コライダーの球体の直径≒スカートの厚みぐらい なので隣り合うボーンの間隔は球体の直径よりもすこし大きい程度の距離感で置いていきたい。
なぜならばこのコライダーの隙間から足が通り抜けてしまうので貫通の原因になってしまうからだ
この画像の間隔では広すぎる
step
6揺れものボーンにだけ「Voxel Heat Diffuse Skinning」をかける
例えば追加した髪の毛の揺れものボーンだけ編集モードで選んだあと、オブジェクトモードに移り髪の毛のオブジェクトを選択して最後にリグを選択して再度「Voxel Heat Diffuse Skinning」をかける
これを追加したボーン群に対して行っていく。
確認・調整がすんだらスキニングの作業は終了である。
こののち、シェイプキーなどを設定し、モディファイアを適応し、オブジェクトを統合しARPのエクスポート機能で出力すればFBXでの出力までできたことになる。
是非リギングに困っている人は参考にしてほしい。