회원 로그인
|
MEL 기초 #02 - 함수, 라이브러리, 클래스
모 카페의 연제 중인 내용입니다. ^-^
───────────────────────────────────────────────────────
mel 기초 #02 - 함수, 라이브러리, 클래스
이번에는 쌩뚱 맞게 많이 듣는 단어인 함수, 라이브러리, 클래스에 관해서 입니다.
mel에선 이런 용어들이 필요 있을지 모르겠지만 그냥 알아두는 것으로 합시다. ^-^;;;
함수 (Function)
쉽게 풀어 함수라는 상자 안에 연산자(+, -, *, / 등)들이 들어있고 숫자들을 넣어 계산되어진 결과를 출력하고 상자에서 나가는 일을 하는 것이 함수라고 합니다.
함수의 종류로는 프로그래밍에선 내장함수와 외장함수로 나뉘고 있는데 mel에는 내장 함수만 있는 것 같습니다.
Expression의 Insert Functions 메뉴에 있는 모든 것이 내장 함수라 합니다. 자체 내부에서 사용할 수 있는 함수들인 것이죠.
함수명(변수) 포멧으로 사용되는데 mel의 일반적으로 procedure를 이용해 사용자 함수로 정의합니다.
code를 볼까요.
sumTemp()함수에 변수값들이 call되어 지면서 proc sumTemp()에 값들이 대입되어 지고, procedure안의 명령들이 실행 완료하면 procedure를 return하여 다음 명령을 실행하게 됩니다.
$SumNo변수 같은 경우 procedure에 들어간 변수값이 return할 때 변경되지 않는 다는 점입니다.
즉, procedure안에서만 명령들이 발휘된다는 것입니다.
라이브러리 (Library)
라이브러리는 용어이므로 간단히 넘어가겠습니다. '함수들의 집합'입니다.
예를 들어 Expression의 Insert Functions 메뉴에 있는 함수들을 모아있는 것을 라이브러리라 합니다.
maya 8.x이상 버젼에서 도입된 python이 mel을 사용하기 위해 maya.cmds라는 라이브러리(모듈?)를 사용하게 됩니다.
python 명령은 mel과 다르기 때문에 maya.cmds를 import하여 python에서도 mel 명령어를 사용할 수 있도록 기반을 만들어 주는 것이지요.
클래스 (Class)
클래스는 object의 함수나 변수를 가진 attribute(element)라고 할 수 있습니다.
객체.속성(함수, 변수) 포멧인데 mel에서 사용되는 객체들은 모든 것이 클래스로 구성되어 있습니다.
상자A에 들어 있는 사과, 배, 오렌지가 있다고 합시다.
상자A에 과일들의 갯수가 각각 3, 4, 5개씩 있는데 이걸 클래스로 풀어본다면..
상자A.사과 = 3
상자A.배 = 4
상자A.오렌지 = 5
이렇게 나오게 되는 것이지요.
nurbsSphere를 꺼내보세요.
채널박스에 보면 객체(object)의 이름과 속성(attribute)들이 나와 있습니다.
Script editor 창을 열고..
setAttr "nurbsSphere1.translateX" 5;
입력하면 tx값이 5로 변경된 걸 알 수 있습니다.
nurbsSphere1라는 객체의 기본 클래스 속성들은 translateXYZ, rotateXYZ, scaleXYZ, visibility가 됩니다.
───────────────────────────────────────────────────────
mel 기초 #02 - 함수, 라이브러리, 클래스
이번에는 쌩뚱 맞게 많이 듣는 단어인 함수, 라이브러리, 클래스에 관해서 입니다.
mel에선 이런 용어들이 필요 있을지 모르겠지만 그냥 알아두는 것으로 합시다. ^-^;;;
함수 (Function)
쉽게 풀어 함수라는 상자 안에 연산자(+, -, *, / 등)들이 들어있고 숫자들을 넣어 계산되어진 결과를 출력하고 상자에서 나가는 일을 하는 것이 함수라고 합니다.
함수의 종류로는 프로그래밍에선 내장함수와 외장함수로 나뉘고 있는데 mel에는 내장 함수만 있는 것 같습니다.
Expression의 Insert Functions 메뉴에 있는 모든 것이 내장 함수라 합니다. 자체 내부에서 사용할 수 있는 함수들인 것이죠.
함수명(변수) 포멧으로 사용되는데 mel의 일반적으로 procedure를 이용해 사용자 함수로 정의합니다.
code를 볼까요.
int $FirstNo = 4; int $SecondNo = 3; int $SumNo = 0; sumTemp($FirstNo, $SecondNo, $SumNo); print ($FirstNo + $SumNo); // 여기가 바로 함수라는 상자입니다. proc sumTemp(int $FirstNo, int $SecondNo, int $SumNo) { $SumNo = $FirstNo + $SecondNo; print $SumNo; } //743개의 정수형 변수에 각각 값을 넣었습니다.
sumTemp()함수에 변수값들이 call되어 지면서 proc sumTemp()에 값들이 대입되어 지고, procedure안의 명령들이 실행 완료하면 procedure를 return하여 다음 명령을 실행하게 됩니다.
$SumNo변수 같은 경우 procedure에 들어간 변수값이 return할 때 변경되지 않는 다는 점입니다.
즉, procedure안에서만 명령들이 발휘된다는 것입니다.
라이브러리 (Library)
라이브러리는 용어이므로 간단히 넘어가겠습니다. '함수들의 집합'입니다.
예를 들어 Expression의 Insert Functions 메뉴에 있는 함수들을 모아있는 것을 라이브러리라 합니다.
maya 8.x이상 버젼에서 도입된 python이 mel을 사용하기 위해 maya.cmds라는 라이브러리(모듈?)를 사용하게 됩니다.
python 명령은 mel과 다르기 때문에 maya.cmds를 import하여 python에서도 mel 명령어를 사용할 수 있도록 기반을 만들어 주는 것이지요.
클래스 (Class)
클래스는 object의 함수나 변수를 가진 attribute(element)라고 할 수 있습니다.
객체.속성(함수, 변수) 포멧인데 mel에서 사용되는 객체들은 모든 것이 클래스로 구성되어 있습니다.
상자A에 들어 있는 사과, 배, 오렌지가 있다고 합시다.
상자A에 과일들의 갯수가 각각 3, 4, 5개씩 있는데 이걸 클래스로 풀어본다면..
상자A.사과 = 3
상자A.배 = 4
상자A.오렌지 = 5
이렇게 나오게 되는 것이지요.
nurbsSphere를 꺼내보세요.
채널박스에 보면 객체(object)의 이름과 속성(attribute)들이 나와 있습니다.
Script editor 창을 열고..
setAttr "nurbsSphere1.translateX" 5;
입력하면 tx값이 5로 변경된 걸 알 수 있습니다.
nurbsSphere1라는 객체의 기본 클래스 속성들은 translateXYZ, rotateXYZ, scaleXYZ, visibility가 됩니다.
댓글 0개
| 엮인글 0개
466개(17/24페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 43881 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 65056 | 2014.01.08 17:59 | |
144 | [참고] Maya Online Help | artsOne | 3396 | 2009.08.11 01:02 |
143 | [참고] Maya 2009 Service Pack 1a | artsOne | 3611 | 2009.07.20 12:22 |
142 | [Script] Python for Maya - 14. Expression에서 python 사용 | artsOne | 5395 | 2009.05.11 17:57 |
141 | [Script] Python for Maya - 13. realtime lattice point random move | artsOne | 5093 | 2009.05.01 00:58 |
140 | [Script] Python for Maya - 12. sphere를 이용한 random move | artsOne | 4693 | 2009.04.22 00:26 |
139 | [Script] Python for Maya - 11. Lattice vertex random move (re.fin | artsOne | 5259 | 2009.04.17 12:12 |
138 | [Rigging] Expression을 이용한 Flollow Through | artsOne | 2672 | 2009.04.14 20:24 |
137 | [Script] MEL - UI / menu, frameLayout | artsOne | 2955 | 2009.04.03 00:33 |
136 | [Script] MEL, Python 표기 | artsOne | 3232 | 2009.03.30 01:26 |
135 | [Script] 자료형 - list 이해 | artsOne | 2739 | 2009.03.30 01:12 |
134 | [Script] Shape 변경하기 | artsOne | 2086 | 2009.03.11 00:13 |
133 | [Rendering] Default Color | artsOne | 2282 | 2008.09.12 01:40 |
132 | [Script] MEL - clear | artsOne | 2759 | 2008.09.12 00:12 |
131 | [Script] MEL - window #2 | artsOne | 2774 | 2008.09.01 23:49 |
130 | [Rigging] Guide Line (Deform > Point On Curve) | artsOne | 2597 | 2008.08.13 02:16 |
129 | [Base] Marking Menu Custom | artsOne | 2166 | 2008.08.04 12:48 |
128 | [Rigging] Expression을 이용한 Stretch, Squash | artsone | 2862 | 2008.06.18 00:31 |
127 | [Expression] MEL, Expression - pow | artsone | 2747 | 2008.06.16 16:09 |
>> | [Script] MEL 기초 #02 - 함수, 라이브러리, 클래스 | artsOne | 3802 | 2008.04.18 02:27 |
125 | [FX] Lesson 1: Creating nCloth collisions Step 3 | artsOne | 2142 | 2008.04.13 17:56 |