개요
Autodesk Maya의 cmds.ls 명령어는 현재 장면(Scene) 내의 오브젝트 목록을 반환하는 데 사용됩니다.
다양한 필터링 옵션을 제공하여 특정 유형의 오브젝트나 이름 패턴과 일치하는 오브젝트를 쉽게 찾을 수 있습니다.
이는 스크립트와 리깅, 애니메이션 등에서 매우 유용하게 사용됩니다.
구문
cmds.ls(*args, **kwargs)
파라미터
args: 검색할 이름 또는 이름 패턴의 목록을 제공합니다.
하나 이상의 문자열을 입력할 수 있습니다.
kwargs: 다양한 필터링 옵션을 지정할 수 있는 키워드 인수들입니다.
주요 키워드 인수
type: 특정 유형의 오브젝트를 필터링합니다. 예를 들어, ‘mesh’, ‘nurbsCurve’ 등의 유형을 지정할 수 있습니다.
cmds.ls(type='mesh')
selection: 현재 선택된 오브젝트만 반환합니다.
cmds.ls(selection=True)
long: 오브젝트의 전체 경로를 반환합니다.
cmds.ls(long=True)
short: 오브젝트의 짧은 이름만 반환합니다.
cmds.ls(short=True)
dag: DAG(Directional Acyclic Graph) 노드만 반환합니다.
cmds.ls(dag=True)
showType: 각 오브젝트의 유형과 함께 반환합니다.
cmds.ls(showType=True)
visible: 현재 보이는 오브젝트만 반환합니다.
cmds.ls(visible=True)
undefined: 정의되지 않은 타입의 오브젝트만 반환합니다.
cmds.ls(undefined=True)
상세 설명
cmds.ls 명령어는 Maya 장면 내의 오브젝트를 나열하고 필터링하는 강력한 도구입니다.
이는 오브젝트의 이름, 유형, 선택 상태 및 기타 속성에 따라 검색 결과를 제한할 수 있습니다.
예제 1: 기본 사용법
장면 내의 모든 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 장면 내의 모든 오브젝트를 나열
all_objects = cmds.ls()
print(all_objects)
예제 2: 특정 유형의 오브젝트 필터링
장면 내의 모든 메쉬 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 메쉬 타입의 오브젝트만 나열
meshes = cmds.ls(type='mesh')
print(meshes)
예제 3: 선택된 오브젝트 나열
현재 선택된 오브젝트만 반환하는 예제입니다.
import maya.cmds as cmds
# 현재 선택된 오브젝트만 나열
selected_objects = cmds.ls(selection=True)
print(selected_objects)
예제 4: 전체 경로 반환
장면 내의 모든 오브젝트의 전체 경로를 반환하는 예제입니다.
import maya.cmds as cmds
# 모든 오브젝트의 전체 경로를 나열
all_objects_full_path = cmds.ls(long=True)
print(all_objects_full_path)
예제 5: 특정 이름 패턴과 일치하는 오브젝트 나열
이름에 ‘pSphere’가 포함된 오브젝트를 나열하는 예제입니다.
import maya.cmds as cmds
# 'pSphere'가 포함된 이름의 오브젝트를 나열
spheres = cmds.ls('pSphere*')
print(spheres)
고급 사용법
cmds.ls를 사용하여 더 복잡한 필터링을 수행하는 방법에 대한 고급 예제입니다.
예제 6: 여러 필터 사용
메쉬 타입의 오브젝트 중 선택된 오브젝트만 나열하는 예제입니다.
import maya.cmds as cmds
# 선택된 메쉬 오브젝트만 나열
selected_meshes = cmds.ls(selection=True, type='mesh')
print(selected_meshes)
예제 7: 오브젝트 유형 표시
각 오브젝트의 유형과 함께 반환하는 예제입니다.
import maya.cmds as cmds
# 모든 오브젝트와 그 유형을 나열
objects_with_types = cmds.ls(showType=True)
print(objects_with_types)
예제 8: 보이는 오브젝트만 나열
현재 보이는 오브젝트만 반환하는 예제입니다.
import maya.cmds as cmds
# 현재 보이는 오브젝트만 나열
visible_objects = cmds.ls(visible=True)
print(visible_objects)
주의 사항
cmds.ls명령어는 기본적으로 모든 오브젝트를 반환하므로, 큰 장면에서는 성능 문제가 발생할 수 있습니다.
필요한 경우 필터링 옵션을 사용하여 반환되는 결과를 제한하는 것이 좋습니다.- 이름 패턴을 사용할 때는 와일드카드 문자(‘*’)를 사용하여 일치하는 오브젝트를 검색할 수 있습니다.
cmds.ls의 반환 값은 리스트 형식입니다.
결과를 변수에 저장한 후, 이를 반복(iterate)하거나 다른 명령어에 전달하여 추가 작업을 수행할 수 있습니다.
참조
- Maya Commands Documentation
- Maya 스크립팅 관련 기타 명령어들:
cmds.selectcmds.filterExpandcmds.listRelativescmds.listConnections
이 매뉴얼은 Maya의 cmds.ls 명령어에 대한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.