使用blender更改材质颜色与python

时间:2017-07-03 04:57:33

标签: python colors blender material

我有一个关于搅拌机的模型,有一个具有多种材质的物体(名称' s car_AudiA8),我想从物体中复制一个新物体(" car_AudiA8"),然后改变新对象的颜色和旧对象的颜色不受影响,我的方法是:

obj = bpy.data.objects["car_AudiA8"]
mesh = obj.data
new_obj = bpy.data.objects.new("car_AudiA8", mesh)
bpy.context.scene.objects.link(new_obj)
bpy.ops.object.make_single_user(object = True, obdata = True, material = True,texture = True )
for slot in bpy.data.objects[new_obj.name].material_slots:
    if (slot.name.startswith("carpaint.Black")):
        bpy.data.materials[slot.name].diffuse_color = (1,0,0)

注意:材料(" carpaint.Black")可以控制汽车的颜色。

1 个答案:

答案 0 :(得分:0)

看起来你正在修改现有的" carpaint.Black"材料,它会影响使用该材料的所有对象。相反,尝试为该插槽分配新材料

for slot in bpy.data.objects[new_obj.name].material_slots:
    if (slot.name.startswith("carpaint.Black")):
        new_mat = bpy.data.materials.new(name="carpaint.NewRed")
        new_mat.diffuse_color = (1,0,0)
        slot.material = new_mat

我不确定这是否会按原样运行,但你明白了。你可能最好不要复制黑色材料而不是从头开始创建新材料。