posted by cimple 2013. 11. 7. 19:53



Maya 에서 리깅을 할 때 Null node 를 이용해서 controller 의 parameter 를 zero-out 시켜주는 스크립트이다.


원하는 컨트롤러를 모두 선택하고 스크립트를 실행시키면 된다. 



def zeroOut():
    ctrlList = mc.ls(sl=True) #select all controllers to make zero-out
    for ctrl in ctrlList :
        zeroOutCtrl(ctrl)    

def zeroOutCtrl(ctrlName) :
    nullNodeName = mc.group(empty=True)
    mc.parent(nullNodeName, ctrlName)
    mc.setAttr(nullNodeName+'.translateX', 0.0)
    mc.setAttr(nullNodeName+'.translateY', 0.0)
    mc.setAttr(nullNodeName+'.translateZ', 0.0)
    mc.setAttr(nullNodeName+'.rotateX', 0.0)
    mc.setAttr(nullNodeName+'.rotateY', 0.0)
    mc.setAttr(nullNodeName+'.rotateZ', 0.0)
    mc.setAttr(nullNodeName+'.scaleX', 1.0)
    mc.setAttr(nullNodeName+'.scaleY', 1.0)
    mc.setAttr(nullNodeName+'.scaleZ', 1.0)
    mc.parent(nullNodeName, w=True)
    mc.parent(ctrlName, nullNodeName)
    mc.rename(nullNodeName, ctrlName+'_grp')

zeroOut()
posted by cimple 2013. 8. 24. 19:42

Vray for Maya Shader Development Tips


1. Shader 의 종류


Maya Document 에서는 Maya Shader 를 아래와 같이 분류하고 있다.


Vray Shader 를 Maya Plug-in 과 함께 사용할 때 해당 classification string 을 함께 써 줌으로써 해당 Maya classification 으로 분류할 수 있다.


Vray Maya SDK Document 를 보면, (http://help.chaosgroup.com/vray/help/maya/sdk22/maya_sdk.htmlShader 파트에서 


For materials, the classification (i.e. the string returned for its outApiClassification attribute) must be "shader/surface/utility/:swatch/VRayMtlSwatchGen" (without the quotes) so that the material swatch is rendered with V-Ray;


라는 부분이 있는데, must be 라는 것은 material 에 해당되는 부분으로 생각된다. 여기에서 앞 부분을 해당 shader 의 성격에 맞게 고쳐줄 수 있다. 예를 들어 2D texture 쉐이더의 경우


"texture/2d:swatch/VRayMtlSwatchGen" 


라고 고쳐줄 수 있다. 그런데 정말로 위의 분류에 넣을 경우, Maya 에서 쉐이더를 생성할때 자동으로 2DTexturePlacement 노드를 생성하고 UV attribute 를 연결시킨다. 만약 texture 쉐이더이기는 한데 이러한 과정을 거치지 않는 특이한 쉐이더의 경우,


"texture/:swatch/VRayMtlSwatchGen" 


이런 식으로 분류하면, material 이 아닌 texture 쉐이더라 바로 object 에 assign 할 수 없고, Maya Hypershade 에서는 생성 버튼이 나타나지 않으며, 자동으로 쉐이더를 연결하는 기능은 호출하지 않는 쉐이더로 분류할 수 있다.


이것을 설정해주는 것이 의외로 중요한 게, 이번에 개발했던 Photo projecton V-ray 쉐이더의 경우 Material 이 아니라 Texture 쉐이더였다. 그런데 여기에 연결되는 Maya Shader 타입도 Texture 로 맞춰 주어야 렌더링이 잘 되는 것으로 확인하였다. (100% 확실하지는 않음. 실험적으로 얻어진 결과)


 

 

2. Ghost Coding

 

팁은 아니고, 신기한 현상을 마주해서 글을 남긴다.

 

Vray의 Matrix 와 Vector 를 사용했는데, Vray 의 Matrix 는 3x3 매트릭스이고, Matrix 의 instance 가 각 coloumn 에 [] 연산자로 접근이 가능하도록 했다. (즉, mat[0] 하면 mat 이라는 matrix 의 0번째 column)

 

그런데 그럼 당연하게도 mat[] 의 index 의 크기는 3 (0~2) 여야 하고, Document 에도 그렇게 나와 있는데, 신기하게 mat[3], mat[4], ... , mat[50], 등 array 크기를 넘어선 값에도 계속해서 메모리 에러 없이 값을 출력해 내었다. sizeof 로 mat 의 크기를 측정해 보아도 3이었다. 신기한 일이 아닐수없다.

 

참 이상한 일이었지만, Vray 가 메모리를 따닥따닥 붙여서 활용하기에 mat[3] 이상이 참조하는 주소값이 어떤 값을 가지고 있는 것이라고 결론내었다.

 

 

또 하나 신기한 것은, Vray plugin 에 만들어둔 Transform attribute 에서 offset 에 해당하는 부분이, 아무런 값을 connect 하지 않았음에도 불구하고, 렌더 카메라를 움직이면 자동으로 값이 바뀌는 것을 확인할 수 있었다.

 

단지 하나의 Datatype 일 뿐인데 렌더 카메라에 반응하는게 무척 신기한 일이지만, 어쨌든 카메라가 움직이면서 Camera space 가 바뀜에 따라 Vray shader 에 들어있는 모든 Transform 들의 offset 값이 Camera space 에 맞게 바뀌는 것이라고 결론내었다.

 

그 증거 중의 하나는, 해당 Transform 의 offset 값에 렌더 카메라의 offset 값을 assign 해 주었는데, 값이 항상 0이 찍히는거다. 처음에는 오류인줄 알았는데, 나중에 알고보니 이것이 (카메라를 기준으로 원점을 바라본 좌표 - 원점을 기준으로 카메라를 바라본 좌표) 라는 결과라는 사실에 도달했다.

 

해당 Camera transform offset 을 Worldspace 에서 받아와 0 으로 assign 한 다음, 내가 원하는 offset 값을 더하는 식으로 코딩하고 싶지만, 일단 지금은 WorldMatrx 에서 받은 offset 값을 2번 더하는 식으로 코딩을 해야 할 것 같다.



3. addParamTransform 하는 방법


Vray plug-in 에서 int, float 같은 데이터타입의 경우 


    addParamInt("photonSubdivs", 500);

하는 식으로 초기값을 주어 추가할 수 있는데, Transform 같은 데이터타입의 경우 어떻게 이렇게 한 줄에 초기화해야할지 난감하다.


다행히 다음과 같은 연산자를 통해서 초기화할 수 있다.


    addParamTransform("transform", WORLD_TRANSFORM, Transform(1));


이런 식으로 초기화하면 된다.



4. 플러그인에서 값 받아와서 Set 해주기


아직 구조를 제대로 파악하기가 좀 어렵지만, 지금까지 알아낸 방법으로는


frameBegin(VR::VRayRenderer *vray)


에서 플러그인 값을 받아와, 구조체의 파라미터 변수에 Set 해줄 수 있다. 


굳이 여기에서 값을 받아오지 않아도 input 값이 연결되는데, 


paramList->setParamCache("color", &color);

이렇게 Cache 로 만드는 부분과 관련이 있는 것 같다. 확실하지는 않다;; 그러나 이 경우 위에서 살펴보았던 Ghost Transform 상황이 발생한다. scene offset 을 transform 에 자기 맘대로 뺴버리는 상황이 발생한 것이다. 여기서 명시적으로 input parameter 값을 구조체 변수에 set 해주면 정상적으로 값이 찍힌다.




5. Vray 에서 Camera Projection 이 이상하게 렌더되는 이유


Vray 에서 Camera Projection 이 Software 와 Mental-ray 와는 다르게 렌더되는 현상이 발생하였다.

무척이나 황당한 일이었는데, MPTK 를 제작한 GLYPH 에서 FAQ 에 해당 문제에 대한 이유를 제공하였다. 이유는 Vray 에서 Camera projection 을 계산하는 방법이 Software 와는 다르게 계산하기 때문이다.


해결하는 방법은 Projection Node 에서 Camera Projection Attributes 의 Fit Type 을 바꾸어 주면 된다. Maya Software / Mental Ray 에서는 Match Camera Film Gate 를, Vray 에서는 None 이나 Match Camera Resolution 을 선택해 주면 된다.



posted by cimple 2013. 8. 24. 14:41

C++ 과 Python 문법이 다르기에 Python 에서 Maya API 를 사용하는데 항상 헷갈린다.


몇 개의 예제를 통해서 사용법을 좀 알아보도록 하자.


Note : Maya Python API 2.0 이 출시되었는데, (maya.api.OpenMaya 로 import) 아직까지 지원 안되는 함수도 많은 것 같고 Document 도 엉망이고 좀 문제가 많은것같다.

안정화될때까지는 old version 의 Python API 를 사용하는게 맞을듯.



1. 선택한 Object 의 Dagpath 받아오기


import maya.OpenMaya as om  #import OpenMaya module

sList = om.MSelectionList()  #MSelectionList instance
om.MGlobal.getActiveSelectionList(sList)  #get the selection object list
dagPath = om.MDagPath()  #Dagpath instance
sList.getDagPath(0, dagPath)  #get the dagpath from 1st object of selection list


2. 여기에 이어 Camera 의 view direction 받아오기


camFn = om.MFnCamera(dagPath)  #MFnCamera instance
viewDirection = om.MVector()  #MVector instance
mspace = om.MSpace()  #MSpace instance
viewDirection = camFn.viewDirection(mspace.kWorld)  #Camera view direction in world space
print viewDirection.x, ' ',viewDirection.y,' ', viewDirection.z


간단한 예제들을 추가하면서, 사용방법에 대해 더 익숙해져 보도록 하자.

(그런데 Python2.0 에서는 문법자체가 다른것같은데...)

posted by cimple 2013. 8. 20. 14:41

포스트의 제목을 어떻게 지어야 할지 좀 난감하다. 쉐이링-렌더링에 대한 개념이 여전히 생소한 것들이 많아서... 하지만 재미있는 것을 알아내었기에 포스팅을 해야겠다.


포스팅의 결과물을 결론적으로 정리하자면


1. Shading Group 의 attribute 에 surface material / v-ray material 을 각각 등록할 수 있다.


2. 이렇게 함으로써, Maya Viewport 및 Software rendering 에는 원래 Surface material 을, V-ray rendring 시에는 V-ray material 을 사용할 수 있다.


이것이 유용한 이유는 지금 개발하고 있는 Photo-Projection Tool 에서 Viewport 상에서 Real-time 으로 Object 를 관찰할 때 사용하는 쉐이더와, 실제 렌더링에 사용되는 V-ray 쉐이더가 다르기 때문이다.


개념이 생소해서 그렇지 적용하는 방법은 몹시 간단하다.




1. HyperShade 의 Shading Groups 탭에서 지정해주고 싶은 쉐이딩 그룹을 선택한다. 쉐이딩 그룹에 대한 개념은 다른 포스트에서 따로 정리하겠지만, 여기서는 간단하게 기본적인 initialShadingGroup 에 적용시켜보기로 하겠다.



2. Attribute Editor 에서 상단의 Attributes 버튼을 클릭하면, V-ray > V-ray Material override 를 선택할 수 있다. 


3. 그러면 해당 Shading Group 의 Attribute 에 Extra Vray Attributes 탭에 추가된 것을 볼 수 있다.


4. 탭을 열어서, V-ray Material 에 내가 원하는 V-ray material 을 적용시켜 줄 수 있다.


5. 결과는 훌륭하다. Maya Viewport 및 Software Render 에는 기본 Surface material 로 지정해 준 lambert1 이 적용되고, V-ray 로 렌더링할 때에는 내가 새로이 만들어준 VRayMtlWrapper2 가 적용된다. 



Digital Tutors 정말 쓸모있다. GOOOOOD

posted by cimple 2013. 8. 18. 23:12

Vray for Maya Shader Programming


먼저 다음 문서를 참고하면 된다.


Vray for Maya Translator SDK


Warning: 문서에서도 알 수 있겠지만 Shader 말고 Mesh 등 다른 Object 를 만드는 과정과는 좀 차이가 있다. 하지만 일단 Shader 에만 집중해 보도록 하자.



Maya 에서 사용되는 Vray Shader 를 프로그래밍하기 위해서는 3가지가 필요한데,


1. Vray Plug-in (.dll)

2. Maya Plug-in (.mll)

3. Shader description file (.txt)


여기에서 2,3번 항목 색상이 다른 이유는, 생략될 수 (omitted) 있기 때문이다. 실제로 가장 중요한 것은 Vray plugin 하나이다. 

Maya Plug-in 을 개발하는 이유는 여기에 적절한 Maya UI 의 control interface 를 제공해 줄 수 있음 / Hypershade 에서 해당 shader 의 아이콘이 생성된다는 장점이 있으며,

Shader description file 은 Maya Plug-in 을 개발한다면 꼭 함께 작성해 주어야 한다.


V-ray plugin 하나만 작성하더라도, 작성후 컴파일한 다음 생성된 dll 파일을 Vray plug-in 폴더에 넣어주면, 'Create > V-ray > Create from V-ray Plug-in' 에서 찾아 해당 쉐이더를 생성해 줄 수 있다. (사실 이렇게 생성하면 되는데 Maya Plug-in 이 꼭 필요한 이유는 아직까지 미지수.)


구체적인 샘플 예제코드, 컴파일 방법, 테스트 씬 등은 추후에 계속해서 업로드 하도록 할 것이다.


(아 근데 Vray SDK 가 작년에 나온거라 참 자료가 없어도 너무없다. Mental ray 는 정말 양반이었음)


('Rendering의 개요' 라 하여 다른 대학교에서 자료로 만들어 둔 링크. 참 친절하고 알기쉽게 설명이 잘 되어있다. 아니면 어느 책에 나온 내용일수도?)

(http://bio.gsnu.ac.kr/~youknow/graphic/3DMAX_2.htm)

posted by cimple 2013. 8. 18. 19:12

환경설정 문제때문에 골치썩히는건 옛날인인가 했었는데, 아무래도 Windows 환경에서는 피할수 없는 숙명인가보다...


Maya 에서 사용하기 위한 Vray shader 를 짜기 위해서, Vray-Maya SDK 라는 것을 활용해야 한다.


메인 페이지는 여기 (V-ray SDK)

위에서 타고 들어갈수는 있는데 Maya 와 관련된 페이지는 여기이다. (V-ray Maya SDK)


V-ray for Maya 를 설치하면 /docs 라는 폴더에 도큐먼트가, /samples 라는 폴더에 SDK 샘플들이 있는데, 여기에 있는 예제들을 컴파일하는데 꼬박 이틀에 가까운 시간을 소모하였다.


결론은 'VS 2008로 컴파일하면 잘 됩니다'


Chaos Group(V-ray 회사) 에서 친절하게도(?) 각 SDK sample 에 Visual studio project 를 함께 동봉하고 있다. 

이걸 VS2010 환경에서 돌려보려고 무던하게도 애를 썼는데 원인모를 링크에러가 엄청나게 나를 괴롭히는 것이다. 에러로그를 좀 자세하게 읽어보니, 링크에러를 일으키는 부분이 내가 건드릴수있는 소스코드 레벨이 아니라, V-ray 에서 제공하는 스태틱 라이브러리 (.lib) 안에서 문제를 일으키고 있었다. (아니 뭐 어쩌라고;;)


백방으로 구글링을 하고 수많은 시도를 하다가 만난 고마운 사이트가 이미 외국에서는 굉장히 유명한 것 같은 Stack Overflow (http://stackoverflow.com/).


정말 C++ 입문자처럼 (사실 내 프로그래밍 실력이 뭐 입문자보다 일취월장했다고 볼수도 없지만) 에러메시지와 프로젝트 원본까지 올려가며 링크에러의 원인 및 해결방법을 물었다. 


그런데 돌아온 답변이, V-ray SDK 페이지에 가 보니 VS2010 환경은 지원하는 컴파일 환경이 아니라는 것. V-ray 라이브러리들이 컴파일된 MSC(Microsoft Compiler) 버전이 다르므로 이것을 VS2010 환경에서 컴파일하려는 것인 Very Bad Idea 라는 것이다.


그래서 VS 2008 을 설치한 뒤, Release 모드에서 컴파일하니 성공.



휴... 정말 힘들다. 이제 Linux 환경에서 컴파일해야 할 텐데. (V-ray 리눅스버전이 없어서 일단 Windows 에서 작업중) 이것보단 쉽겠지.




posted by cimple 2013. 3. 26. 17:01

Mental-ray shader programming Start-up link:

http://acaciaecho.wordpress.com/2011/04/15/mental-ray-shader-writing-startup/


위 사이트에 기본적인 쉐이더를 컴파일하는 방법이 잘 나와있는데, 이를 위해서는 MSVC 를 이용한 명령줄 컴파일을 할 수 있어야한다.


맨 아래에 소스코드 링크를 받아 보면 소스코드와 함께 배치파일이 들어 있는데, 이것이 컴파일을 하게 만들어 주는 명령행을 배치파일 형태로 만들어 둔 것이다.




대략 이런식으로 되어 있는 파일인데, 이 한줄 한줄의 명령어를 VS 명령 프롬프트(x64) 로 실행하면 각각 컴파일 및 링크가 되는 것이다. 


그런데 IDE 를 활용하지 않다 보니 낯설기도 하고, 추가 포함 디렉토리나 추가 라이브러리 디렉터리 등을 설정해 주는 법을 몰라 좀 헤매었다.


사실 이 명령은 VS 의 속성 페이지에 들어가보면 '명령줄' 에서 확인해 볼 수 있는 것이다. 우리가 속성 창에서 이리저리 조작하는 것이 결국은 이 컴파일하는 cl 과 링크하는 link 명령의 파라미터들을 조정해 주는 행동이라는 것.



그래서 여기에 나오는 옵션대로 내가 원하는 환경변수 등을 추가해 줄 수 있는 것이다. 


include 디렉토리를 추가해 주는 것은, 배치파일에 다음과 같은 set 명령행을 추가해 주는 것으로 추가하였다. 아마 링크에 대한 설정도 비슷하게 될 것 같은데 시도해보지 않아서 패스...



좌우지간 이런 식으로 패스등을 설정해서, VS 명령 프롬프트(x64) 를 실행시키고, 해당 배치파일이 있는 디렉토리로 들어가서 배치파일을 실행시키면 컴파일이 된다. obj 파일 및 dll 파일이 튀어나오는데 dll 파일, 그리고 소스코드와 함께 주어진 mi 파일 등을 Maya mentalray 디렉토리에 있는 정확한 위치에 잘 복사해주면 된다.


위 사이트에서 위쪽 부분에 있는 public source 링크를 받아보면 이미 멘탈레이 쉐이더에 포함되어 있는 쉐이더들의 소스코드 및 mi 파일들이 나온다. 똑같이 세팅해서 컴파일해서 확인해볼 수 있는데, 단 이때 같은 node 이름으로 쉐이더가 마야에 등록되어 있다면 dll 이나 mi 이름을 바꾸어 넣더라도 멘탈레이 쉐이더로 등록이 안된다. 테스트 해보고 싶으면 원래 있던 dll, mi 를 백업해놓고 지운 다음에 테스트해보도록.






위의 것은 다 차치하고, Visual Studio 에 Metal-ray 용 프로젝트를 만드는 방법도 있다. 이러면 간단히 Maya devkit 에 있는 include 와 library 디렉토리를 지정해주고 라이브러리 두개를 import 하는 것으로 세팅을 끝마칠 수 있다.


이 세팅 방법은 다음 링크에서 확인해 볼 수 있다.


http://pixelsorcery.wordpress.com/2010/08/25/writing-mental-ray-shaders-from-scratch-for-maya/


컴파일 해서 사용하면 잘 된다.



posted by cimple 2013. 3. 8. 13:59

Automatic Rigging 및 개인적 만족(;) 을 얻기 위해서 Sphere packing 알고리즘을 Maya 에서 구현하는 중이다.


이 때 거쳤던 난관들을 하나하나 기록해보려 한다.



1. particleFill 커맨드 문제


이 문제에 부딪혀서 상당히 오랜 시간을 헤맸다. 먼저 Maya 의 particleFill 명령어의 목적은 모델의 내부를 파티클들로 채워 주는 것이다.



(왼쪽 모델을 이렇게)


Sphere packing 위해서 모델 내부를 discretization 하는 과정을 그냥 Maya 의 기능으로 손쉽게 하는 것이다.


이 기능을 수행하려면 마야의 nDynamics 모듈로 들어가서 nParticles > createParticles > Fill Objects 를 선택하면 된다.


문제는 이것을 스크립트로 실행할 때인데, 해당 명령어의 MEL 스크립트는 아래와 같다.


particleFill -rs 50 -maxX 1 -maxY 1 -maxZ 1 -minX 0 -minY 0 -minZ 0 -pd 1 -cp;


이것을 MEL 스크립트로 실행하면 아무런 문제가 없이 잘 되는데, 문제는 이것을 Python command 로 import 해서 사용하는 데에 발생했다.


import maya.cmds as mc

mc.particleFill(rs=50,maxX=1,maxY=1,maxZ=1,minX=0,minY=0,minZ=0,pd=1,cp=1)

particle ;

# Error: RuntimeError: Maya command error #


이유를 알 수 없는 에러였다. 이것은 import maya.mel 이후 eval 명령어를 사용해도, from pymel.all import * 이후 Pymel 로 사용해도 같은 문제를 발생시켰다.


저 ' particle ; ' 이라는 마야 명령어를 실행시킬 때 문제가 발생한다는 것이었는데, Echo 를 찍어보아도 별다른 것이 나오지 않아 해결이 불가능한 버그였다.


한가지 다행인 것은 저런 에러 메시지와 함께 파티클이 생성은 되는데, 해당 부분이 에러처리가 되기 때문에 작성된 파이선 프로그램이 제대로 동작하지 않는 문제가 있다. 그래서 이는 이렇게 해결하였다.


try:

    particleFill(rs=100,maxX=1,maxY=1,maxZ=1,minX=0,minY=0,minZ=0,pd=1,cp=1)

except:

    pass


이렇게 하면 파티클 자체가 생성되고, 문제가 되는 particle ; 부분을 건너뛰어버려서 문제를 해결할 수 있었다.

 



To be continued...

posted by cimple 2012. 12. 26. 22:11

Maya plug-in 개발 환경을 구축할 때, Plug-in wizard 를 사용하는 방법이 일반적이었지만, Maya version 및 Visual Studio version 에 따라 제대로 만들어지지 않는 등의 많은 문제가 있었다.


CG Circuit 의 Maya API 강좌를 참고해서 Maya Plug-in 개발환경 구축을 설명한다.



1. File > New Project > Win32 Project


2. DLL Project ,Empty project


3. Project properties


4. Configuration 탭다운 메뉴에서 All Configurations 선택


5. Linker > General > Output file 의 확장자를 .mll 로 변경


$(OutDir)\$(ProjectName).mll



6. C++ source code 추가


7. C/C++ > General > Additional include directory 에 Maya Include 디렉토리 추가


8. Preprocessor > Preprocessor Definitions 에


WIN32; NDEBUG;_WINDOWS;NT_PLUGIN;REQUIRE_IOSTREAM 


9. Linker > General > Additional library directory 에 Maya lin 디렉토리 추가


10. Input > Additional Dependencies 에


Foundation.lib OpenMaya.lib OpenMayaUI.lib OpenMayaAnim.lib 

OpenMayaFX.lib OpenMayaRender.lib Image.lib opengl32.lib glu32.lib


11. Command Line > Additional options :


/export:initializePlugin /export:uninitializePlugin


12. 상단의 Configuration 에서 x64로 변경 (64bit 의 경우)


Linker> Advanced 에서 target machine 확인

posted by cimple 2012. 2. 22. 22:41
Maya Plug-in Wizard 는 쉽고 간편하게 Microsoft Visual Studio 환경에서 마야 플러그인을 개발할 수 있도록 설정을 해 주는 기능을 하지만, 마법사라는 놈들이 원래 그렇듯이 뭔가 자동으로 뭘 찾고 연결하고 하다보니 프로그램의 버전이나 환경 등이 조금만 달라져도 잘 동작하지 않는 단점이 있습니다.

때문에 Maya 의 버전에 따라서, 또 Visual Studio 버전에 따라, 운영체제에 따라(32-64bit) Plug-in Wizard 가 잘 동작하지 않는 경우가 많았는데, 이건 지금도 마찬가지입니다; 

지난번에는 Maya2009 - VS2008 조합을 해결하는 포스팅을 했었죠. 이번에도 비슷한 문제에 부딪혀서 이렇게 저렇게 많은 해결 방법을 시도했는데 실패를 거듭했습니다.

결국 구글의 도움을 받아, 아래에 있는 링크의 글을 통해 해결을 할 수 있었는데요, 다른 게 아니라 아예 Issac Peral 이라는 분이 Creative Crash 에 수정한 Plug-in wizard 를 넣어 두었습니다.


솔루션을 발견한 링크 클릭은 여기



파일 크기가 크지 않기 때문에 이 포스팅에 직접 해당 파일을 압축한 파일을 올려둡니다.

 

위 파일의 압축을 푼 뒤, Maya Plug-in Wizard 에 한번이라도 경험이 있으신 분들은 하던 그대로 설치해 주시면 됩니다. 잘 기억이 안나시는 분들도 Maya devkit 의 Plug-in wizard 폴더에 가면 (저 같은 경우는 C:\Program Files\Autodesk\Maya2012\devkit\pluginwizard 폴더 안에) TXT 파일이 있으니, 그것을 읽고 그대로 복사복사 하시면 됩니다.

단, 주의사항은

1.  Maya devkit 안에 들어 있는 TXT 파일에서, 64비트의 경우에는 MayaPluginWizard 폴더를 복사할 때 2중 구조로 복사해야 한다고 별표까지 쳐 놨습니다. 하지만 여기에 올려진 파일은 그냥 MayaPluginWizard 폴더를 Visual Studio 2010 의 VCWizard 폴더에 바로 복사해 주면 됩니다.

2. Visual Studio 2010 에서 Maya Plug-in Wizard 로 프로젝트를 생성하신 이후, 프로젝트 속성에서 구성 속성 > 일반 > 대상 확장명을 .mll 로 바꾸어 주시기 바랍니다. 아마 .dll 로 되어 있을 것입니다. 이건 프로젝트 생성할 때마다 바꾸어 주어야 하는 것 같습니다;


일단 '따라하세요'  수준의 포스팅을 마칩니다. 구글링을 해 보니 이러한 Plug-in Wizard 를 사용하지 않고 안정적으로 Maya Plug-in 개발환경을 구축하는 포스팅들이 있더군요. 나중에는 그 포스팅을 하여서 더이상 이런 폐해가 없도록 막아야 하겠습니다.

감사합니다.