2004년 01월 22일
Maya API 강좌 2
2. Hello World
_______________________________________________

이제 직접 간단한 Plug-in을 하나 만들어 보면서 API에 대하여 좀 더 알아보도록 하겠습니다. 우리가 만들 최초의 Maya Plug-in은 “Hello World”입니다.

대부분, Windows에서 Maya를 사용하시리라 생각하고, MS Visual C++를 사용할 경우를 기본으로 설명하겠습니다.


1) Maya Plug-in Wizard
_______________________________________________

MS Visual C++가 설치된 상태에서 Maya를 설치하시면, DevKit을 설치할 때, Maya Plug-in Wizard가 설치가 됩니다. 그렇지 않은 경우엔, 자료실에 있는 Maya Plug-in Wizard를 다운받으시고 압축을 풀어 C:Program FilesMicrosoft Visual StudioCommonMSDev98Template에 Copy하세요.

이제 MS Visual C++을 실행시키고, File > New를 선택하시고, Projects 탭에서 Maya Plug-in Wizard를 선택하세요. 그리고, Location부분엔 Project를 만들 위치를, Project name 부분엔 helloWorld라고 입력하세요.



그 다음, OK를 누르면 아래 그림과 같은 화면이 나옵니다. 여기서 해당 Maya 버전을 선택하시고, Plug-in 개발자 이름을 입력한 뒤, Next를 누릅니다.



이번엔 어떤 종류의 Plug-in을 만들지를 고르는 화면입니다. 이번에 만들 Hello World는 간단한 MEL Command이므로, MEL Command를 선택하고, Maya type name란에 helloWorld라고 입력합니다. 그리고, Next를 누릅니다.



마지막으로, Plug-in에 포함될 Library를 선택하는 화면입니다. Hello World는 간단한 Command이므로 가장 기본이 되는, Foundation과 OpenMaya만 선택하면 됩니다. 이제 Finish를 누르면 Plug-in 개발의 기본이 되는 세팅과 코드가 자동으로 만들어 집니다.



화면 왼쪽의 Workspace 윈도우에서 FileView 탭을 선택하고 Source Files에서 helloWorldCmd.cpp를 더블클릭하면 아래와 같은 코드가 보여집니다. (주석문은 삭제했습니다.)

#include <maya/MSimple.h>

DeclareSimpleCommand( helloWorld, "Gyedo Jeon", "4.0");

MStatus helloWorld::doIt( const MArgList& args )
{
MStatus stat = MS::kSuccess;

setResult( "helloWorld command executed! " );

return stat;
}

이제 setResult 구문 윗줄에 아래와 같이 오늘의 핵심코드(^^;)를 입력하세요.

printf("Hello, World! ");


2) MSimple.h, DeclareSimpleCommand
_______________________________________________

Maya API를 사용해서 만들 수 있는 MEL Command에는, Undo/Redo가 지원되지 않는 간단한 Command와 Undo/Redo가 지원되는 복잡한 Command가 있습니다.

MSimple.h는 간단한 MEL Command를 만들 때 사용되는 Header 파일입니다. DeclareSimpleCommand등의 Function에 대한 정보가 여기에 기록되어 있습니다.

DeclareSimpleCommand는 이런 간단한 MEL Command를 만들 때만 사용되는 Function입니다. helloWorld class를 만들고, 입력된 개발자 정보, 버전을 등록합니다.

MStatus는 Maya Plug-in 내부 함수의 실행 결과등을 담아두는 Class입니다. MS::kSucess, MS::kFail 등의 값이 담겨지게 되지요. doIt함수는 모든 MEL Command Class에서 실제 수행을 담당하는 함수입니다. 우리의 helloWorld class에서도 이 doIt함수가 그 역할을 합니다.

MargList는 MEL Command에 전달되는 argument list입니다. 이번 helloWorld에선 argument가 필요없으므로 선언은 되었지만 사용되진 않았습니다.


3) Compile, Plug-in Load
_______________________________________________

이제, Build > Set Active Project Configuration에서 helloWorld – Win32 Release를 선택하고 OK를 누르세요. Win32 Debug로 두고 컴파일하게 되면 Debug 정보가 포함되어 용량이 큰 Plug-in이 만들어지게 됩니다. 이번 코드는 Debug할 일이 없으므로, Win32 Release로 컴파일하는거지요. Debug에 대하여는 다음에 좀 더 자세히 ^^;

이제, F7을 누르거나, Build > Build helloWorld.mll을 선택해서 컴파일하면 우리가 프로젝트를 만든 helloWorldRelease에 helloWorld.mll이 만들어 집니다. Maya를 실행시켜 Plug-in Managaer에서 이 file을 load하고 Script Editor에서 helloWorld라고 입력하고 키보드 오른쪽의 Enter를 누르세요.

Output Window에서 Hello, World!라고 우리의 첫 Maya Plug-in으로부터의 인사말이 나타나 있을 겁니다.

_______________________________________________
2강은 여기까지입니다. 프로그래밍 경험이 없는 분들을 위해서 좀 자세히 설명했습니다.
질문들 하세요.
by gyedo | 2004/01/22 14:37 | Maya API | 트랙백 | 덧글(4)
트랙백 주소 : http://gyedo.egloos.com/tb/232734
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 마야쪼아 at 2006/06/14 14:19
자료실이 없는데요?;;
어디서
Maya Plug-in Wizard 이거 받을수있어요?
없이는 따라하기가 안되군요;;
Commented by gyedo at 2006/07/06 09:35
이게 전에 다른데다가 쓴걸 퍼놓은 거라서 자료실이 없습니다 죄송 ^^;
마야 설치하실 때 Devloper's Kit 같이 설치하시면 될텐데,
이글은 옛날 버전이라서 도움이 될 지 모르겠네요.
Commented by at 2009/03/19 20:59
우아, 지금 5년전에 쓴 글을 보고 지금 도움받고있네요. ^^
Commented by 해커킬러 at 2009/10/28 18:00
Maya Plug-in Wizard 는 여기 자료실에 있어요~http://www.adclicx.com

:         :

:

비공개 덧글



<< 이전 페이지 | 다음 페이지 >>