Maya에서 Python 스크립트로 UV 여러 복제된 오브젝트로 한번에 복사하는 방법

모델링을 하다보면 오브젝트를 복제해서 여러 군데에 사용하고는

‘아 UV를 안 펼쳐놨구나!' 하고 깨달을 때가 있습니다.

오브젝트간 UV 복사는 [Mesh > Transfer Attributes] 기능을 사용하여 가능합니다. 하지만 이 경우, 하나의 오브젝트에서 다른 하나의 오브젝트로만 가능합니다. 즉, 여러 오브젝트로의 복사는 불가능합니다.

이렇게 반복적인 작업은 스크립트로 쉽게 구현할 수 있습니다.

복사하고자 하는 UV를 갖고있는 오브젝트를 선택 후 적용하고 싶은 오브젝트들을 전부 선택해 준 뒤
다음 스크립트를 실행시키시면 됩니다!

import maya.cmds as cm
from maya.OpenMaya import MGlobal

selectedObjects = cm.ls(selection=True)
original = selectedObjects.pop(0)

for target in selectedObjects:
    cm.select([original,target])
    cm.transferAttributes(sampleSpace=4,transferUVs=2)
else:
    MGlobal.displayInfo("UV copy finished")

주의하실 점은 이 스크립트는 복제된 오브젝트 간에만 사용하실 수 있다는 것입니다. 즉, 동일한 갯수의 꼭지점과 모서리, 면이 원본 오브젝트와 같은 관계로 있을 때만 가능합니다.