← All ideas
  • Published 21 Apr 2023

Vertex groups should be available for batch renaming

blender_FzMyOnt5js.png

It should be possible to batch rename vertex groups on selected objects.

same way you can do with bones and other parts

100%

Development Status: Open

Upvote 21 Downvote 0
stann_co
21 Apr 2023

4 Comments

bestelix

This should apply to all data about mesh like UVs, Shape keys, Custom Attributes. Even to anything else that gets created as a list. The fact that you can now (blender 3.6) edit multiple string entries at once, like selected objects names or properties (with Alt+Enter) can be a hint for a universal system.

6
mentalist

Agreed. I am reminded of an app I use to rename files in macOS called NameChanger. It can: ・replace string ・append ・prepend ・remove characters ・insert characters ・change case ・sequence ・execute a regular expression ...and a few other things that probably don't apply to data within Blender. But any of that sort of functionality would be welcome.

Also, in Blender's case, the ability to select/deselect or carry out some operation on the matched data could be really useful. Not only for matching data-block names, but also properties like "is parent", "is child", "is hidden", "has keyframe data", "has multiple users", "has a fake user", and so on.

I could continue thinking of what might be handy to have in the UI, but all of those things are available to us using Python. So it may be best to narrow our wishlist down to functionality typical users will actually be likely to use and benefit from.

1
Hide-Ori

Simple Renaming add-on lets you do this.

Would be nice if it's a built-in feature though.

stann_co Author

For the time being i have created a script. To rename vertex groups, and replacing _L with .L while i was porting character models from a game.

import bpy

obj = bpy.context.active_object
bpy.ops.object.mode_set(mode='OBJECT',toggle=True)
for g in obj.vertex_groups:
    print(g.name)
    g.name = "DEF-"+g.name
    g.name = g.name.replace("_R",".R")
    g.name = g.name.replace("_L",".L")