Blender: Armature の削除や変更で Vertex Group との整合性が狂ってしまったときの修正方法、のメモ
状況
「Armature を節約しなきゃ→簡単に Merge できるところは Merge!→ Merge が難しいところは Delete / Disolve ! 」
とかした後に、
「 Armature を Delete / Disolve した部分に対応していた Vertex Group と残した Armature との対応が壊れてしまった…再ペイントは…しんどいでござる」
になった時、 Weight Paint で塗り絵せずに残っている Vertex Group をにゃんにゃんしてうまいことする方法のメモです。
例えば、
↑ Armature は1つ!(に Merge & Delete / Disolve した!)
↑↓ Vertex Group は2つ!(Armatureとの対応も一部が壊れてしまっているのでうまく動かなくなっています)
方法
Blender-2.82 時点では Vertex Group を直接操作して Merge する UI は無さそうなので、 Scripting を使います。今回は何かないかなーと探してみたところ:
-p2or/blender-merge-vertex-groups.py
↑いい感じのコード片が見つかったのでこれを応用します💪
手順:
- "いまは分かれてしまっているが統合したい"
Vertex Group
の正確な名前を確認します。F2
で名前を編集状態にしてCopy
すると間違いが無くて安心 Scripting
でNew
して p2or/blender-merge-vertex-groups.py を貼り付け- 貼り付けた blender-merge-vertex-groups.py の
group_input
を ↑↑(1) で調べた名前群にする Object Mode
で操作対象の Mesh が選択された状態にするRun Script
- 名前も
"+"
でくっついて統合されたVertex Group
ができている(はず)なので確認 - 統合後の Vertex Group に対応付けたい Armature の名前を確認。
F2
で名前を編集状態にしてCopy
すると間違いが無くて安心 - 不要な場合は統合前の Vertex Group 群を
-
Vertex Groups UI の右側についているボタンをぽちって削除 - ↑↑↑(5) の統合された Vertex Group の名前を
F2
で名前編集状態にして ↑↑(6) で確認した名前に変更。↑↑(6) でCopy
してあればPaste
するだけ - Pose Mode で期待動作を確認
Note: 統合後の Vertex Group の名前を統合前の Vertex Group で使用している名前にしたい場合は (7)と(8)を逆順で行います。
↓例えば Vertex Group 群 "NekoMimiBone_L_001"
と "NekoMimiBone_L_003"
を統合して "NekoMimiBone_L_001+NekoMimiBone_L_003"
を作成し、
↓不要になった Vertex Group 群 "NekoMimiBone_L_001"
と "NekoMimiBone_L_003"
は Remove し、
↓統合後の Vertex Group の名前を対応付けたい Armature と同じに
します💪
↑期待動作した成功✨