Profile Picturelearnasimakeit

Handy Weight Edit


Handy Weight Edit is an alternate weight painting method in Edit mode. 

It offers precise control where and how weight is distributed. Instead of over paint in small hard to get areas, you can now select individual vertices and add weight value to them. Along with all the familiar tools like loop select, xray, lasso select, hide/unhide elements, it is never easier to modify weight values during character skinning process.

if you are new to weight painting, scroll down the bottom section of this page for more detailed explanation of each operator and Q&A.

After binding to an armature, select a single mesh object and enter edit mode, then use various tools to modify the weight value:

  • increase or decrease weight value with mouse wheel on selected vertices (hotkeys can be customized)

method one: uniformly modify weight value to selected vertices. useful to fill large portion of area with same value.

  • method two: vertex weight value is modified on a per vertex level, in a gradient manner. useful to fine tune borders where multiple bone influence groups meet.


  • smooth selected vertices weight, please note, if you have symmetry turn on, it will affect the symmetric part on the other side, which usually is not intended.

  • copy weight value as last selected vertex.

  • Mirror Weight (symmetric).

  • Mirror Weight (asymmetric): either mirror all vertices from one side to the other, or only active bone from one side to the other. take a look at this Video or scroll down to bottom page for more info.

  • Custom Prefix, Suffix for mirror weight:



Switch Bone Influenced Groups with Single Operator:

case 1: if a single vertex is selected, cycle through all influenced weight groups that include the vertex. useful where multiple vertex groups intersect. 

case 2: if more than 1 vertex is selected or none is selected, switch bone influenced group under mouse cursor. useful where a precise selection is made and you want to switch bone influence group.


  • Isolate Active Bone. while adjusting different vertex groups, use the toggle to only show the corresponding bone, so that you would never modify the wrong bone influence. ( toggle relevant deform bone layer on in blender 3.x, if you use rigify [layer29] or autorigpro [layer 31] )



  • limit max weight groups. to increase lower end platform performance, a set of max bone number influence is a must. 

  • remove weight below set threshold. optimize performance by removing small influenced values.

  • select half of the mesh

  • check if total weight value equal to one. for usage in game engines, many prefer each vertex total weight value is one. this operator will pick out the abnormal ones.

  • Some platform have hard max limit of how many bones a vertex can be influenced. This operator will check if there is any vertex that has exceeded set max weight group limit. for example, if the max is set to 3, this operator will pick out any vertex that have more than 3 vertex group influences.

  • basic normalize. simply make sure selected vertices have total max weight value equal to one


  • show active single vertex's weight groups. Although spreadsheet is very powerful, for complex rigging, it is more convenient to show only influenced weight groups of a selected vertex. 



  • scrub timeline. hold default "J" key and move mouse left right to scrub timeline. it is faster to spot problem area and make finer adjustment. take a look at the Q&A section at bottom of this page for more detail


  • Import/Export Weight. take a look at bottom of this page Q&A section or this short video for more details





Have a Question? Email me: learnasimakeit@outlook.com

digital product does NOT offer refund.


***************** Update **************************

update 1.3:

Import/Export Weight feature is added. take a look at the bottom page Q&A section for more details





update 1.2.6:

added user defined prefix, suffix for mirror weight (located in addon preference): Generally, it is best to follow common naming convention for pair of bones, such as l.bone and r.bone, or l_bone and r_bone or bone.l and bone.r.  sometimes, user may unintentionally use lbone and rbone, other times it may be required to use different naming convention that Blender does not recognize. 

now you can manually set custom prefix and suffix to mirror weight. below is an extreme example: using "apple_" and "orange_" as custom prefix, at the same time, "_tea" and "_coffee" as custom suffix. you can mirror weight regardless. 




update 1.2.5:

rename previous "Mirror Weight" to "Mirror Weight (symmetric)" since it only works on symmetrical mesh part.

added new operator "Mirror Weight (asymmetric)". 

make sure the mesh has center pivot and is symmetrical proportion wise.

"x to -x all": this will mirror all vertices weight from positive x to negative x.

"-x to x all": this will mirror all vertices weight from negative x to positive x.

"x to -x active" and "-x to x active" for bones that does not have corresponding left and right set. such as spline bone. this will mirror only what the active bone influence, other bones are not effected.

"x to -x active" and "-x to x active" for bones that have corresponding left and right set. such as arm, leg, finger, it also takes into account which side the active bone at.

take LeftUpLeg and RightUpLeg for example, the RightUpLeg is toward negative x direction, whereas LeftUpLeg is toward positive x direction. when select LeftUpLeg as active, it is toward positive x, so choose "-x to x active" and mirror weight.

when select RightUpLeg as active, it is toward negative x, so choose "x to -x active" and mirror weight. in short. when dealing with pair of bones, whichever direction it is toward, choose the "to direction active" to mirror weight






update 1.2.4:

added: Isolate Active Bone. while adjusting different vertex groups, use the toggle to only show the corresponding bone, so that you would never modify the wrong bone influence.




update 1.2.3:

add new modal operator: Scrub Timeline. rather than have a dedicated timeline window and drag it, hold "J" and move mouse left right to scrub the timeline. take a look at Q&A at bottom of this page for more detail

UI changes: move both increment sliders to a MISC tab, add scrub multiplier slider to control the scrub speed

and some other minor changes.




update 1.2.2:

minor operators condition check fix

added: new method to switch bone influenced group.

changed: Operator previously called "Cycle Through VG" is now "Switch VG".

with the same operator, if a single vertex is selected, it will cycle through all its relevant vertex groups as it used to be. meanwhile, if more than 1 vertex is selected or nothing is selected, it will change active vertex group to what is under the mouse cursor.




update 1.2.1:

the new way to modify vertex weight in version 1.2 is re-written, the result is a lot faster on high poly meshes. on mid or low poly mesh, there is little speed difference. update is recommended.



update 1.2:

added new way to modify weight value: vertices weight value are modified on a per vert level. easier to fine tune transition areas



update 1.1.1:

made the "Active Vertex Weight Groups" read only to avoid flickering issue when mouse over the numbers.


update 1.1:

added: Normalize Weight: basic normalize selected vertices.

added: Check Exceeded Groups: pick out any vertex that exceed set max weight groups

added: A Panel shows single vertex's influence weight groups. easier to diagnose.



***************** Q&A ******************

Here are detailed explanation of how each operators works:

To Start: have a mesh ready and bind it to an armature. Select a Single mesh object and enter edit mode.

1. Vertex Weight Toggle: this acts like a master switch to determine if any of the operators would run, at the same time, it turns on some viewport shading.


2. Increment and Increment Macro sliders: these determine how much weight should add/remove when using Add Weight, Add Micro Weight, Reduce Weight, Reduce Micro Weight (both fill and gradient)


3. Add Weight, Add Micro Weight, Reduce Weight, Reduce Micro Weight (both fill and gradient): after you have select more than 1 vertices, use shortcut to adjust their weight value. for example, I have selected 3 vertices from vertex group A, vert1 has 0.1 weight, vert2 has 0.2 weight, vert3 has 0.3 weight. Fill method will first sample the first vert in the order and use its weight as start point, uniformly adjust the value, such as all of their value will increase from 0.1 to 0.2 to 0.3 etc. Gradient method will adjust them individually, such as vert1 from 0.1 to 0.2 to 0.3 while vert2 from 0.2 to 0.3 to 0.4 etc.

by default, Shift + Scroll use fill method, Ctrl + Shift + Scroll use gradient method. you can change hotkeys and enable/disable operators in addon preference.


4. Copy Weight: this will copy all weight value as last selected vertex. take the previous example of 3 vertices. if I select vert1 then vert2 and lastly vert3, use copy weight will make all their weight value to 0.3. if I select vert3 and vert2 and lastly vert1, use copy weight will make all of their weight to 0.1


5. Smooth Weight: this will smooth the selected vertices weight value with regarding to their adjacent vertices, if the selected vertex and its adjacent vertices have the same vertex groups, it will average their values. if there are new vertex groups that not present in selected vertex, the new groups will be added and average their value. I usually use Smooth Weight to ease the transition area.

the selection matters. for example, from selected vertices, if one vertex has a vertex group others do not have, with every smooth operation, it will spread to its adjacent vertices and spread again with every smooth. at some point it will spread to all selected vertices.

please note, if you have symmetry turn on it will affect the other side, which usually is not intended.

a common mistake would be that: the symmetry is turned on and select some part of vertices from one side and keep on smoothing, at some point, selected vertices and its mirrored part will have more or less bone influences from both side. 



6. Switch VG: when adjust the vertex weight, it work on active vertex group. for example, a single vertex may have weight 0.1 with vertex group A, but weight 0.5 with vertex group B, Switch VG provide a easier way to pick which vertex group to be active rather than going through the vertex group list and click it. With nothing selected or more than 1 vertex selected, you can move mouse cursor near a bone and use shortcut to run the operator. it will switch to the vertex group under the mouse cursor.

if a single vertex is selected, it will cycle all its influenced vertex groups

7. Auto Normalize Toggle: when it is on, any weight adjustment will make sure the total value is 1. for example, vert1 has influence in 3 vertex groups A B and C. weight 0 in group A, weight 0.5 in group B and 1 in group C. when group A is active and Auto Normalize Toggle is on. every increment of 0.1 in group A, group B and group C will decrease but maintain a 1:2 ratio until weight value get to 1 in group A, group B and group C goes down to 0.


8. Select Half Vertices: it will select half of the vertices along x positive direction, if Invert toggle is on, it will select the x negative direction.


9-1. Mirror Weight (symmetric): it only works on symmetric mesh part and will transfer weight value to selected vertices from relevant mirror parts. for example, I have rigged a human character and done a simple binding. I adjust the weights on left forearm and left leg. then I select all right side vertices and press mirror weight. right forearm and right leg would have similar mirrored weight.

9-2. Mirror Weight (asymmetric): make sure the mesh has center pivot and is symmetrical proportion wise. check out this video.

"x to -x all": this will mirror all vertices weight from positive x to negative x.


"-x to x all": this will mirror all vertices weight from negative x to positive x.


"x to -x active" and "-x to x active" for bones that does not have corresponding left and right set. such as spline bone. this will mirror only what the active bone influence, other bones are not effected.



take LeftUpLeg and RightUpLeg for example, the RightUpLeg is toward negative x direction, whereas LeftUpLeg is toward positive x direction. when select LeftUpLeg as active, it is toward positive x, so choose "-x to x active" and mirror weight.

when select RightUpLeg as active, it is toward negative x, so choose "x to -x active" and mirror weight. in short. when dealing with pair of bones, whichever direction it is toward, choose the "to direction active" to mirror weight

9-3. Set custom Prefix, Suffix: open addon preference, enable custom Custom Prefix and/or Custom Suffix toggle, enter the custom name, it is case sensitive. then the mirror weight operator will treat them as if they are pairs. However, it is recommended to use common naming convention that Blender recognizes.



10. Vertex Group Limit: it will remove vertex group from the smallest influence and only keep total vertex groups based on a set number. take the previous example of vert1 in groupA(0), groupB(0.5) and groupC(1), if set number is 3, nothing will change. if set number is 2, the smallest 0 from group A will be removed. if set number is 1, group A and group B will be removed.

11. Check Exceeded Groups: it will select any vertices that have more than the set number of vertex groups. for example, if the set number is 3, any vertices that have more than 3 vertex groups will be selected. 


12. Remove Weight: on selected vertices, it will check every single one's vertex groups. if the vertex group's weight value is below the set amount, it will remove the vertex group. take previous example of vert1 in group A (0), group B(0.5) and group C(1). if set number is 0.6, group A and group B will be removed.


13. Check Weight Sum: each vertex may have multiple vertex group and each has different weight value, this operator will select any vertex that have total weight below or above 1. the previous example if vert1 in groupA B and C will be selected, since the total value is 1.5 (0+0.5+1).


14. Normalize Weight: this will auto adjust the weight value based on the ratio and make sure total equal to 1. 


15. Active Vertex Weight Groups: when a single vertex is selected, it will show its vertex groups value, it may offer assistance of the set number of Remove Weight.


16. Scrub Timeline: when Vertex Weight Toggle is on, you can scrub the timeline by holding "J" key and move mouse left and right. Generally, when I adjust skin weight, the character bones has some animation data, scrubbing the timeline, it is easier to spot the problem area and make finer adjustment. 

there are two area for scrub timeline, all in 3d viewport. Scrubbing in orange area is straight forward. the speed can be adjusted with Scrub Multiplier in MISC tab. Scrubbing in red area is corresponding to the whole timeline, regardless how many frames there are, scrub to the right will always reach the end frame.

do remember to Enable the on cage and edit mode toggle from armature modifier




if you want to change the hotkey "J", here is how: find the addon folder, C:\Users\UserName\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\Handy Weight Edit, open "__init__.py" with text editor and search keyword "change". in these two places replace "J" with another CAP letter, such as "K". save the file that is it.


17 Isolate Active Bone. while adjusting different vertex groups, use the toggle to only show the corresponding bone, so that you would never modify the wrong bone influence. for complex rig with hundreds of bones close to each other, make only the relevant bone visible together with the bone name shown, greatly reduce the possibility to modify the wrong one.

in blender 3.x, armature use bone layers to organize the visibility. toggle the deforming bone layer on in Armature -> Data -> Skeleton -> Layers. if you use rigify, it is layer29, whereas with auto rig pro, it is layer 31.


18 Import and Export Weight. you can save the current weight file and re-use it later.


first, set the save location. uncheck the "Relative Path". 


second, export/back up the weight, it use object name as file name, so rename it accordingly. please note it will overwrite file with the same name.


when you have at least one back up weight file, you can select it in the drop down list and import the weight. it only affects existing vertex groups from the saved file. for example, if the mesh have weight 1, 2, 3 and export it, later add weight 4, 5, 6. when import weight back from the saved file, only 1, 2, 3 are overwritten. 



click the gear icon on the right you can pick a few options when import weight.

if you move object from their original location, the default import weight by distance would not work. you can use by topology. this requires the mesh vertex order is the same. you can check the vertex order in mesh edit mode and toggle "Viewport Overlays - Indices". in some scenarios it might be altered, for example, export to another application and import back. or use "Mesh - Sort Elements" will change the vertex order.

you can also choose to import the source file and manually transfer weight. either by distance or topology. first select source object then the target object. you can also use this function to transfer weight from character body to character clothes.




Q I am new to weight painting, how should I do it?

weight painting in a nutshell is adjusting bone influence on vertices. when a bone is moving or rotating, how much influence it has on vertices so that those vertices move along with the bone.

here are some general steps:

1. initial binding. have your character mesh and armature ready, parent the mesh to the armature with automatic weights or other method to bind the mesh to the bones.

2. adjust weight. after the binding, usually it is not perfect, some manual tweak is required. select relevant vertices and use increase/ decrease weight and smooth weight to change the value, balance the influence between different bones so that when it move/rotate, the mesh deforms to your expectation. 

3. optimize weight. when the target platform is not in Blender but others like game engines, some requires max bone influences. for example, for a given vertex, it might have 8 bones influences to deform perfectly, but the target platform is VR, hence it could have max bones of 3. another example would be for hero character, 8 bone influence is good, but for NPC the max could be 5. so reduce max influence is a must. 

also for some small bone influence, you can totally remove it to optimize the performance.

4. final check. check if the mesh deforms properly, check if it meets the target platform bone requirement, check if there is any abnormal weight, such as total weight is not 1.




Q How to use it?

1. select a single mesh object and go to edit mode. (the addon works on single selected active object)

2. locate the addon tab enable "Vertex Weight Toggle"

3. there should be some vertex groups on the mesh after binding, for other scenarios, if there is not any vertex groups, add some and start to modify weight value with included tools.

4. any operators from the addon that can change the weight value will only work on selected vertices, if nothing is selected, it would do nothing.


Q How to use mirror weight?

Mirror weight will transfer weight value to selected vertices from relevant mirror parts.

for example, I have rigged a human character and done a simple binding. I fine tune the weights on left forearm and left leg. then I select all right side vertices and press mirror weight. right forearm and right leg would have similar mirrored weight.


Q How to use "Switch VG" Operator?

first I recommend setup the shortcut according to your habit in addon preference.

With nothing selected or more than 1 vertex selected, you can move mouse cursor near a bone and use shortcut to run the operator. it will switch to the vertex group under the mouse cursor.

it is useful if you have already select some vertices to modify weight and you'd like to check different bone's influence.

under the hood, it samples what is under the mouse cursor and compare the weight of influenced vertex groups and set whichever is greatest as active vertex group.

for more complex area, select a single vertex and cycle all its influenced vertex groups, such as chest area.


Q How to use the two modify weight methods?

there are two methods to modify weight of selected vertices.

first one will uniformly fill the vertices weight value. for example, the middle portion forearm bone would have 100% influence. 

whereas the tip and root of the bone is transition area to meet with other bones influence, I would use smooth weight and mothed two to fine tune the weight influence. since method two would modify weight value on a per vertex level.

this is especially useful for bending kneel area:


Add to cart
Copy product URL
$22.95

Handy Weight Edit

Add to cart