Blender脚本-移除未使用的材质槽

1.运行效果

脚本处理前(389个材质)

脚本处理后(5个材质)

2.脚本代码

python 复制代码
import bpy

# 获取当前选择的对象
selected_objects = bpy.context.selected_objects

# 如果没有选择任何对象,则打印警告并退出
if not selected_objects:
    print("未选择任何对象")
    exit()

# 遍历每个选中的对象
for obj in selected_objects:
    if obj.type == 'MESH':  # 仅处理网格对象
        print(f"对象 '{obj.name}' 有 {len(obj.material_slots)} 个材质槽")
        
        # 遍历对象的材质槽
        material_slots_to_remove = []
        for i, material_slot in enumerate(obj.material_slots):
            # 获取材质槽绑定的材质
            material = material_slot.material
            
            if material:
                # 检查是否有任何面使用了这个材质
                material_used = False
                
                # 遍历对象的所有面,查看是否有面使用了该材质
                for poly in obj.data.polygons:
                    if poly.material_index == i:  # 该面使用了该材质槽的材质
                        material_used = True
                        break
                
                # 如果没有面使用该材质,标记该材质槽以待删除
                if not material_used:
                    print(f"标记删除材质槽 {i}:材质 '{material.name}' 没有被任何面使用")
                    material_slots_to_remove.append(i)
        
        # 进入对象模式(确保不是在编辑模式)
        bpy.context.view_layer.objects.active = obj
        bpy.ops.object.mode_set(mode='OBJECT')  # 切换到对象模式
        
        # 删除标记的未使用的材质槽
        for index in reversed(material_slots_to_remove):  # 从后往前删除,避免索引变化
            # 设置当前活动的材质槽索引
            obj.active_material_index = index
            bpy.ops.object.material_slot_remove()  # 使用 bpy.ops 删除材质槽

# 输出清理完成到控制台
print("已移除未使用的材质槽。")
相关推荐
tianxuanjg17 小时前
工业/协作机器人研发采购指南:如何适配新品迭代的CNC加工合作
人工智能·经验分享·机器人·无人机·材质
Y_Hungry18 小时前
blender+cursor MCP关联
blender
码农小旋风2 天前
GPT-6 Astra 直接进 Blender,AI 开始从会说变成会做
人工智能·gpt·blender
m0_614523552 天前
透明材质抠图怎么判断合格?用黑白灰背景检查边缘和孔洞
材质
三棵树园艺4 天前
商用大空间软装技术方案|2026悬浮仿真景观行业数据、场景适配与标准化落地复盘
创业创新·材质
我是Superman丶4 天前
【安装教程】Blender安装教程3D建模
blender
tianxuanjg6 天前
工业/协作机器人连接法兰采购指南|高精度安装定位零件怎么选
经验分享·机器人·无人机·制造·材质
独立开发之道6 天前
【three.js教程】Three.js 运行时更新:矩阵、几何体、材质怎么改才不卡
javascript·矩阵·材质
YOLO数据集集合7 天前
无人机屋顶与地物分割数据集 | 屋顶分割 航拍识别 城市规划 材质分类 实例分割9036期
人工智能·分类·无人机·材质·中国城市建筑·建筑识别
学着改变2757 天前
2026手持式超声波流量计品牌对比:巡检标定场景性能与续航评测
人工智能·科技·产品运营·能源·材质