개요
Autodesk Maya의 cmds.listRelatives 명령어는 주어진 오브젝트의 자식, 부모, 형제 및 기타 관련 오브젝트를 나열하는 데 사용됩니다.
이는 계층 구조를 탐색하고 특정 오브젝트의 관계를 이해하는 데 매우 유용합니다.
구문
cmds.listRelatives(*args, **kwargs)
파라미터
args: 오브젝트 이름 또는 이름 패턴의 목록을 제공합니다.
하나 이상의 문자열을 입력할 수 있습니다.
kwargs: 다양한 필터링 옵션을 지정할 수 있는 키워드 인수들입니다.
주요 키워드 인수
children (c): 자식 오브젝트를 반환합니다.
cmds.listRelatives('objectName', children=True)
parent (p): 부모 오브젝트를 반환합니다.
cmds.listRelatives('objectName', parent=True)
allDescendents (ad): 모든 자손 오브젝트를 반환합니다.
cmds.listRelatives('objectName', allDescendents=True)
fullPath (f): 오브젝트의 전체 경로를 반환합니다.
cmds.listRelatives('objectName', fullPath=True)
type (typ): 특정 유형의 오브젝트만 반환합니다.
cmds.listRelatives('objectName', type='mesh')
shapes (s): 쉐이프 노드를 반환합니다.
cmds.listRelatives('objectName', shapes=True)
noIntermediate (ni): 중간 쉐이프 노드를 제외합니다.
cmds.listRelatives('objectName', noIntermediate=True)
상세 설명
cmds.listRelatives 명령어는 Maya 장면 내의 오브젝트 관계를 탐색하는 강력한 도구입니다.
부모-자식 관계, 형제 관계 등을 탐색할 수 있으며, 다양한 필터를 사용하여 반환되는 결과를 제한할 수 있습니다.
예제 1: 기본 사용법
주어진 오브젝트의 자식 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 자식 오브젝트를 나열
children = cmds.listRelatives('pSphere1')
print(children)
예제 2: 부모 오브젝트 나열
주어진 오브젝트의 부모 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 부모 오브젝트를 나열
parent = cmds.listRelatives('pSphere1', parent=True)
print(parent)
예제 3: 모든 자손 오브젝트 나열
주어진 오브젝트의 모든 자손 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 모든 자손 오브젝트를 나열
descendants = cmds.listRelatives('pSphere1', allDescendents=True)
print(descendants)
예제 4: 전체 경로 반환
주어진 오브젝트의 자식 오브젝트의 전체 경로를 반환하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 자식 오브젝트의 전체 경로를 나열
children_full_path = cmds.listRelatives('pSphere1', fullPath=True)
print(children_full_path)
예제 5: 특정 유형의 오브젝트 필터링
주어진 오브젝트의 자식 오브젝트 중 메쉬 타입만 나열하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 자식 오브젝트 중 메쉬 타입만 나열
mesh_children = cmds.listRelatives('pSphere1', type='mesh')
print(mesh_children)
예제 6: 쉐이프 노드 반환
주어진 오브젝트의 쉐이프 노드를 반환하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 쉐이프 노드를 나열
shapes = cmds.listRelatives('pSphere1', shapes=True)
print(shapes)
고급 사용법
cmds.listRelatives를 사용하여 더 복잡한 필터링을 수행하는 방법에 대한 고급 예제입니다.
예제 7: 중간 쉐이프 노드 제외
주어진 오브젝트의 자식 오브젝트 중 중간 쉐이프 노드를 제외하고 반환하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 자식 오브젝트 중 중간 쉐이프 노드를 제외하고 나열
non_intermediate_children = cmds.listRelatives('pSphere1', noIntermediate=True)
print(non_intermediate_children)
예제 8: 여러 필터 사용
주어진 오브젝트의 자식 오브젝트 중 메쉬 타입만 반환하고, 전체 경로를 포함하는 예제입니다.
import maya.cmds as cmds
# 'pSphere1'의 자식 오브젝트 중 메쉬 타입만 반환하고 전체 경로를 포함
mesh_children_full_path = cmds.listRelatives('pSphere1', type='mesh', fullPath=True)
print(mesh_children_full_path)
주의 사항
cmds.listRelatives명령어는 기본적으로 자식 오브젝트를 반환합니다.
부모 오브젝트를 반환하려면parent=True옵션을 사용해야 합니다.- 오브젝트가 존재하지 않거나 지정된 유형의 자식 오브젝트가 없는 경우
None을 반환합니다. - 반환 값은 리스트 형식입니다. 결과를 변수에 저장한 후, 이를 반복(iterate)하거나 다른 명령어에 전달하여 추가 작업을 수행할 수 있습니다.
- 필터 옵션을 결합하여 더 구체적인 검색 결과를 얻을 수 있습니다.
참조
- Maya Commands Documentation
- Maya 스크립팅 관련 기타 명령어들:
cmds.lscmds.selectcmds.listConnectionscmds.listHistory
이 매뉴얼은 Maya의 cmds.listRelatives 명령어에 대한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.