두 개체의 여러 복사본을 만들 수 없음

Sep 04 2020

내 장면에 두 개의 큰 물체가 있습니다.

CAM = a large cone with four sides, more like a camera, made out of scaling a generic cone
Target = a large rectangular object, made out of scaling a simple 4 sided cube

5 개의 사본을 만들려고합니다. 다음 스크립트를 실행하고 있습니다.

import bpy

# getting the objects 
context = bpy.context
scene = context.scene
tar = bpy.data.objects['Target']
cam =bpy.data.objects['CAM']


for i in range(5):
    # copying the Target object
    copied_object = bpy.data.objects.new(str("Target"+str(i)), tar.data)
    bpy.data.collections["Collection"].objects.link(copied_object)
    
    # copying the CAM object
    copied_object2 = bpy.data.objects.new(str("CAM"+str(i)), cam.data)
    bpy.data.collections["Collection"].objects.link(copied_object2)

Target 5 개와 CAM 5 개를받을 것으로 예상하고 있습니다. 하지만 결국 5 개의 기본 큐브와 5 개의 기본 콘 (4면)을 얻었습니다. "Target"과 "CAM"을 다시 만들기 위해 만든 가장 기본적인 개체의 복사본을 제공합니다. 현재 개체의 정확한 복사본을 얻지 못하는 이유는 무엇입니까?

답변

3 batFINGER Sep 04 2020 at 07:18

복사 사용을 원하는 경우 copy()

동일한 개체 수준 속성을 가진 복사본을 얻으려면

copy = ob.copy()
copy.name = f"Target{i}"

컬렉션에 연결합니다. 원본과 동일한 데이터가 연결됩니다.

질문 코드를 사용하면 원본의 데이터 부분만으로 새 일반 jane 기본 설정 개체를 만들기 만하면 원본의 모든 개체 수준 속성이 손실됩니다.

bpy.ops.object.add_named ()를 사용하지 않고 Python API를 통해 2.8에서 객체를 복제하는 방법