Mirror Selected Bones

by Martin Brockelmann in Addons

Hi, thank you, for using my add-on. With this add-on you can easily mirror the weight paint data of bones and their corresponding vertex groups to the other side. This is for example a great help, when you have a symmetrical model and you forgot to paint your weights with the x-mirror-option. With this add-on you can project your working status to the pose bone on the other half of your object.

You can install the add-on by going to ‘Edit’ – ‘Preferences’ – ‘Install’ and select the Python File from your disc. After installing, search for it in the list, activate it with the checkbox and save the preferences. This add-on is created for Blender versions higher than 2.8.

At first here is a short tip for your work environment: To be able to toggle between the working modes of the mesh and the armature you should go to ‘Edit’ and deactivate the option ‘Lock Object Modes’. After that, go to the pose mode of the armature and you can switch now with the selection key to the mesh and activate the weight paint mode on the object. Here you can select the bones now, on which you want to paint the weights.

Your character has to be skinned to the armature first. If it is not, select your character first, then your armature and parent it witch ‘Control and P’. Choose ‘With Automatic Weights’. For every bone you get a vertex group with the same name now, and the described setup should work in the pose mode of the armature.

When you make changes to the weight paint of your model now, you can copy that to the bones on the other side. You can find the installed add-on in the weight paint mode of your object in the n-menue at the right side under the tab MSB, which stands for ‘Mirror Selected Bones’.

Select the bones you want to mirror first. Press the button and the magic is done. This works with one or more bones, as long as you do no select two corresponding symmetric bones at the same time.

Currently it works with the usual naming conventions for symmetric bones. [NEW] Accepts naming: 'l','r','L','R','LEFT','RIGHT','Left','Right', 'left', 'right' / Works now with ‘DOT’, ‘DASH’ and ‘UNSERSCORE’ (‘.’,’-’,’_’) as separators.

I hope, this makes future parts of your work easier…

Changes in Versions

·        V 1.2:

o   The symmetry identifier (L/R) does not have to be at the end. This makes it possible to use names like e.g. ‘Bone.R.001’.

o   Better error handling in the UI

o   More differentiated error logs

o   Optimized source code

o   Better performance

·        V1.1:

o   Accepts naming: 'l','r','L','R','LEFT','RIGHT','Left','Right', 'left', 'right'

o   Works now with ‘DOT’, ‘DASH’ and ‘UNSERSCORE’ (‘.’,’-’,’_’) as separators.

o   Separators and naming conventions even can be mixed in one armature, as long as the symmetrical pair is matching

o   After operation, the selection of the bones is updated to the new vertex group

o   Better error handling in the UI

o   More differentiated error logs

o   Optimized source code (published as .zip)

o   Bugfixes regarding naming problems


·        V 1.0:

o   Basic functions

Sales 200+
Customer Ratings 6
Average Rating
Dev Fund Contributor
Published over 3 years ago
Blender Version 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 2.93, 2.92, 2.91, 2.9, 2.83, 2.82, 2.81, 2.8
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message