Maya에서 Python 스크립트를 사용할 때, 특정 명령어와 함수를 사용하여 작업을 자동화할 수 있습니다. 이 글에서는 maya.cmds 모듈을 사용한 예제 코드와 함께 주요 명령어와 함수의 사용법을 소개합니다.
Maya Python 함수와 명령어
1. maya.cmds 모듈
Maya의 명령어를 사용할 수 있도록 하는 모듈입니다. 이 모듈을 통해 다양한 Maya 명령어를 실행할 수 있습니다.
import maya.cmds as cmds
2. 객체 생성
cmds.polySphere: 구체 객체를 생성합니다.
cmds.polySphere(name='mySphere')
cmds.polyCube: 큐브 객체를 생성합니다.
cmds.polyCube(name='myCube')
3. 객체 선택
cmds.select: 특정 객체를 선택합니다.
cmds.select('mySphere')
cmds.ls: 현재 씬에서 특정 조건에 맞는 객체를 나열합니다.
cmds.ls(type='mesh')
4. 속성 설정 및 쿼리
cmds.setAttr: 특정 객체의 속성 값을 설정합니다.
cmds.setAttr('mySphere.translateX', 5)
cmds.getAttr: 특정 객체의 속성 값을 가져옵니다.
cmds.getAttr('mySphere.translateX')
5. 씬 관리
cmds.file: 씬 파일을 새로 만들거나, 열거나, 저장합니다.
cmds.file(new=True, force=True)
cmds.file('path/to/scene.mb', open=True)
cmds.file(rename='path/to/new_scene.mb')
cmds.file(save=True, type='mayaBinary')
6. 애니메이션
cmds.setKeyframe: 애니메이션 키프레임을 설정합니다.
cmds.setKeyframe('mySphere', attribute='translateX', t=1, v=0)
cmds.setKeyframe('mySphere', attribute='translateX', t=10, v=10)
cmds.playbackOptions: 재생 속도 및 범위를 설정합니다.
cmds.playbackOptions(minTime=1, maxTime=24)
7. UI 생성
cmds.window: 새로운 UI 창을 생성합니다.
window = cmds.window(title='My Window')
cmds.columnLayout: 수직 레이아웃을 생성합니다.
cmds.columnLayout(adjustableColumn=True)
cmds.button: 버튼 UI 요소를 생성합니다.
cmds.button(label='Click Me')
예제
기본 예제
import maya.cmds as cmds
# 새로운 창 생성
window = cmds.window(title="Basic Window Example")
cmds.columnLayout(adjustableColumn=True)
cmds.button(label="Create Sphere", command=lambda x: cmds.polySphere(name='newSphere'))
cmds.button(label="Create Cube", command=lambda x: cmds.polyCube(name='newCube'))
cmds.showWindow(window)
객체 생성 및 속성 설정 예제
import maya.cmds as cmds
# 구체 생성
sphere = cmds.polySphere(name='exampleSphere')[0]
# 구체 이동
cmds.setAttr(f'{sphere}.translateX', 5)
cmds.setAttr(f'{sphere}.translateY', 2)
# 키프레임 설정
cmds.setKeyframe(sphere, attribute='translateX', t=1, v=5)
cmds.setKeyframe(sphere, attribute='translateX', t=24, v=10)
주요 함수와 설명
cmds.ls
지정된 조건에 맞는 객체 리스트를 반환합니다.
cmds.ls(*args, **kwargs)
- type: 객체 타입을 지정합니다.
- selection: 현재 선택된 객체를 반환합니다.
- long: 경로 이름을 포함한 객체 이름을 반환합니다.
cmds.setAttr
지정된 객체의 속성 값을 설정합니다.
cmds.setAttr(attribute, value)
- attribute: 속성 이름입니다. 예: ‘mySphere.translateX’
- value: 설정할 값입니다.
cmds.getAttr
지정된 객체의 속성 값을 반환합니다.
cmds.getAttr(attribute)
- attribute: 속성 이름입니다.
cmds.select
특정 객체를 선택합니다.
cmds.select(*args, **kwargs)
- args: 선택할 객체의 이름입니다.
- deselect: 선택을 해제합니다.
cmds.polySphere
구체 객체를 생성합니다.
cmds.polySphere(*args, **kwargs)
- name: 생성할 객체의 이름입니다.
- radius: 구체의 반지름을 지정합니다.
cmds.window
새로운 UI 창을 생성합니다.
cmds.window(*args, **kwargs)
- title: 창의 제목을 지정합니다.
- widthHeight: 창의 너비와 높이를 지정합니다.
cmds.columnLayout
수직 레이아웃을 생성합니다.
cmds.columnLayout(*args, **kwargs)
- adjustableColumn: 레이아웃의 열이 창의 크기에 맞게 조정되는지 여부를 지정합니다.
cmds.button
버튼 UI 요소를 생성합니다.
cmds.button(*args, **kwargs)
- label: 버튼에 표시될 텍스트입니다.
- command: 버튼 클릭 시 실행될 명령입니다.
cmds.file
씬 파일을 새로 만들거나, 열거나, 저장합니다.
cmds.file(*args, **kwargs)
- new: 새로운 씬 파일을 생성합니다.
- open: 기존 씬 파일을 엽니다.
- save: 현재 씬 파일을 저장합니다.
- rename: 씬 파일의 이름을 변경합니다.
cmds.setKeyframe
애니메이션 키프레임을 설정합니다.
cmds.setKeyframe(*args, **kwargs)
- attribute: 키프레임을 설정할 속성입니다.
- t: 키프레임의 시간입니다.
- v: 키프레임의 값입니다.
cmds.playbackOptions
재생 속도 및 범위를 설정합니다.
cmds.playbackOptions(*args, **kwargs)
- minTime: 재생 시작 시간을 설정합니다.
- maxTime: 재생 종료 시간을 설정합니다.
참조
Maya Commands Documentation: Autodesk Maya 공식 문서입니다.
Maya API 관련 추가 리소스:
cmds.rowLayoutcmds.formLayoutcmds.frameLayoutcmds.menucmds.menuItem
이 매뉴얼은 Maya의 maya.cmds 모듈에 대한 포괄적인 설명을 제공하며, 다양한 예제와 사용법을 통해 사용자에게 깊이 있는 이해를 제공합니다.