X-axis mirror bone names

I’m working with the Valve Biped rig for source engine player model rigging. One problem I’m facing is that Blender’s X-Axis mirror feature doesn’t work with the rig’s bone naming convention. The Valve biped bone naming convention is:
“ValveBiped.Bip01_(L / R)_(Name)”, whereas the X-axis mirror feature only works on bones with .L/.R or _left/_right appended to the end.

Is there any way I can modify this bone name matching of X-axis mirror to work with the Valve biped rig? (Temporarily renaming the bones/swapping back with a script would not be a feasible option.) I’m not sure if this feature is hardcoded into Blender, or if there’s a Python script controlling the name matching. If the latter, then I wouldn’t have any trouble getting this working.

Not sure if blender’s flipping of bone names is coded in C or in python, but I would assume it’s coded in C. Here’s my thinking: flipping bones names was in the older 2.49 version of blender. Python was very limited in the 2.49 versions, not as widely used as it is in the current version. So when blender was re-written for the 2.5 & up versions, it was probably coded in C and not moved to python. Just wouldn’t make sense to me to do that…

Sounds like you wouldn’t have any problem doing in python, so why not just do it in python anyway? The links in your signature show me you know python, so write a script to do it for you.

I once worked on an symmetrical device that had 130~ish objects on the left side. I needed to mirror all those objects over to be the right side of the device and didn’t want to rename all 130 mesh objects from ‘name_L’ to ‘name_R’, so I wrote a script to do it for me.

Attached is my development copy of that script, that means there’s a lot of junk in there… Look in that file for the script that looks likes it’s written as an addon, I think the first few lines should tell you what version of blender I wrote it on. It worked for me, and shouldn’t be too hard to adapt to your needs…

Good luck,


ObjectNameFilpScript.blend (287 KB)

I ended up giving in to the workaround approach, and wrote a script to flip the names back and forth. I don’t prefer workarounds unless they’re absolutely necessary, which seems to be the case.

Here is the script, in case anyone is interested:

(Indentation tabs are not spaces; beware of indentation errors. Blender 2.72)