Maya Python `cmds.nodeType` 상세 매뉴얼

지식에 대한 탐구 | Maya Python cmds.nodeType 상세 매뉴얼

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` 명령어에 대한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.