acoolrocket

Blender - Replace materials with _ to . (For Alembic workflow)

Apr 8th, 2026
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. import bpy
  2. import re
  3.  
  4. # Pattern: match names ending with _### (like _001, _002, etc.)
  5. pattern = re.compile(r"(.*)_(\d{3})$")
  6.  
  7. for obj in bpy.data.objects:
  8. if not obj.data or not hasattr(obj.data, "materials"):
  9. continue
  10.  
  11. for i, mat in enumerate(obj.data.materials):
  12. if mat is None:
  13. continue
  14.  
  15. match = pattern.match(mat.name)
  16. if match:
  17. base, num = match.groups()
  18. new_name = f"{base}.{num}"
  19.  
  20. # Check if target material exists
  21. new_mat = bpy.data.materials.get(new_name)
  22. if new_mat:
  23. print(f"Replacing {mat.name} → {new_name} on {obj.name}")
  24. obj.data.materials[i] = new_mat
  25. else:
  26. print(f"Target material not found: {new_name}")
Advertisement
Add Comment
Please, Sign In to add comment