スキニング
※個人用備忘録&素人による記事の為、間違いがある可能性があります
■参考
https://dskjal.com/blender/weight-paint-tips.html
■モデルの準備
メッシュにミラーモディファイアは残したままでOK
理由:ウェイトのミラー方法が
・ミラーモディファイア
・ウェイトペイントのブラシのtool設定の
Mirrorを事前にオンにしておく(忘れると終わり)
・頂点グループの反転コピー(ちょっと手間)
の3つの為、ウェイトのミラーもミラーモディファイアが一番楽
なので、ミラーモディファイア適用はスキニング後の方がいいのだ!
つまりUVの左右に開くのは後でやる。
■ボーン作成
ボーン配置
未執筆
AutoRigPro使ってるから、あまり作業する機会が無い
ボーンのリネーム
未執筆
AutoRigPro使ってるから、あまり作業する機会が無い
ボーンのミラー
※shift + E で左右対称にボーンを作成できるが、リネームを後でしなければならない、コンストレインはコピーできない などの理由から推奨されない。ではどうするか?
・ミラーコピーしたい骨を選択
・Armature > Names >AutoName Left/Rightでリネーム
・Armature > Symmetrize でミラーコピー
ボーン配置後
メッシュのArmatureモディファイアに赤枠にチェックが入ってないか確認
オンだとゲームエンジンと違う挙動になる可能性あり
■ウェイトペイントモード:機能説明
ワイヤーフレーム表示が見やすい
ボーンを動かせるようにする
・アーマチュア選択
・メッシュ選択
・ウェイトペイントモードに変更 ショトカ:Ctrl + tab
※アーマチュアを先に選択する事で、ウェイトペイントモード時に
Ctrl+クリック でボーン選択できる
通常モード
A ウェイトペイントに入った直後はオフになっています
B ブラシで選択ボーンのウェイトを塗るモードです
ウェイトを塗る対象ボーン(頂点グループ)を選択する方法
C Ctrl+クリックでボーン選択
D 頂点グループを選択
ペイントマスク
※このモードではCtrl+クリックによるボーンの選択はできません
面単位のマスクができます
Ctrl+クリックで1つの面選択
Shift+クリックで複数選択
頂点選択
※このモードでもCtrl+クリックによるボーンの選択はできません
A 頂点選択モード、頂点ごとに調整できる
B Ctrl+クリックで頂点選択可能
C クリックで頂点選択可能
D 頂点に割当られてるボーン、ウェイト値が見れる
Normalize、Copyボタンもある
×でボーン削除もできる
E Assign:下のWeight値で選択頂点に割当
Remove:選択頂点を頂点グループから除外
Select,Deselect:頂点グループを選択、非選択
任意の頂点を除外する方法
Bキー > Shift + 範囲選択
で除外できます
非表示
Editモード > メッシュ選択 > Hキー > ウェイトペイントモード
で面を非表示にしてウェイトペイントできる
ウェイト0を黒色にする
ウェイトの1と0の色を変える
プリファレンスを開く、ウェイトペイントの項目を開く
左右両端の色を白と黒にする(この場合左は黒、右は白)
+ボタンで真ん中に色追加、黄色にする
更に+ボタンで左中央に色追加、青にして位置を0.0001に
更に+ボタンで右中央に色追加、赤にして位置を0.9999に
ブラシの設定を確認
※ AB はミラーモディファイア使ってるなら使わない
A 頂点グループミラー
B も押さないと転写されない
B ここもオン
C ウェイトの合計値を1.0に自動でしてくれる
ウェイトをグラデーションで塗る
Alt+ドラッグでグラデーションになる
ウェイトを単一ボーン1.0に
・対象の頂点を選択する
・その頂点を全ての頂点グループから除外
・その後アサインしたいボーンの頂点グループを選択 > Assign
ウェイトのミラー
■Lazy Weight Tool
アドオンの章でも紹介しているが
ウェイトはアドオン使った方が便利
下記は解説記事
■スキニング:0から自分でウェイト
ペアレント
Ctrl + P
A 空グループ 全て自分でウェイトつける場合コレ
B 自動ウェイト こっちでやる場合次章を参考に ← オススメ
チェックモーションを作る
チェックモーションは作った方が良い、圧倒的に後で楽だから
各骨を腰(Root、根元)から順番に5fごとにキーを打って動かす
・回転 ←必須、XYZ軸に90度ぐらいを目安に可動範囲を動かす
・移動 ←移動するようなコントローラーなら
・スケール ←基本しなくていい
ウェイトつけ
・アーマチュア選択
・メッシュ選択
・ウェイトペイントモードに変更 ショトカ:Ctrl + tab
まず腰(Root、pelvis)を選択、全頂点を全頂点グループから除外
⑥ Assign押して、全頂点 腰に1.0つけます
① spine01を選択
② それより子階層のボーンの頂点を選択
③④ 既存のウェイト削除
⑤ アサイン
選択ボーンによって動く&未ウェイトの頂点を選択
0.5とか適当な数値でウェイトをつける
チェックモーション見ながら、この数値を調整してウェイトをつけていく
基本的に末端(指先、足)までこの繰り返し
■スキニング:自動ウェイト使う場合
選択ボーンから自動ウェイト
何らかの理由で一部のボーンのウェイトだけつけたい場合
選択ボーンから自動ウェイトできる
ポーズモードで任意のボーンを選択
オブジェクトモードで アーマチュア > メッシュ の順で選択
① ウェイトペイントモード
② ウェイト範囲を限定させたいなら、頂点を選択
③④ を選択
空グループの場合、ボーンから自動割り当てをする
ウェイトペイントモードでウェイトつけたいボーンと頂点を選択(しなくてもいい)して下記
!!!! AutoRigProはここから ↓ 見る !!!!
※これからやる操作で自動でつけたウェイトが崩れる可能性があります
自動ウェイトを活かしたい場合、数値を調整しながら
チェックモーション見て確認しながら作業を進める!
※ウェイトは適当で良ければ、崩れる操作はしなくても良い
ウェイト整理
ボーン数制限
ゲームエンジンでは1頂点のウェイトに割当てられるボーン数の制限がある為、Blenderでも制限をかけます
① Weight > ② Limt Total
・UE なら8(UEは8ボーンまで対応) ← コレでOK
・Unity or キチンとウェイトつける なら4
※ただしAutoRigProの元のウェイトは結構崩れる
・本来全てウェイト手付けなら2が原則
※ここではUEは8ボーンいけると書いてますが、それによってクッソ重くなるかどうかは分からない・・・
操作の対象(機能全般)
Weightメニューから操作したら左下に出てくるプロパティ
の対象を何にするか?という設定
① 全頂点グループ を対象
② ボーンがアサインされてる頂点グループ を対象 ←コレが無難か?
③ 選択ボーン を対象
④ 選択頂点グループ を対象
頂点のウェイトを確認する
② 頂点を選択する
ボーン数が任意の数になっているか確認
Nomalize
ボーン数を強制的に制限した為、1.0では無くなっている
それを正規化(Normalize)します
Weight > Normalize All
プロパティを下記の通りに
キリの良い数値に
①全頂点選択
プロパティを画像の設定にする
小さいウェイト削除
Weight >Clean (頂点は選択しなくて良い)
左下に出てくるプロパティを下記の通りに
ウェイト調整
・アーマチュア選択
・メッシュ選択
・ウェイトペイントモードに変更 ショトカ:Ctrl + tab
チェックモーションをコマ送りしながら、spine01からウェイトに問題ないか確認しながらウェイト修正していく。
■再・ウェイト整理
0ウェイト削除
Weight >Clean (頂点は選択しなくて良い)
左下に出てくるプロパティを下記の通りに
Normalize
再び、Nomalize
Weight > Normalize All
Quantizeはしなくて良い
不要頂点グループ削除
メッシュ毎に必要ない頂点グループも含まれている為、除去する
ウェイトが全く無いボーンを削除
それでも消えないのは、確認して手動削除
終わりっ!!!
お疲れ;;
■Tips
ウェイトの反応がない
・ミラーモディファイアが適用されてない
(最近はこのバグ無い気がする・・・)
・Auto Normalizeがオンになっていて、1.0のウェイトで骨一つしか頂点にアサインされてないとウェイトを減らす事はできない(下記のような場合)
ウェイトを転送
ローポリモデルからハイポリモデルへウェイトを転写する方法
頂点数が多い場合、ローポリにウェイトをつけてからハイポリに転写すると綺麗なウェイトになる事が多いです
全身のウェイトを転送
・このやり方は全頂点グループが上書きされます
なので、「全身ローポリ」 or 「部分ローポリ+※他はそのまま」で作る
※ハイポリの既存のウェイトを残す
・モディファイアに比べてトライ&エラーがやりやすい
ハイポリモデルを複製
ローポリにします(今回は腕だけ、全部ローポリにしてもOK)
ローポリ > アーマチュア の順で選択 、Ctrl+Pで 親子付け
ローポリにウェイトをつけます
① 転送元(ローポリ) > 転送先(ハイポリ) の順で選択
② Weight 選択
③ Transfer weights 選択
左下のプロパティをこの設定にします
①ハイポリ > ②アーマチュア の順で選択
③Ctrl + P > With Empty Groups
できた
部分ウェイトを転送
一部の頂点のウェイトを転送できる
手順がちょっとめんどい
ローポリつくる
ローポリにウェイトつける
ハイポリに欲しいボーンの頂点グループあるか確認
無ければ ハイポリ>アーマチュア選択
Ctrl+P > With Empty Groups
転送先(ハイポリ)ウェイトが欲しい頂点の頂点グループを作る
転送先(ハイポリ)に DataTransferモディファイア を適用
DataTransferモディファイア を アーマチュアの上 に持って行く
A 転送元(ローポリ)を指定
B さっき作った頂点グループを指定
問題なければ
・DataTransferモディファイアをApply
・ウェイト転送用の頂点グループを削除(Normalizeされるとヤバい)
■アドオン
ウェイト値をキリ良く
Paint Palettes
ブラシツールのウェイト値をキリの良い値にしてくれる
あんまり使わない
Lazy Weight Tool
別記事にて解説
この記事が気に入ったらサポートをしてみませんか?