Rigify で人物用のリグを作る方法
Rigifyのアドオンを有効化し、人物モデルは用意しておく。
RigifyRig生成用のMetarigとRigifyRigは別のものなので注意(さらにゲームエンジンなどに持っていく際はDeformBonesやそれを元にしたGamerigを利用する場合がある)
rigの生成
手順をメモっているが、GenerateRigが成功するまでエラーに悩まされたので、途中途中で試しにGenerateRigをしてみてエラーが出ないか確認したほうがいい。
全部終わっていざという時にエラーになると原因箇所を探すのが大変。
モデルの準備
モデルをワールドの原点に配置する。原点がモデルの中心の足の間にくるように、SetOriginなどで原点の位置を調整したりする。
モデルのLocationやRotationが0に、Scaleが1になるようにしておく。
なっていない場合はApplyTransformを実行する。

髪の毛などは非表示にしておく。
メタリグを出す
Shfit +Aで Armature -RigifyMetaRig – Humanで元となるメタリグを出す(もし表情や指などをいじらないシンプルなリグでいいなら、BasicHumanの方を使っても可)

テンキーの0でビューポートを正面に切り替え、リグの高さをSキーで大雑把に合わせる。サイズを変更したら、リグを選択した状態で、Ctrol+A – Apply Scaleで変更をApplyしておく。

リグのスケールも人物のスケールも1になっていればOK。

あとObjectDataPropertiesのRigifyの箇所からUpgradeFaceRigを最初にやっておく。

リグの表示をStickにする方が良い。


こっちのほうがずれを確認しやすい。
メタリグのボーン位置を修正する
メタリグを選択してEditModeに移動する。
左右対称ならミラー編集をアクティブにしておく。

あとはボーンの位置やサイズを微調整していく。
ただしマウスでぐりぐりボーンを動かすのではなく、テンキーで正面や真横、真上などの表示にし、Gキーで移動させたほうがいい(変に回転したりするのを防ぐため)
PoseModeを利用する – 例えば腕など
Ctrol + Tab でPoseModeに入り、その状態でオブジェクトに合わせて調整するという方法を併用すると能率が上がる。
例えば腕
ミラー編集をアクティブにしておく(し忘れた場合は、ポーズをコピーしてはりつける)
上腕を選択してR – Y や RZで角度を調整する
あとは段々と指の方へ向かって各ボーンのポーズを整える
(サイズの変更は指の方に影響してしまうので、そういうのはEditModeやった方がいい)

指とかはこの付け根のボーンを使うと能率が良い。

ある程度できたら、PoseModeを出る前にボーンを選択して(全選択でもOK) Ctrol+ A – ApplyPoseAsRestPose を 実行しておく。そうすればEditModeに移動してもPoseModeで作ったポーズが維持可能。

ワイヤーフレーム表示を利用する
大雑把でいいボーンもあるが、関節などはできる限りボーン配置の精度を上げたいので、ワイヤーフレーム表示にして調整すると調整が捗る

重なっているボーンを扱う際に注意する
Rigifyのボーンには下の画像のように分離しているけど同じ位置に配置されているというものがある。

これを扱う際は、両方を選択して一緒に動かすほうがいい。(首と背骨の位置にあるSpine3とSpine4が画像のように離れていると後でエラーが出た)
ばらばらになってしまった場合は、Snap機能をアクティブにして、TargetをVertexにし、ひとつの球体を選択してもう一つに近づける。それで同じ位置にくればOK

顔のボーンの調整
大雑把に移動させる
Faceボーンという顔の親ボーンがある。PoseModeでこのボーンを動かして、大雑把に当たりをつけると作業が捗る(横移動は左右対称が崩れるのでやらないように注意)。
PoseModeなので移動させたらCtrol + AでApplyPoseAsRestPoseを実行するのも忘れないようにする。

例、目とか
とりあえずLキーでパーツ目周りのパーツがどこまで影響あるか確認する。

下に伸びているボーンの選択を外し動かしていく。

Sキーなどでまとめてサイズを調整し、あとは微調整していく。


ある程度調整したら試しにGenerateRigをやってみてリグが生成できるか確認しておく。
Generate Rig
全部の調整が終わってからやるのではなく、作業の途中でリグが生成できるかをたましておいたほうがいい。
一旦オブジェクトモードに戻り、メタリグを選択して Ctrol+A -AllTransform を実行する
そしたらリグを選択してObjectDataPropertiesを開き、GenerateRigを実行する。

うまく行けば新しいリグが表示される(使っていた方のメタリグは残しておく。カスタマイズや修正をやる時に必要)

ウェイトをつける
自動でウェイトをつける
とりあえず目や歯などは無視して、基本のBodyにウェイトをつけていく。
Bodyオブジェクト – リグ の順で選択し、Ctrol+P で WithAutomaticWeightsを実行する。

問題なければリグを選択して動かしてみる。
AutmaticWeightが失敗する
複雑なオブジェクトだと失敗することがよくある。
対処法1 MergeByDistanceを行う
対象のオブジェクトを選択してEditModeに入り、全選択して、Mesh-CleanUp – MergeByDistanceを実行する。
対処法2 Scale
①リグとオブジェクトにParentingをやっておく。できているかの確認は、リグを拡大するとオブジェクトも一緒に大きくなればOK。ならない場合は、オブジェクト – Rig の順番で選択して Ctrol+P でやっておく。
②リグのScaleを100にする。

③オブジェクトの余分な頂点グループを削除しておく。

④Bodyオブジェクト – リグ の順で選択し、Ctrol+P で WithAutomaticWeightsを実行する。
そうすると、リグは大きいままで、オブジェクトが小さくなる(画像は口辺りのメッシュがなんか変なことになっているがここではスルー)

⑤オブジェクトだけ選択し、Alt+PでClearParentを実行する。

⑥リグのScaleを1に戻す。

⑦オブジェクト – Rig の順番で選択し再度 Ctrol+P – WithEmptyGroupsを実行する。

⑧リグを選択して Ctrol+Tab で PoseModeに移動し、動きを確認する。

手動でウェイトを塗ったり調整したりする
手動で塗る場合はDeformBoneを使って塗っていく(RigifyRigはそのままだと色々なコントローラーも表示されている。その状態で塗ると思わぬ箇所に塗ってしまうことがあるの注意)
①Rigを選択してObjectDataProperties – BoneCollecitonsを開く。
DEFの箇所にある星マークをアクティブにするとDeformBoneのみが表示される(Metarigと似たようなシンプルな骨だけの表示)

②DeformBone - 塗りたい3Dモデル の順で選択しWeightPaintモードに移動し塗っていく。
終わったら星マークを解除し、PoseModeで動きを確認
リグをカスタムする
ボーンを追加する
あくまでの下の手順は一例なので、とりあえずGenerateRigをして確かめながらやるのがおすすめ
①メタリグを選択してEditModeに。
②ボーンを出して位置を調整する。
ObjectDataProperties – Rigify – Samplesの中に用意されているものを利用するとその後の作業が楽(ただしそれぞれリグ生成後の形状や役割が違うので注意。BasicSuperCopyなどが一番シンプル)。
Shift+Aや複製で追加することも可能。

④出したボーンを選択した状態で同じくObjectDataProperties内の Bonecollectionsを開き、どこのコレクションに配置するか Assign とRemoveで決めいていく(デフォルトだとFaceに割り当てられていたりする)

⑤そのまま今度はBonePropertiesを開き、名前をつけたり、親子関係を割り当てておく(後でやってもいいし、”子 ‐ 親” の順に選択してCtrol + P でも可能)

左右対称なボーンを出したい場合は、とりあえず片方を配置して、右クリック – Names – Auto-NameLEftRightを実行する。
そうするとボーン名の末尾に .L のような文字列が付け加えられる(自分で文字を打って命名してもOK)

その状態でもう一度右クリックでsymmetrizeを実行すると、もう片側に自動でボーンが生成される(命名済み)

⑥終わったらEditModeを出て、ReGenerateRigを実行する。

⑦Generateした時に表示されない場合は()、Metarigを選択してPoseMode(EditModeではないので注意!)へ移動し、当該のボーンを選択、その状態でBonePropertiesを開き、RigTypeの箇所が空になっていないか確認する
またリグにしたときの見た目の設定もここで行う

Cubeとかにすれば生成された時に立方体のリグパーツになる。

手順は別に行き来できるのでとりあえずGenerateRigをしながら確かめてみるとはかどる
Rig Layers Panelのカスタム
特にウェイトペイント用のDeformボーンコレクションの表示非表示切り替えを楽にしたいので、ここにDeformの切り替えボタンを配置していく。
メタリグを選択して、ObjectDataPropertiesのBoneCollectionUIから新しくDEFを追加する。


そしたらこのDEFを選択した状態(背景が青になっている状態)で下に移動し、UILayoutの箇所を開き、一番下の三角アイコンをクリックする。問題なければこっちにもDEFが出るはず。

上の方にあるRe-GenerateRigを実行する。

リグが生成されたら、RigLayersのパネルを見てみる。問題なければDEFがあるはず。クリックしてDeformボーンの表示非表示が機能しているか確認する。

オフのとき

オンにすると表示される。

パネルの表示名を変えたい場合は、カスタムリグを選択して、UILayoutの部分で修正する。


リグの見た目を変える
PoseModeに入り、変えたいボーンを選択する。
BonePropertiesのViewportDisplayの箇所を開く。
色は上の2つ、形状はCustomObjectの箇所で変更する(手軽なのはその他のボーンの箇所で使われているシェイプを確認し、それを流用するという方法。例えば手の見た目を四角にしたいとかなら、胴体の _torso のようなオブジェクトを利用する)



コメント