안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘은 메터리얼 에디터에 대해서 알아보려고 합니다.
이 부분은 제가 잘 아는 부분이 아니라 설명을 할까 말까 고민을 했었는데, 간단하게나마 기초 적인 것을 짚고 넘어가는 것이 맞을 것 같아 기본적인 것을 설명하겠습니다.
이 내용을 기초 삼아 더욱 심도 있는 공부의 발판이 되었으면 좋겠습니다.
getMeditMaterial <slot_index>
메터리얼 에디터 슬롯 1 ~ 24까지의 메터리얼을 얻어 옵니다.
위 이미지는 슬롯 1번의 메터리얼이 'Standard'로 되어 있습니다.
이미지에는 나오지 않지만 슬롯 2번은 'Advanced Lighting Override'이고 슬롯 3번은 'Architectural'으로 해놓은 상태입니다.
다음과 같이 입력하고 실행해 보겠습니다.
1
2
3
|
getMeditMaterial 1
getMeditMaterial 2
getMeditMaterial 3
|
cs |
제가 설정해 놓은 메터리얼을 잘 출력해 줍니다.
설정해 놓은 것을 받아 오는 기능이 있다면 당연히 스크립트로 설정하는 방법도 있겠죠.
setMeditMaterial <slot_index> <material>
입력한 메터리얼 슬롯의 메터리얼을 정할 수 있습니다.
'Standard'메터리얼이 아닌 슬롯 2번과 슬롯 3번을 'Standard'로 바꿔 보겠습니다.
다음과 같이 입력하고 실행하여 봅시다.
1
2
|
setMeditMaterial 2 Standard()
setMeditMaterial 3 Standard()
|
cs |
잘 될 줄 알았는데 에러가 나네요. ㅎㅎ
내용을 읽어 보면 setMeditMaterial에는 인수가 2개가 필요한데 3개를 받았기 때문에 에러랍니다.
아마 Standard() 함수의 실행 결과가 2개의 인수로 나누어지기 때문인것 같습니다.
그럼 그것을 하나의 인수로 만들어 주면 될 것 같습니다.
다음과 같이 수정하고 실행해 보겠습니다.
1
2
|
setMeditMaterial 2 (Standard())
setMeditMaterial 3 (Standard())
|
cs |
잘 바뀌었습니다.
그런데 자세히 보면 메터리얼의 이름이 'Standardmaterial'로 바뀌어 버렸습니다.
원래라면 슬롯 2번은 '02 - Default'라고 적혀 있습니다.
변경된 것이 마음에 들지 않는 다면 다음과 같이 수정할 수 있습니다.
1
2
|
(getMeditMaterial 2).name = "02 - Default"
(getMeditMaterial 3).name = "03 - Default"
|
cs |
이번에는 이름 문제도 깔끔하게 해결되었습니다.
loadDefaultMatLib()
3ds Max의 기본 메터리얼 라이브러리를 불러옵니다.
이 부분은 무엇을 이야기하는지 저는 잘 모르겠습니다. ㅎㅎ
'Material/Map Browser'의 선택할 수 있는 메터리얼들을 맥스의 기본 상태로 바꾸는 것 같습니다.(개인적인 추정이에요.)
그 외에도 메터리얼 라이브러리 관련 함수가 다음과 같이 있습니다.
간단하게 소개하는 형식으로 넘어가겠습니다. ㅎㅎㅎ
loadMaterialLibrary <filename_string>
<filename_string>에 적은 메터리얼 라이브러리를 불러옵니다.
<filename_string>에는 파일 이름과 디렉터리 경로가 포함되어야 합니다.
로드가 성공하면 true를 아니면 false를 돌려줍니다.
saveMaterialLibrary <filename_string>
<filename_string>을 입력하여 현재의 메터리얼 라이브러리를 저장합니다.
저장이 성공하면 true를 아니면 false를 돌려줍니다.
fileOpenMatLib()
이 함수는 대화 상자를 사용하여 메터리얼 라이브러리를 불러옵니다.
fileSaveAsMatLib()
대화 상자를 이용하여 메터리얼 라이브러리를 저장합니다.
fileSaveMatLib [quiet:<bool>]
위 함수와 같이 대화상자를 이용하여 메터리얼라이브러리를 저장합니다.
다른 점은 새로이 파일 이름을 만들어 넣는 것이 아니라 그냥 덮어 씌우는 함수입니다.
quiet:<bool>을 사용하여 true를 입력하면 저장할 때 아무것도 묻지 않고 저장을 합니다.
getMatLibFileName()
현재 사용하고 있는 메터리얼 라이브러리의 이름을 출력합니다.
오늘은 메터리얼 에디터를 조작하는 스크립트를 약간 알아봤습니다.
다음 시간에도 계속해서 알아보도록 하겠습니다.
'맥스스크립트 기초' 카테고리의 다른 글
Material Editor(5) (0) | 2019.10.09 |
---|---|
Material Editor(4) (0) | 2019.10.08 |
Material Editor(3) (0) | 2019.10.07 |
Material Editor(2) (0) | 2019.10.04 |
User Defined (4) | 2019.10.02 |
문자열(String) 함수(5) (0) | 2019.09.04 |
문자열(String) 함수(4) (0) | 2019.09.03 |
문자열(String) 함수(3) (0) | 2019.09.02 |