独立したメッシュでオブジェクトを複製するにはどうすればよいですか?[複製]

Jan 21 2021

Pythonを使用してメッシュオブジェクトを複製しようとしています。複製後、複製されたオブジェクトのメッシュを変更しようとしましたが、元のオブジェクトのメッシュも変更されました。

両方のオブジェクトが同じメッシュを持っているようです。メッシュを複製するにはどうすればよいですか?

ここにいくつかのコードがあります:

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

回答

1 HariSreedhar Jan 21 2021 at 20:49

オブジェクトデータをコピーする必要があります。

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