Ebbawt - Accurate Weight Painting With Armature

by Terry Teddy in Scripts and Addons


The presentation video should give you an idea of how EBBAWT works. Even if it's short (8 minutes) slightly crazy (and that my English is poor as a french citizen not very strong in languages...)
The manual in the ZIP of the add-on will be able to answer your more advanced questions.

There is a code to prevent Blender from crashing and to inform you of the procedure to follow. Most of the menus are contextual which also avoids a lot of mistakes. Anyway, don't forget to save your file and/or the EBBAWT armature with the additional (added) bones and to disable (don't remove them, just don't display them in the viewport) all modifiers (except the armature modifier) before using EBBAWT Tools ! Don't lose your precious and reusable work !

So, watching the 8mn video is much more explicit. Nevertheless, here are some basic explanations of how EBBAWT works:


(Install EBBAWT like many other add-ons, if you don't know how, please open image in a new tab)

EBBAWT is a tool that was originally created for myself and that was supposed to make my work easier when I was creating characters in Blender. Then, as I was improving it, the idea came to me that this tool could be useful for Blender users in general.

EBBAWT PREFERENCES should remain as it is (for a basic use), in DEFAULT MODE, for the two following tools.


The two main tools of EBBAWT are accessible in the EBBAWT Tools panel when you are in ARMATURE EDIT MODE :

  

2+ bones:


- When the mesh object is the only child of the armature (if it is not the only child of the ARMATURE, we designate it in the Mesh Object panel of the EBBAWT Preferences panel).


- After adding BONES to create a more accurate deformation of the MESH OBJECT".

(we adjust it until we are satisfied (adjustment+"set parent to armature deform with automatic weights" etc) using its moving armature -the additional BONES must be the children of the "helped" BONE to move with it- to find out the precision of the deformations, we move the additional BONES to obtain a stronger deformation (BONE closer to the surface) or a weaker deformation (BONE further from the surface)

- After of course a "set parent to armature deform with automatic weights".

- After saving the armature with the additional BONES.


2+ bones Mixes the VERTEX GROUPS in the OBJECT MESH corresponding to the names of the selected BONES (orange) with those of the ACTIVE BONE (yellow) (the last selected)with default preferences, the VERTEX GROUPS of the additional BONES now mixed with those of 2+ bones Mixes the VERTEX GROUPS in the OBJECT MESH corresponding to the names of the selected BONES (orange) with those of the ACTIVE BONE (yellow) (the last selected)with default preferences, the VERTEX GROUPS of the additional BONES now mixed with those of the ACTIVE BONE (the helped BONE) are deleted and the additional BONES of the armature are also deleted.

1 bone:


Same as the 2+ bones button but made easier for quick selection of additional BONES (a large number of BONES can be tedious to select) 

1 bone needs preparation: the 1 bone is the child of the helped BONE and the parent, even after several generations, of all additional BONES of the helped BONE. It must be far from the object mesh and the other BONES to be selectable easily.

To know if the 1 bone is correctly functional, we select it and press the "check 1 bone setting" button of the EBBAWT Preference panel, if the selection turns into a functional selection for the 2+ bones method, everything is correct. This button is only a way to check and does nothing else, no worries...

So, contrary to the 2+ bones method, you just have to select the 1 bone to make the 1 bone method work.



The next logical step was to create an additional tool to work comfortably, a kind of vertex groups mixer that works in both ARMATURE EDIT MODE and in MESH OBJECT MODE:

EBBAWT as a Vertex Groups Mixer:

        

  

You can access the VERTEX GROUPS of an object mesh 
- by selecting it when you are in OBJECT MODE
- when we are in ARMATURE EDIT MODE and the mesh object is the only child of the armature, (as above, if it is not the only child of the ARMATURE, we designate it in the Mesh Object panel of the EBBAWT Preferences panel)

> And by pressing the Choose/Reset button of the EBBAWT object chooser panel. 

In order to mix the VERTEX GROUPS, there are two possibilities when it comes to selecting them: We can do it indifferently from two pannels. The method is different but the result is the same: The VERTEX GROUPS are selected to be mixed with the group designed by :

 

the VERTEX GROUP of the active (yellow) BONE (last selected) for the 2+ bones method or the direct parent of the 1 bone for the 1 bone method 
> When in ARMATURE EDIT MODE

the VERTEX GROUP designated in the ACTIVE VERTEX GROUP panel displayed in the EBBAWT Preferences panel when a CHOOSE/RESET has been made
> When you are in MESH OBJECT MODE


The way the VERTEX GROUPS are mixed depends on the Mix Mode and Mix Set settings in the EBBAWT Preferences panel. IF you forgot the useful EBBAWT default setting we can consider that the checkboxes are checked by default and choose DEFAULT in MIX Mode and Mix Set.


(open image in a new tab)

THE EBBAWT GADGETS:

  

Fit to active:

In OBJECT MODE of MESH OBJECTS:
When you have a MESH OBJECT that is deformed by an armature and you want items to follow the same deformation of this armature, you just have to select all the objects that have to be deformed first (SELECTED-orange) and to select last the correctly deformed object, the model in a way (ACTIV-yellow). By pressing the Fit to active button, all selected objects are attributed the VERTEX GROUPS of the ACTIV OBJECT by proximity and the same ARMATURE MODIFIER. They follow the same deformation as it, a bit like clothes or objects do on a character. This tool works by proximity.

Copy active VG:

In OBJECT MODE of MESH OBJECTS:
It is simply the "Copy vertex groups to selected" feature of the Object Data Properties/Vertex groups panel made available in the EBBAWT panel. Likewise, it needs non-zero vertex groups to work and copies the vertex groups of the active object to the selected object, no need of proximity but the two objects must have the same number of vertex and the same indices.

Helpful hints:

-Work on a copy of your armature and mesh so you can go back. (UNDO is available but you can quickly exceed the number of times you can go backwards...)



-For the case of an armature and its mesh object Already weight painted, you have to find the armature layer (often hidden- RIGIFY armature for example) where are the bones that DEFORM, it is here that you have to act
(see the cases below)

-The additional bones are easily obtained by extruding first (extruding or dupplicating its children afterward) the helped bone so it become its children and move with it. See the documentation for the special case, not obligatory but practical, of the 1bone.

-Be aware that the closer the additional bone is placed to the surface of the mesh, the more influence it has.

-Please think: 

  •  Power (the additional bone that moves like and with the arm or thigh bone) sometimes not required...
  •  Counter power (the additional bone that is there to counterbalance the powers of the others like the ribs or pelvis) often required...

The following in italics is not specifically related to EBBAWT but is part of the things you need to know when working with some kinds of rigs...

-Case -RIGIFY :

You may indeed have to use an already prepared armature like for example a Rigify armature obtained with the Rigify add-on enabled :

Once you have adapted the rigify armature to your mesh and once you have pressed -Armature object mode - Object data properties - Rigify buttons - Generate rig, you do a parenting with automatic weights with the rig (hide your metarig, it is not useful here) and see that the result although not bad is not optimal on some areas.

You locate the armature layer that contains the bones that deform (-Armature edit mode -Bone properties -Deform checked when a bone is selected) (usually the third one in the bottom line from the right) and you create your extra bones on this layer or at least activate it (it is not visible by default, but the easiest way is to work only on it to avoid cluttering the screen, or any other method, it's up to you)

Once the areas that don't deform correctly have their extra bones assigned, we put the layers of the armature back as they were and make a new parenting test with automatic weights, if we are not satisfied with the result we readjust the extra bones, too many deformations, we tuck it a bit more into the mesh, add some, remove some etc... the experience will make that after a few reworked armatures, you'll do it the first time! 

Are you satisfied with the deformations? It's time to get back to an intact rigify like on the first day without all this stranges bones all around > EBBAWT 2+bones or 1bone

-Cases -Mesh and armature already parented or where there is no question of doing a parenting with automatic weights (weights already done), such as imported MakeHuman characters, Daz, Mixamo etc...

Usually, these characters are very well related to their respective armatures. Nevertheless, for some reason, we may have to change some influences of their bones.

We will then detect the layer of the armature or the bones that deform, add the extra bones, the only thing that changes is that at the moment when we usually do a parenting with automatic weight, we go instead, select our added bones (easily: 1bone selected, shift G -Children or Select -Similar -Children or one by one if you want) go back to armature object mode, shift select the mesh, enter in weight paint mode (magic!). Your bones are selected in the Armature Pose Mode now!) -Weights -Assign Automatic from Bones. 

Here we try different poses to see if we are satisfied with the result ...

Are you satisfied with the deformations? It's time to get back to good looking and practical armature without all this stranges bones all around... > EBBAWT 2+bones or 1bone

Troubleshooting:

Errors may occur in general when opening a document saved in a previous version of Blender 3.0.0 in Blender 3.0.0

As far as EBBAWT is concerned, in case of problem, a good practice is to remove the armature modifier from the involved objects and to do a "set parent to armature deform with automatic weights" again in 3.0.0.

You can also and particularly follow some simple routines in the rare cases where errors occur:

Depending on the context, use "Choose/Reset" or "Discard the selection" button systematically before each use of EBBAWT tools.


Use EBBAWT tools in armature rest position.

Temporarily disable shape keys (except basis shape key) while using  EBBAWT tools can sometimes be necessary.


Thanks and have fun with EBBAWT!
   

Sales 20+
Dev Fund Contributor
Published 5 months ago
Software Version 2.83, 2.9, 2.91, 2.92, 2.93, 3.0, 3.1
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message