Làm cách nào để nhân bản một đối tượng với các mắt lưới độc lập? [bản sao]

Jan 21 2021

Tôi đang cố gắng sao chép một đối tượng lưới bằng python. Sau khi nhân đôi, tôi cố gắng thay đổi lưới của đối tượng được sao chép, nhưng lưới của đối tượng ban đầu cũng thay đổi.

Có vẻ như cả hai đối tượng đều có lưới giống nhau. Làm cách nào tôi cũng có thể nhân đôi lưới?

Đây là một số Mã:

>>> 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

Trả lời

1 HariSreedhar Jan 21 2021 at 20:49

Bạn nên sao chép dữ liệu đối tượng.

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