posted by cimple 2010. 10. 1. 17:13

1.  Node Properties 의 중요성

Node 의 initialize() 파트에서 node 의 properties 를 지정해 주는 일은 생각보다 아주 중요하다.

일례로, 제대로 된 노드 구조를 만들어 놓았으나, keyable 이나 storable 등을 잘못 지정해 주면 제대로 노드가 돌아가지 않는 경우가 발생한다.

예를 들어 이번에는 이런 경우를 겪었다.


Custom Node 에서 특정 값을 다른  Node 에 꽂아주는데, output attribute 에서 값이 나간다.
이 값을 좀 보고 싶어서 outputNode 의 property 를 'Keyable' 로 해 두었더니, 값이 초기값인 0 그대로 머물러 있다.

아마도 다른 attribute 들로부터 값을 받아서 값을 내뱉는 역할을 하는 outputValue 는 keyable attribute 가 되면 안 되는 것 같으며, 따라서 keyable 속성은 false 로 해야 한다.

이 외에 중요하다고 생각되는 setHidden 과 setStorable 의 속성값도 바꾸어 보았지만 차이는 없었다.

하지만 안전하게 setHidden 은 true 로, setStorable 은 false 로 해 주는 것이 나을 것 같다.



2. MAYA API 에서 numeric value 를 String 으로 바꾸어주고 싶다면

string 객체를 만들 때, numeric value 를 붙여주어 incremental 하게 이름을 만들어 주고 싶을 때가 있다.

한 가지 방법으로, 다음과 같은 방법이 있다.

MString str("curve");
MString str2;
str2.set((double)i); // i   is incremental
str = str+str2;

이렇게 하면 원하는 string 을 만들어 낼 수 있다.




ThEnd.


(계속 업데이트 예정)
posted by cimple 2009. 9. 9. 23:08

Visual Studio 2008 에서 Maya 2009 Plug-in Wizard 를 사용하는데
지속적인 문제가 있어 이를 해결해 보았습니다.

사용법은 첨부된 파일(MayaPluginWizard2.0.zip)을 다운로드 받은 후 압축을 풀어 보면
MayaPluginWizard2.0\_MayaPluginWizard 안에

MayaPluginWizard 라는 폴더와

MayaPluginWizard.ico
MayaPluginWizard.vsdir
MayaPluginWizard.vsz


3개의 파일이 있습니다.

MayaPluginWizard 폴더는
C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards
폴더 안으로 복사해 주시고,
나머지 3개의 파일은
C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects
안으로 복사해 주십시오.

그리고 Visual Studio 2008 을 실행시킨 후 Project 를 생성하면
정상적으로 MayaPluginWizard 가 실행되는 것을 볼 수 있습니다.



////////////////////////////////////////////////////////////////////////

[수정한 사항 설명]
(이 부분은 꼭 보셔야 할 부분은 아닙니다. 위의 설명대로 따라만 하셔도 됩니다.)


1번사항.

MayaPluginWizard2.0\_MayaPluginWizard\MayaPluginWizard.vsz
의 원본 내용은

//
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.7.1

Param="WIZARD_NAME = MayaPluginWizard"
Param="FALLBACK_LCID = 1033"
//

인데, 이 내용을

//

VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.9.0

Param="WIZARD_NAME = MayaPlugInWizard"
Param="ABSOLUTE_PATH = C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\MayaPluginWizard"
Param="FALLBACK_LCID = 1033"

//

로 변경시켜 주었습니다.



2번사항.

MayaPluginWizard2.0\_MayaPluginWizard\MayaPluginWizard\HTML\1033\default.htm

의 '2008' 을 모두 '2009' 로 변경하였습니다.

(Maya 2009 의 devkit 폴더 안에 들어있는 PluginWizard 파일에도 2008로 되어 있더군요;;)




///////////////////////////////////////////////////////////////////////////////////



[추가사항]
(이 부분은 위의 예와 다른 VisualStudio 나 Maya 의 버전을 사용하신다면 참고하시면 됩니다.)



1. Visual Studio 2005 에서 Maya 2009 Plug-in Wizard 를 사용하고 싶다면,
다운로드 받은 파일에서 MayaPluginWizard.vsz 파일의 내용을

//
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.8.0

Param="WIZARD_NAME = MayaPlugInWizard"
Param="ABSOLUTE_PATH = C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\MayaPlugInWizard"
Param="FALLBACK_LCID = 1033"
//

로 바꿔준 후 저장한 다음, 똑같이 폴더는
C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards
로, 3개의 파일은
C:\Program Files\Microsoft Visual Studio 8\VC\vcprojects
로 복사해 주시면 됩니다.


2. VS2005, VS2008 에서 Maya 2008 PluginWizard 를 사용하시고 싶다면
C:\Program Files\Autodesk\Maya2008\devkit\pluginwizard
에서 기본적으로 제공되는 MayaPluginWizard 압축파일의 압축을 푼 후,

MayaPluginWizard 폴더는

(VS2005의 경우) C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards
또는
(VS2008의 경우) C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards
폴더 안으로 복사해 주시고,

나머지 3개의 파일중 MayaPluginWizard.vsz 파일을 메모장/워드패드로 열어서

(VS2005의 경우)
//
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.8.0

Param="WIZARD_NAME = MayaPlugInWizard"
Param="ABSOLUTE_PATH = C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\MayaPlugInWizard"
Param="FALLBACK_LCID = 1033"
//

(VS2008의 경우)
//
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.9.0

Param="WIZARD_NAME = MayaPlugInWizard"
Param="ABSOLUTE_PATH = C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\MayaPlugInWizard"
Param="FALLBACK_LCID = 1033"
//

로 수정한 다음 3개의 파일 모두
C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects
안으로 복사해 주십시오.



이 글의 방법대로 한다면, Visual Studio 나 Maya 가 설치된 폴더를 임의로 지정해 주지 않았다는 가정 하에 

Maya2008 Plug-in Wizard 의 VS2005, VS2008 에서의 사용,
Maya2009 Plug-in Wizard 의 VS2005, VS2008 에서의 사용을 모두 커버할 수 있을 것입니다.


ThEnd.