Jak mogę powielić obiekt z niezależnymi siatkami? [duplikować]

Jan 21 2021

Próbuję zduplikować obiekt siatki za pomocą języka Python. Po powieleniu próbuję zmienić siatkę powielonego obiektu, ale siatka oryginalnego obiektu również się zmienia.

Wygląda na to, że oba obiekty mają tę samą siatkę. Jak mogę również zduplikować siatkę?

Oto kod:

>>> obj1 = bpy.data.objects['Cube']
>>> obj2 = obj1.copy()
>>> bpy.context.collection.objects.link(obj2)
>>> obj1.location = Vector((3,0,0))
>>> obj2.animation_data_clear()
>>> ve = obj2.data.vertices[0]
>>> ve.co = ve.co*2

Odpowiedzi

1 HariSreedhar Jan 21 2021 at 20:49

Powinieneś skopiować dane obiektu.

obj1 = bpy.data.objects['Cube']
data = obj1.data.copy()
obj2 = obj1.copy()
obj2.data = data
bpy.context.collection.objects.link(obj2)
obj1.location = Vector((3,0,0))
obj2.animation_data_clear()
ve = obj2.data.vertices[0]
ve.co = ve.co*2