Autodesk Maya의 `cmds.nodeType` 명령어는 주어진 객체의 타입을 반환하는 데 사용됩니다. 이 명령어는 Maya 씬 내의 객체가 어떤 유형인지 확인할 때 유용하며, 스크립트 및 도구 개발 시 다양한 객체 타입에 대한 조건부 처리를 가능하게 합니다.
구문
cmds.nodeType(object, **kwargs)
파라미터
주요 인수
- object: 타입을 확인할 객체의 이름입니다. 하나의 객체 이름 또는 객체 이름의 리스트를 전달할 수 있습니다.
- 유형: String 또는 List
- 필수: 예
- 예: ‘mySphereShape’, [‘mySphereShape1’, ‘mySphereShape2’]
주요 키워드 인수
- apiType: 반환되는 타입 정보를 Maya API 타입으로 설정합니다.
- 유형: Boolean
- 기본값: False
반환 값
**String**: 지정된 객체의 타입을 반환합니다. 객체 이름의 리스트가 전달된 경우, 객체 각각의 타입을 리스트로 반환합니다.
상세 설명
`cmds.nodeType` 명령어는 Maya의 객체 타입을 확인하는 데 사용됩니다. 이는 특정 작업을 수행하기 전에 객체가 올바른 타입인지 확인하거나, 다양한 타입의 객체를 처리하는 스크립트에서 조건문을 설정할 때 매우 유용합니다.
예제
예제 1: 기본 사용법
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='mySphere')[0]
# 객체 타입 확인
node_type = cmds.nodeType(sphere)
print(node_type) # 출력: transform
예제 2: 여러 객체의 타입 확인
import maya.cmds as cmds
# 여러 객체 생성
sphere = cmds.polySphere(name='mySphere')[0]
cube = cmds.polyCube(name='myCube')[0]
# 객체 타입 확인
node_types = cmds.nodeType([sphere, cube])
print(node_types) # 출력: ['transform', 'transform']
예제 3: API 타입 반환
import maya.cmds as cmds
# 구체 생성
sphere_shape = cmds.polySphere(name='mySphere')[1] # Shape 노드 이름
# 객체 API 타입 확인
api_type = cmds.nodeType(sphere_shape, apiType=True)
print(api_type) # 출력: kMesh
예제 4: 조건부 처리
import maya.cmds as cmds
# 객체 생성
sphere = cmds.polySphere(name='mySphere')[0]
light = cmds.directionalLight(name='myLight')
# 객체 타입 확인 및 조건부 처리
for obj in [sphere, light]:
obj_type = cmds.nodeType(obj)
if obj_type == 'transform':
print(f"{obj} is a transform node.")
elif obj_type == 'light':
print(f"{obj} is a light node.")
고급 사용법
예제 5: 특정 타입의 노드만 선택
import maya.cmds as cmds
# 다양한 객체 생성
sphere = cmds.polySphere(name='mySphere')[0]
cube = cmds.polyCube(name='myCube')[0]
light = cmds.directionalLight(name='myLight')
# 선택된 노드 중 transform 노드만 선택
selected_nodes = cmds.ls(selection=True)
transform_nodes = [node for node in selected_nodes if cmds.nodeType(node) == 'transform']
cmds.select(transform_nodes)
예제 6: 다수의 타입 확인
import maya.cmds as cmds
# 객체 생성
sphere = cmds.polySphere(name='mySphere')[0]
cube = cmds.polyCube(name='myCube')[0]
light = cmds.directionalLight(name='myLight')
# 다수의 객체 타입 확인
nodes = [sphere, cube, light]
types = cmds.nodeType(nodes)
print(types) # 출력: ['transform', 'transform', 'light']
주의 사항
- **존재 여부 확인**: 객체 타입을 확인하기 전에 객체가 존재하는지 확인하는 것이 좋습니다. 존재하지 않는 객체를 참조하면 오류가 발생할 수 있습니다.
- **유효한 이름 사용**: 올바른 객체 이름을 사용해야 합니다. 잘못된 이름이나 경로를 사용하면 오류가 발생할 수 있습니다.
- **Maya API 타입**: `apiType=True`를 사용하는 경우 반환되는 값이 일반적인 타입 명칭과 다를 수 있습니다. Maya API 타입은 더 구체적인 정보를 제공합니다.
참조
- Maya Commands Documentation: Autodesk Maya 공식 문서입니다.
- Maya API 관련 추가 리소스:
- cmds.ls
- cmds.setAttr
- cmds.getAttr
- cmds.objExists
이 매뉴얼은 Maya의 `cmds.nodeType` 명령어에 대한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.