- AutoRigProで人物モデルをリギング
- リギング後によくやる処理など
- 顔のリギングとウェイト調整 / 後からFaceRigを作成する
- 補助ボーンの入れ方・スカートや髪の毛用のリグを作る方法
- メッシュの一部分や特定のBoneだけBindする・後から特定のオブジェクトをスキニングする
- MixamoのアニメーションをAutoRigProで使用する / Remap機能
- MocapMarketのアニメーションと連携する
- 髪の毛の制御・追従させる・髪に補助ボーンを入れる
- トラブルやTIPs
- ひとつのBlenderシーンで複数のオブジェクトをリギングするときに干渉する
- 口や歯のスキニングがうまくいかずぐちゃぐちゃになるのを修正する
- SkinのBindがうまくいかない
- 目が頭についていってくれない
- 目を動かすとメッシュを突き破ってしまう
- 特定のボーン・部位だけBindをやり直す
- 手指の操作・掴む・拳を握る
- modifiers cannnot be applied to multi-user data とエラーが出る
- O脚になる
- Outlinerに重複して表示されるのを解除する / リンクを解除
- リグを削除したい
- Smart機能で Goを押すと Could not find root pos とエラーが出る
- Rest Pose を変更修正する / RestPoseをAポーズからTposeに
- FingerGraspで指の曲がる向きが逆になる / Finger Grasp の修正
- まぶたぐちゃっとなる問題
- MixamoのアニメーションをRemapしたあとポースが歪んでしまう
AutoRigProで人物モデルをリギング
下の動画を参考
Smart機能でターゲットを配置していく
対象のオブジェクトをワールドの中央に配置する(X軸だけでなくY軸もゼロになるように。でないと膝が変なことになる可能性がある)
またスナップ機能がオンになっている場合もボーンの生成がうまくいかないのでオフにしておく。
対象のオブジェクトを選択し、GetSelectedObjects → FullBodyで実行。
この際髪やまつ毛・まゆ毛のオブジェクトは邪魔なので非表示にしておくといい。FacialRigをやる場合は目と歯などは一緒に選択する。
そうすると下のような表示に変わる。Add〇〇のボタンを選択し、ターゲットの緑サークルをモデル上の指定された位置に配置していく。正面から見ての位置でOK。
ターゲットの位置を調整する場合はGキーで動かすことが可能。
特に問題なく、体のリギングだけが目的なら Go! ボタンを押す。
注意点として、すでにリギング済みのオブジェクトが同一シーンに存在しているなら、OverwriteExistingRigのチェックを外しておいた方がいい(グチャッとなる可能性あり)。
体だけでなく顔もやるなら、FacialSetupボタンを押して顔の準備もやっていく。
フェイスリグ用の設定
最初に表示されるのは下のような感じ。この黒丸を顔の所定の位置に配置していく。
ただ顔に関してはちゃんと面の上に配置する必要がある。そのためスナップ機能をアクティブにしてやっていく。
- 髪やまつ毛などのオブジェクトがあるとその表面にスナップしてしまうので非表示にしておく。
- 唇はギリギリではなく唇の中間くらいの位置に配置した方がいいらしい
終わるとこんな感じ。横から見てちゃんと表面に配置されているか確認しておく。
あとはその下にあるEyeballObjectという項目も設定しておく。
左右の目玉がセットで一つのオブジェクトになっているのか、独立した二つのオブジェクトなのかでOneかTwoを選択する。
そして目玉オブジェクトを割り当てる。(入力欄にEyeとでも入れると絞り込んで検索できるよ!)
割り当てがすんだらGoボタンを押す。ボーンが生成されればOK。
ボーンの位置調整とリグ生成
Goボタンを押すと、画像のようにボーンが生成される。複雑でない人物モデルなら精度が高いのでほとんど直す必要はないが、かかとだけ少し広く設定される傾向があるらしいので、気になるならGキーで移動させて狭めておこう。
ボーンの位置調整が終わったら MatchToRigを実行。
Rigが生成されればOK(スキニングがまだなので、この時点でRigを動かしてもまだオブジェクトは追従しない)。
Skin機能でBind対象のモデルとリグを関連付ける・スキニング
リグの生成がすんだらいったんオブジェクトモードに戻る。
AutoRigProのSkinモードに移る。
対象となるオブジェクト、Rigの順番で選択し、Bindを実行する。
この際、目や髪の毛なども一緒に選択しておかないと追従しないので注意(ただしボーンを作って親子関係にして動かすという方法もある)(またあとから個別にBindすることも当然可能なので、体だけでBindしても問題ない)
関連付けができているか確認のため、リグを選択した状態でPOSEモードに移動し動かしてみる。動けばとりあえずリグの生成はOK。次はウェイトを調整したりする。
リギング後によくやる処理など
リギングした後にやる可能性のある処理
ウェイトの修正――手動
めり込み方やリグへの追従の仕方、動いて欲しくない箇所まで連動して動いてしまうなどの問題はウェイトペイントの塗り直しで対処していく。ただし別の箇所で書いてあるデータトランスファーを使った方法の方が有効な場合もある(まつ毛や、体の上に着せる服など)
ウェイトペイントを開く
デフォルトのリグだとボーンが表示されていない
リグを選択してObjectDataPropertyのLayersの中から赤線の箇所をアクティブにする。するとディフォーメーションボーンが表示される(Shift押しながら押せばでデフォルトのリグと同時に表示させることも可)。
そしたらリグ+塗り直したいメッシュの順番でまとめて選択し、WeightPaintモードに移動する。
もし塗りたいオブジェクトだけを選択してウェイトペイントモードへ移動する場合は、ボーンやリグが表示されないので、この場合は再度のVertexGroupsから当該の頂点グループを選択して塗っていく。
ウェイトペイントの初期設定
必要があればミラー編集を有効にしておく。
またその下のOptionsの中でAutoNormalizeをオンにしておくと、ウェイトの値を正規化してくれる(ある地点のウェイトが合計で1になるように自動で調整してくれる)
最後に赤線箇所にあるZeroWeightsをActiveに切り替えておくと便利。
塗り方やどこを塗るか
動いてほしくない箇所
Control + リグ左クリック で個々のリグのウェイトが表示される。そのままGキーで動かせば具体的にとのように影響しているかが確認できるので、それらを試しながら塗り直しを行っている。
例えば上まぶたの一か所を選択すると、少し下まぶたの方にまでウェイトが塗られているのが気になる。
そこら辺のウェイトをゼロにする場合は、ブラシの値をゼロにして塗っていく。
とりあえずゼロにできた。
ウェイト情報自体を消す
そもそもウェイト情報自体いらない部分を消していく。上まぶたなのでそもそも下まぶたの情報はいらない。
これを消していくにはBrashのBlendモードをSubtractにしてWeightの値を1にする。
この状態で塗っていくと余分な部分を消せるのでどんどん消していく。
重なったり入り組んでいる箇所を修正する場合はプレビューモードをワイヤーフレームなどに変えるとよい。
Rest Poseを変更する / A-pose to T-pose
デフォルトのポーズは、Blenderで完結させられるようなプロジェクトならTposeである方が勝手がいいと感じる(他のゲームエンジンに持ち出したりするならAposeの方がよかったりする)。
AposeのモデルをTposeにするのはAutorigProの機能で可能(ただし、やはりモデリングの段階でTposeにしておく方がいいと思う。この方法だとやはり肩とかがどうしても変形してしまう)
AutoRigProのRig機能の下の方にあるPoseToolsを開く。
SetPoseを押すとUnrealEngineだったり色々表示されるが、Tposeに設定してOKを押す(この機能を使わず自力でPoseModeでTposeを作ってもOK)。
Tposeに変わるがまだRestPoseは変更されてない。
ApplyPoseAsRestPoseを実行するとボーンが表示される。
ボーンの位置が問題ないならMatchToRigを実行。
出来上がり(ウェイトは修正前のを継承しているので、必要があれば調整する)
顔のリギングとウェイト調整 / 後からFaceRigを作成する
リグ作成
これに関しては、体をやる際に同時にやるか、後から顔のリギングだけやるという二通りある。
ここでは後者だけ解説する
後からFaceRigを作成する
①オブジェクトを選択し、Smart機能のGetSelectedObjectsを押し、FacialOnlyを実行する。
②顔のマーカー配置作業が始まるので、スナップ機能をオンにして配置していく。
③終わったらEyeObjectを割り当て、Goボタンを押す。
④Boneの位置調整を行うが、顔はおそらく一発ではうまくいかないと思うので、あまり気にせずMatchtoRigでリグを作成する。
体のリギングはすんでいるので、この時点でポーズを動かすと、身体自体は動く。が、顔はまだ。
ウェイトの設定はもちろん手動でも良いが、とりあえずARPでスキニングする。
全身のウェイトを最初からやり直すならウェイトを付けたいオブジェクトを全部選択 – Rigを選択してBindでいい。
ただ体のウェイトは調整済みで変えたくない場合は、顔の頂点のみを選択してBindすることができる。
まずEditModeでBind対象となる頂点を選択していく(目をやる場合はそこも)。
OBJECTモードに戻り、選択済み頂点を含むオブジェクトを選択していき(顔と目玉)、次にRigを選択する。
ARPパネルのSelectedVerticesOnlyにチェックを入れてBindする。
顔や顔パーツのリグ・ウェイトを修正する
ARPのスキニング機能を使えばウェイトは塗れるが、顔のような複雑な形状で、かつ微細な動きの制御が求められるオブジェクトでは、自動ウェイトで修正不要レベルの精度は出し難い。なので一旦自動で塗っておいてから修正していく。
口周りの修正
下記手順はあくまで参考程度、ある工程に行きつ戻りつで作業を進めていく。
①口の開閉を調整
まず口内のことは考えず(歯とかは非表示にしておく)、外から見て口の開閉に違和感がないようにウェイトを修正する。
アゴのリグを下げて、唇のペイントを塗る。
②口内オブジェクトの編集・位置サイズを整える
歯や舌など口内のオブジェクトを準備し、口内に配置する。
今回はデフォルトのポーズは口を閉じており、使用する口内オブジェクトが開いた状態とチグハグ。
口内オブジェクトの方に合わせてポーズを変更して調整する。などでうまく行けばいいが、いかない場合はオブジェクトを分割するというのも有効。(少し頂点がはみ出る程度ならこの時点では無視してやっていく。めっちゃはみ出るとかなら編集する)
③親子関係を作成
今回は口の開閉がチグハグ状態なので手動でやる。
口内オブジェクト→リグの順番で選択し、Ctrol +P – WithEmptyGroups で親子関係を作成。
④ウェイトを塗っていく
とりあえず上下の歯・歯茎を対応するリグに塗るのがわかりやすい。
オブジェクトが入り乱れて塗りづらい箇所は、EditModeで邪魔なメッシュを非表示したり、ペイントマスクを利用して塗る。
ペイントマスク
機能をオンにすると全体にマスクがかかった状態(白っぽい)
Cキーでサークル選択状態にしてマスクを解除していく(サークル選択のオフはメッシュ外で右クリック)
解除したマスクを再設定はサークル選択状態でShift + 左ドラッグ
⑤Boneの位置調整
上の歯の位置が高すぎるので、ウェイトではなくボーンそのものの位置を調整する。
ARPのパネルにあるAditRefereneceBoneをクリックする。
するとBoneのEdit画面に変わるので、移動させたいボーンを選択して移動させる。
対象のボーンかどうかは左上に白文字でteeth~のように出ているはずなのでそこで確認。
動かし終えたらMatchtoRigを実行し、当該ボーンのウェイトを塗り直していく。
フェイスリグを部分的に使う / フェイスリグを使わないという選択肢を考える
フェイスリグを使えばいろいろな表情を作れるが、少し複雑な造形のキャラだとまばたき一つさせるにしてもウェイトの微調整に苦しむ。そこで労力を費やすよりは、シェイプキーなど別の方法を選択するのもありだろう
別のリグを作って追従させる
フェイスリグを使わずに目を動かすには、補助ボーンを追加するという方法が一番手っ取り早い。
また補助ボーンを入れず、別に目線用のリグを作るという方法もある
作ったらそれにChildOfConstraintを割り当て、Targetを本体のRigの頭のBoneに。
フェイスリグを部分的に使用する
あごのリグだけとかしたい場合。
一旦フェイスリグを作成しているという前提で、EditRefereneceBonesに入る。
そしたらHeadのボーンを選択して、LimbOptionsを実行すると、FaceRigの細かな設定画面が表示される。そこから適宜チェックのつけ外しを行うことで部分的にだけ利用できる。
補助ボーンの入れ方・スカートや髪の毛用のリグを作る方法
目にボーンを入れる
2024年Ver
①AutoRigProのパネルからEditRefereneceBonesを実行。
②Shfit + A でボーンを追加し位置やサイズを調整する。
今回は目なのでshift + Dで複製して位置を合わせる。
③親子関係を作る
目のボーンを選択してBonePropertiesを開く。
Relationsの箇所からParentを割り当てていく。
headと検索して割り当てるが、複数あるので注意。refとなっている方ではない!
④同じくBonePropertiesでボーンの名前を変えておく。
⑤MatchToRigを実行。
Poseモードに移るが、作った目のボーンが表示されない。おそらく表示されているのはMainに登録されているBoneだけ。まだ目のボーンはMainに登録されていない(下の画像の白丸)。
ObjectDataPropertiesのBoneCollectionsを開く。
Deformを表示すると目のボーンがあるはずなので、表示された目ボーンの左右を選択する。
そしたらBoneCollectionsをMainが青背景になるようにして、Assignを実行。
これでDeformの表示を消しても目のボーンが表示されるはず。
目のボーンがMainというBoneCollections登録されていればOK。
確認は、目のボーンを選択して、BonePropertiesのパネルから行う。うまくいっていればMainがあるはず。
⑥あとは目オブジェクトとリグに親子関係とウェイトペイントの設定。
ARPのSkinning機能を使うと楽。目-Rigと選択してBindするだけ。
手動でやる場合は、親子の設定をし、ウェイトを塗る。
・なぜARPデフォルトのFaceRigを使わずにわざわざ作るか
ポリゴン数が増えるとウェイトの調整が難しいと感じる。まばたき程度でもなかなか思うようにできず、そういう場合はシェイプキーとかでやってしまった方が楽なことがある。
そうなるとデフォルトのフェイスリグの出番が少なくなるので、そもそも使わなくてもよいのではとなるが、(口の開閉とかはシェイプキーよりリグこっちの方がやりやすく感じるが)
ただ目ん玉の移動はシェイプキーでなくやはりリグでやってしまった方が楽なので、まぶたなどはShapekeys、目玉の移動はこの補助ボーンという感じ。
髪にボーンを入れる
髪の毛オブジェクトを準備し、位置を調整。
Rigを選択し、ARPのパネルからEditReferenceBones。
AddLimbからTailかSplineIKかBendyBonesのどれかを追加する(今回、上のSplineをやろうとするとエラーになった。なのでTailを使用)。
Tailの場合は尻尾の位置に新しくボーンが追加される。
デフォルトだと4本連結されているが、この数を変更したい場合Tailボーンを選択した状態でLimbOptionsから変更する。
また左右の指定もLimbOptionsから行う
ボーンを移動し、位置やサイズを整える。
髪が左右対称なら、DuplicateMirrorで複製して調整する(LimbOptionsで左右の指定をしておかないと複製できないので注意)。
配置が済んだら、追加したボーンの一番根本のボーンを選択し、最後に頭のボーンを追加で選択する。
そして右クリック – Parent – Make – KeepOffsetで髪ボーンと頭ボーンの親子関係を作る(頭が親)。
ちゃんと親子関係が作れたかは、根本ボーンを選択し、BonePropertiesのRelationsで確認可能。
画像だとParentが頭となっている。
MatchtoRigでリグを生成。Tailだとこんな感じのRig
あとはウェイトを手動で塗るか、髪オブジェクトを選択してスキニングする。
ここでは手動。
①髪オブジェクト → Rigの順番で選択。
② 右クリック – Parent – WithEmptyGroups で親子の設定。
③Rig - 髪オブジェクトの順で選択し、WeightPaintModeに移動。
④塗っていく。
スカート用の補助ボーンを入れる・スカートリグを作る
Auto Rig pro を最新版に更新しておき、かつ体のリギングは済んでいる前提
ボーンの生成と調整
ARPのパネルからEditReferenceBoneでボーン編集画面に移動する。
そしたらAddLimbを開き、Clothes Kiltという箇所をクリックする。
スカートボーンが生成されるのでサイズを変更したり位置を調整する。
例えばきltMaster_ref的なボーンがスカートのルートになっているので(そしてこれの親はリグのルート)、こいつを腰の中心あたりに配置する。
またそもそもスカートボーンの数を変更したい場合は、LimbOptionを押す。
kilt の Count(per side)で左右各何本ずつにするか調整。
デフォルトのボーンだと位置が分かりづらいので、Stickに変更するとより丁寧な作業が可能。
リグの生成
ボーンの位置調整が終わったら,Match to Rigでリグを生成する。
腰の部分と裾の部分に新しくリグのパーツが加わる。
位置に納得いかなければ、再度EditReferenceBonesを押して修正する。
スキニングする・ウェイトを付ける
ARPのSKIN機能を使うが、自力で塗ることも可能。
今回は体のウェイト設定は済んでいるので、スカートだけをスキニングしたい。なのでスカートの頂点を全選択しておく。
そしたらObjectModeに戻り、スカート→リグの順で選択
ARPのパネルのSkinを開き、Bindの箇所にあるSelectedVerticesOnlyにチェックを入れ、Bindを実行する。
PoseModeで裾のリグをひとつ選択して、RキーでRotateさせてみる。動けばとりあえずOK(このときGキーで動かそうとすると形が崩れるので注意)。
突き抜け対策・Collision設定
以上のだけでもスカートを動かすことはでき、しかも足の動きにもある程度なら対応するようになっている(ゆっくり歩くくらいの動きなら十分)。
ただ大きな動作の場合は突き抜けてしまうので、いちいち手動で裾をRotateさせるのが難儀ならCollisionを設定して対応する。
Rigを選択してEditReferenceBoneを押す。
スカートボーンのどれかを選択した状態でLimbOptionsを押す。
CollideWithLegsにそれぞれ太もものthighボーンを割り当てる。
できたらMatchtoRigでリグに戻る。
この時点で動かすと、最初の状態よりは対応している。がより精度を出すため値を修正する。
Poseモードで裾のスカートリグの一箇所を選択し、サイドのToolパネルを開く。
基本はCollideDistanceとCollideSpreadの値を調整することで対応する。
胸にボーンを追加する
AutoRigProで作ったリグにボーンを追加したり削除したりする場合は、AutorigProのボーン機能を使わないと支障が出るとのこと
すでにあるリグに胸ボーンを追加したい
リグを選択した状態でAutoRigProのRig画面を開き、 Addlimbから Breastを選択する。
するとリグの表示がボーンに変化し、胸にもボーンが追加される。
ボーンの位置調整をしてMatchtoRigを実行する
位置を修正したい場合、EditReferenceBonesを実行することで再度ボーンの表示に変わるので、それで調整して再度MatchtoRigをおこなう。
メッシュの一部分や特定のBoneだけBindする・後から特定のオブジェクトをスキニングする
例えば一部のオブジェクトを差し替えたいとか、メッシュを編集した、後からFacerigを追加したといった場合、再度丸ごとBindするのではなく、当該箇所だけBindしたいことがある(ウェイトペイントなどを済ましている場合などは特に)。
SelectedVerticesOnlyとSelectedBonesOnlyのどちらを使うのか、個人的にはSelectedVerticesOnlyを使う方がうまくいくという印象を持っている。特にFacerigを後からやる場合、BonesOnlyだとウェイトが体の方にまで塗られていまいちだった。
あるメッシュの選択領域・選択したオブジェクトだけをBindする / SelectedVerticesOnly
髪の毛オブジェクトの例
Poseを付けているならAlt + R, Alt +G でデフォルトのポーズに戻しておく。
オブジェクトモードからEditModeに移動し、Bindしたい領域にある頂点を選択する。
オブジェクトモードに戻り、対象のメッシュが含まれたオブジェクト → Rigの順番に選択していく。今回は独立した髪なので髪オブジェクトを選択しそのつぎにRigを選択。
そしてARPのSkinモードを開き、 SelectedVerticesOnly の項目にチェックを入れる。あとはBindを実行。
手動でやる
上の方法でうまくいかない場合は手動でやってみる。
①髪オブジェクト→リグ を選択し、 ctrol + P で WithemptyGroupsで親子関係を作成
②リグ、髪を選択してWeightPaintModeに移動し塗る。
目の例
Editmodeで全選択する
ObjectModeで目玉 – リグの順で選択(この順でないとBindボタンが有効化されない)。
AutoRigProのSkinモードの設定でSelectedVerticesOnlyにチェックを入れる。
Specialsという箇所を開き、目玉を割り当てる(スポイト機能より左端の四角アイコンをクリックして検索した方がいい)
終わったらBindを実行し、PoseModeでできているか確認。
新しく作ったFacerigをBindする
EditModeで顔と目玉を選択状態にする。
Objectモードに戻り、顔と目玉オブジェクト – Rig の順番に選択する。
AutoRigProのSkinモードで SelectedVerticesOnlyにチェックを入れてBindする。
特定のBoneだけBindする / SelectedBonesOnly
スマホ
手にスマホを持たせるというのを例にやってみる。前項目のメッシュを選択してBindする方式でもできなくはないが、色んなボーンに細かくウェイトを塗るよりは手のひらボーンにのみ追従するようにしたいのでここではBoneも限定したい。
まずリグを選択しPoseModeに移動する。
ArmaturePropertyのLaysersの箇所から、赤線部分を選択してDeformationBonesを表示させる。
右手に持たせたいので右手のひらのBoneを選択する
オブジェクトモードに戻り、紐づけたいオブジェクト(今回はスマホ) – リグの順番に選択する。
後はAutoRigProのスキニング設定で SelectedVerticesOnlyにチェックを入れ、Bindを実行する。
うまくいけば手のひらボーンのみに紐づけができているはず。
ただしおそらく位置のずれは生じるので修正は必要。
AddLimbでTailかChain~の3つのうちから一つを選んで追加する。
選んだらボーンが表示されるので、
数はLimbOptionsから変更しサイズはSキーで調整、位置はGキーで移動。。
調整が終わったら親子関係を設定する(Tailだとデフォルトでルートのボーンが親に設定されている)。
変えるなら作ったボーン→親ボーンの順に選択して Ctrol + P → オフセットを保持を実行する。
最後にMatchtoRigを実行する。
リグができたらウェイトの設定。
手動で塗るか、スキニング機能を使う。
AutoRigProを使って追加したボーンのみ、あるいは特定のオブジェクトのみといったことをやるなら上の方に書いているSelectedBonesOnlyやSelectedVertcicesOnlyをやる
MixamoのアニメーションをAutoRigProで使用する / Remap機能
こっちに書いた。
準備
Mixamoからアニメーションをダウンロードし、BlenderでImportする。
また両方ともRotationをゼロにしておく。
関連付ける
AutoRigProのメニューの下の方にRemapの設定箇所があるので移動する。
そしてSourceArmatureにMixamoからダウンロードしたArmatureを、Targetの方にAutoRigProで作ったリグを割り当てる。
それがすんだらBuildBonesListボタンを実行する。二つのボーンの関連付けが行われる。
ついでにAutoScaleボタンでサイズを合わせておく。
次に下にあるMappingPresetsという項目に移動する。
クリックするとMixamo~があると思うので、その中から適宜選択する。今回はIKArms,IKLegsを選んだ。(AutoRigPro側でFaceRigも割り当てている場合、RightEye云々のエラーが出る。Mixamoのボーンには顔情報がないためらしいが、今回は無視して続ける)
Retarget
最後に上に戻ってRetargetを実行する。
うまくいけばアニメーションのコピーができているはず。Spaceキーで再生してみる。
アニメーションがうまくループされない場合、Timeline画面を出し、Endの数値をアニメーションの長さを見て調整する。
アニメーションがゆがむ・RestPoseを調整する(モデルがAposeの場合)
アニメーションの適用はできるが位置がずれるということがある。
これはRestPoseの形が異なるためにおこるらしい。(MixamoはTpose。つまり自前のモデルのRestPoseがAposeだったりすると起こる)
RestPoseの修正方法は直し方は、まずRedifeneRestPoseを実行しOkを押す。
そうすると画像のようにMixamoのリグがRestPoseになる。これをAutoRigPro側のリグと同じになるように調整する。
どのボーンを修正するかは事例によって異なるが、とりあえず今回は上腕から先までをまとめて選択(やり過ぎて変になることもあるので色々試そう)。
その状態でCopySelectedBonesRotationを押す。
すると自動で同期してくれる。
終わったらApplyで適用する。
そして最後にRetargetを実行する。(これを忘れがちなので注意!)
下記動画を参考にした。
MocapMarketのアニメーションと連携する
参考はこの動画。
準備
サイトから任意のアニメーションをダウンロードし、Blenderにインポートする。
注意点として、何もいじらずにインポートすると右のようにボーンの向きがおかしくなっている(ただしこの状態でもこの後の作業の大半には問題がなかった。RestPoseの編集などでは支障が出る)
これを左のようにImportするには 、Import画面のArmatureの箇所で、AutomaticBoneOrientationの箇所にチェックを入れること
AutoRigProでの設定
AutoRigProのRemapの箇所を開く。
まずSourceArmatureの箇所にMocapのArmatureを、TargetArmatureの側にAutoRigProで作ったリグを割り当てる。
続いて、AutoScaleと、BuildBonesListを実行する。
そうするとBonesListが表示される(赤枠)。
この赤枠内の左右に分かれたリストは右の列を選択する。左列をクリックすると意図せず変更してしまうこととがあるので注意。
ここでやるのは以下の3つ
①SourceのHipsボーンの箇所、おそらくTarget側はc_root_master、このc_root_masterの箇所を選択し、下にある設定画面のSet as Rootにチェックを入れる。
②もしTraget側の HeadなどNoneになっているなら適宜割り当てていく(ただ全部を割り当てるとかはやらなくてもいいっぽい。とりあえず重要そうな部分に抜けがないかだけ確認しておく)。
③LeftFoot・RightFootの箇所でIKにチェックを入れる(これは必要でないかもしれないがやっといた。Armも必要であればやっとく)。
終わったらRetargetボタンを実行する。
うまくいけばちゃんとアニメーションするはず。
RestPoseの設定・歪みを直す
やはりRestPoseが異なっている場合画像のようにモーションに歪みが生じてしまう。
詳しくはMixamoのRestPoseを調整するの箇所に書いてあるが、この場合もそれを必要がある。
RedefineRestPoseを押す。
当該ボーンを選択し、CopySelectedBonesRotationを実行して位置合わせを行う。
注意点としてした画像のようにボーンが上向きのままインポートしている場合、CopySelectedBonesRotationはうまくいかない。手動でボーンを調整する必要がある。
終わったらApplyし、
Retargetを再度実行する。
これで修正されていればOK。
髪の毛の制御・追従させる・髪に補助ボーンを入れる
髪がBodyと別オブジェクトで、RiggingであれSkininngであれ何もしないで作業を進めると、画像のようにBodyに追従してくれない。これを解消する
髪を変形させる必要がない・Bodyや頭オブジェクトにくっついて移動してくれればよい場合
この場合はSkininngの際にBodyオブジェクトなどと同時に髪オブジェクトを選択することで追従させることが可能(Body +髪などを選択 → リグを選択 → Bindを実行という手順)
髪に補助ボーンを入れる
リギング
リグを選択してEditReferenceBonesを押す。
AddLimbから Tail or ChainSplineIk or ChainBendyBonemのいずれかを追加する(ここではTailを使う)
新しいボーンが尻尾の位置に生成されるが、それを動かして制御したい髪の位置へ持っていく。
ボーンの数はLimbOptionで変更可能。
配置できたら追加したボーンをまとめて選択する(どれか一つを選択しCtrol+L)
そのまま頭のボーンを選択する。
Ctrol + P(または右クリック – parent)で MakeParent – KeepOffsetを実行する。
これで親子関係の設定が完了。
MatchtoRigを実行するとボーンがリグに変換される(ただしまだウェイトの設定をしていない髪はついてこない)。
ウェイト・スキニング
オブジェクトモードに戻り、髪を選択してEditModeに入る。そして全選択。
ObjectModeに戻り、リグを追加選択する。
ARPのSkinモードを開く。
SelectedVertcicesOnlyにチェックを入れ、Bindする。
とりあえずこれで動けばOK。
あとは適宜ウェイトを修正する。
トラブルやTIPs
ひとつのBlenderシーンで複数のオブジェクトをリギングするときに干渉する
モデルAのリギングやスキニングがすんでいる状態で、モデルBをリギングしようとしたときに、ちゃんとモデルBだけを選択して GetSelectedObjectsをしているのになぜかモデルAにまで影響が及んでぐちゃっとなることがあった。
OverwriteExistingRigのチェックを外すのと、Remapのところに色々設定していたのを全部外してからやると問題なくできた
口や歯のスキニングがうまくいかずぐちゃぐちゃになるのを修正する
デフォルトのスキニングだとこんな感じでぐちゃぐちゃになってしまった。
準備
オブジェクトモードでボディーのオブジェクトを非表示にする。
リグを選択し、AutoRigProのRigモードを開く。そこからEditReferenceBonesを実行する。
そうするとボーンのEditModeに画面が変わる。ここから上下の歯のボーンと舌のボーンを設定していく。
歯のボーンを修正する
歯のボーンをちゃんと上下の歯の位置に置いていく(画像の上下の赤枠内のボーン上下各3本ずつ)(ボーンを選択するとteeth_bot…のような名前がついているはず)
例えば下の歯であれば、歯の下の歯茎あたりにZ位置を、両サイドのボーンを少し離すように設定。
上下だとこんな感じ。
舌のボーンも同様に修正
手順は同じ。縦に三連の舌ボーンを舌の位置に配置する。
大き過ぎる場合はItem項目のLengthで調整する。
MatchToRig
位置編集が終わったらMatchToRigを再実行する。
わかりづらいものの、各リグが適切な位置にあるか確認する。
頂点グループをいったん消す
オブジェクトモードで歯のオブジェクトを選択し、右サイドの緑三角からObjectDataPropertyを開く。
そして頂点グループのプルダウンからDeleteAllGroupsを実行して頂点グループを全削除する。
歯と舌、あるいは歯が上下で別オブジェクトの場合は一個ずつ同じ作業をすること。
スキニングを実行する
Rigを選択してポーズモードを開き、ObjectDataPropertyから赤線のレイヤーをOnにする(DeformationBoneというのが表示される)。
画面上にボーン(DeformationBone)が表示されるので歯と舌のボーンを選択していく。
オブジェクトモードに戻り、対象のオブジェクト(上で選択したボーンに対応するオブジェクト)、ついでリグを選択する。(順番に注意)。
そしてAutoRigProのSkinモードで SelectedBonesOnlyにチェックを入れてBindを実行する。
リグを選択してポーズモードに移る。ObjectDataPropertyの表示を戻す(一番左の赤線の箇所をアクティブにすると、リグが表示される)。
リグを動かしてちゃんと動くか確認する。
SkinのBindがうまくいかない
ボーン入れとリギングの工程は特に問題なさそうなのにSkin過程でBindを実行してもリグとオブジェクトの関連付けががうまくできないことがあった。この場合以下のような方法を試みてみると
対処法① BindエンジンをデフォルトのHeatmapでなくVoxelに切り替える。
対処法② メッシュのポリゴン数を減らす(うまくいかなかったときの頂点数は20万くらい。5万だとうまくいった)。ポリゴン数が多すぎるとスキニングがうまくいかないという可能性がある。
対処法③ まとめてBindするのでなくBoneなりメッシュなりを一部分ずつBindしていく
目が頭についていってくれない
これをBindの時に目のオブジェクトを選択し忘れている可能性がある。
目を動かすとメッシュを突き破ってしまう
目は球形がいいらしい。球形の目に切り替えるか、原点の位置を調整して対処する。
特定のボーン・部位だけBindをやり直す
目を差し替えた時、全体をBindし直すのでなく目だけやる方法。
新しい目ん玉オブジェクトを設定する
目のボーンを選択する
リグを選択してPoseModeに移動する。
ObjectDataPropertyのLayersの赤線の箇所をアクティブにするとリグの表示が変わる。
目玉を担当している6つのリグを選択する。(円形の二つずつのはわかりやすいがその中央奥にあるeye_ref_track的なのは見落としやすい。ボディや目をいったん非表示にしておくと選択しやすい)
左上にeyeなんたら出るので参考に。
Bindする
Objectモードに戻り、目やBodyオブジェクトを選択、次にRigを選択する。
AutoRigProのBindの項目にある “SelectedBonesOnly”にチェックを入れ、Bindを実行する。
確認
バインドがすんだらリグを選択してPoseModeに移動し、ObjectDataPropertyのLayersから赤線の箇所をアクティブにする。するとリグの表示が戻るので、あとはリグを動かしてちゃんとバインドされているか確認する。
手指の操作・掴む・拳を握る
手のリグを選択し、Toolパネルを開く。
下の方にFingersGraspとある箇所の数値を調整することで開いたり閉じたりできる
modifiers cannnot be applied to multi-user data とエラーが出る
スキニングでBindしようとした時、modifiers cannnot be applied to multi-user dataというエラーがでることがあった。
O脚になる
自動でリグをやるとO脚になることがある。
EditReferenveBonesからボーンを調整して直す。
Outlinerに重複して表示されるのを解除する / リンクを解除
AutoRigProのSkin機能を使ってスキニングすると、スキニングに使ったオブジェクトはリンクが作成され、OutlinerのCharacter1的なコレクションの中にも表示されるようになる(元々のコレクションとCharacter1コレクションとの2つのコレクションに同じオブジェクトが表示される。これはリンクされているだけで同じオブジェクトなのでどちらかをいじれば両方とも変化する)。
例えばClothesコレクションを作って、そこで衣類を管理しているとき、ジャケットはARPでスキニングしてズボンは未スキニングということがあるとする。
衣類をまとめて非表示したいと思いClothesコレクションの目のアイコンをオフにしても、ARPでスキニングしたジャケットはCharaceter1コレクションの方にも入っているためそれだけ非表示にならないといったことが起こる。
Clothesコレクションのみで管理するには、Characeter1的なコレクションにあるリンクを解除する必要がある。
・OutlinerでCharaceter1にある方を選択して 右クリック – Unlink を実行する
・3Dビュー内で対象のオブジェクトを選択し、Object – Collection – RemoveFromCollection と進み、ポップアップ内で2つコレクションが表記されているはずなので、Characeter1の方を選択する。
リグを削除したい
リグをOutlinerで階層内にある全選択し、Alt+ P – Clear and keep transformation
そしたら分離されるので、あとはRigを削除する。
Smart機能で Goを押すと Could not find root pos とエラーが出る
腰のマーカーがメッシュから外れていると表示される。ビューポートを正面視点にして、各マーカーがメッシュにのっているか確認。
Rest Pose を変更修正する / RestPoseをAポーズからTposeに
APOSEやTposeへの変更であれば、PoseToolsのSetPoseを利用する。
SetPoseを押すと、いくつかのポーズ候補が表示されるので、その中から一つえらぶ。
そうするとリグのポーズが変わる。問題なければ、ApplyPoseAsRestPoseを押す。
他のポーズや細かい箇所の修正は、PoseModeでまずRestPoseにしたいポーズをとらせて、できたらApplyPoseAsRestPoseを実行する。
ボーン編集の画面になる。必要があればボーン位置を修正する。
問題なければMAtchToRigを実行。
FingerGraspで指の曲がる向きが逆になる / Finger Grasp の修正
手のリグを選択して、Toolパネルのfinger Graspを操作すると逆に曲がることがあった。
数値をマイナス値にすれば逆に曲げることができる。
修正する場合は
①AutoRigProのパネルからEditReferenceBonesを実行する。
②
まぶたぐちゃっとなる問題
スキニング後、Eyelid_top的リグ(赤丸)でまばたきをさせようとするとグチャッとなりがち。
複雑な動きをさせないなら、横長のEyelidでなく、まぶたの箇所にある円形のリグどれか一箇所に集約して動きを制御すると楽だった。
画像の場合赤丸の部分で上瞼の動きを全部管理するという具合。
MixamoのアニメーションをRemapしたあとポースが歪んでしまう
MixamoからダウンロードしたアニメーションをRemapして使用したとする。
何かしらレンダリングし終え、新しくアクションを作るため、いまRigに割り当てられているアクションを解除し、ポーズを全選択して ALT + R – Alt+ G でデフォルトのポーズに戻そうとした。
すると画像のように歪んでしまうことがある
この歪みを一番手っ取り早く修正するには、
ARPのPoseToolsを開き、SetPoseを実行する。
TposeかAposeを選んでOKを押すことでなおるはず(TposeかAposeであること前提)
コメント