GAME GRAPHIC GUIDE/3Ds Max

3DsMax Script 맥스 스크립트 기초

레임3D 2019. 6. 20.

맥스 스크립트조차 아직 너무 어려워서 이게 맞는건지는 모르지만

대충 눈치로 짐작하는 부분을 메모해둠.

 

참고로 스크립트 뒤에 -- 를 넣어 설명을 해주면 '주석'이라는 기능을 하는데

말 그대로 단지 내가 알아볼 수 있는 설명에 불과하지만 꼭 해두면 스크립트를 볼때 머리가 덜 아프다.

 

일단 지난주 만든 나만의 맥스 UI 창.

 

버튼에 단축키를 적용해서 ` 키를 누르면 창이 뜨고

이 창을 스크립트 구문을 추가해서 맥스 UI 중 어느위치든 Dock 시킬 수 있게 해두었다.

 

 

 

 

try(closerolloutfloater MainFloater) catch()

-- 가장 첫줄에 넣어주고, 주황색 글씨의 이름을 가진 창이 열려있으면 닫는다

 

 

Rollout Menu01 "Reim"

 --Rollout은 카테고리, 그뒤에 Menu01 은 스크립트한테 알려주는

   나만의 암호, 그뒤에 "Reim"은 내가 보기 편한 이름

 

(

button reset "ResetXForm" pos:[2,6] width:78 height:20   --리셋 엑스폼

         --butoon 은 종류를 지정하고, reset 은 역시나 암호, "ResetXForm"은 내 눈에 보이는 이름

         --pos 는 포지션인듯, 위치값. [좌우 좌표, 위아래 좌표], 버튼의 넓이와 높이값

button vertexzero "VertexZero" pos:[82,6] width:78 height:20  --버텍스를 제로점으로 이동

        --좌우 좌표가 82로 옆으로만 이동시키고 위아래는 옆 버튼과 동일해야되서 6으로 같다.

 

button zeropivot "ZeroPivot" pos:[2,32] width:78 height:20   --제로피봇

         --앞에 만든 두 버튼보다 아래로 내려서 생성해야 되기 때문에 위아래 좌표가 32

           이때 각 버튼의 높이값을 20으로 해줬기 때문에 최소 26이 되야하는데 좀 더 여유있게 6을 더해서 32로 해줬다.

button zero_btn "[0,0,0] 이동" pos:[82,32] width:78 height:20   --오브젝트 제로점으로 이동하기

        

 

 

--Script

on reset pressed do  --위에 reset으로 지정해줬던 암호를 pressed (눌렀을때) 무언가를 하라~는 명령이다.

(

macros.run "PolyTools" "ResetXForm"

     --이런 어려운건 명령어는 직접 타이핑하지 않아도 된다. 맥스에서 F11 눌러 script Listener 창을 열고

            MacroRecoder - enable 체크해주면 내가 하는 작업들이 명령어로 보이기 때문.

)

 

on vertexzero pressed do

(

undo on  --중요하다. 매크로 스크립트는 undo가 되지 않기 때문에 undo on (  ) 으로 명령어들을 감싸 줘야 하는듯

(

sel_vet = ($.GetSelection 1)as array

for i in sel_vet do(

pos = $.verts[i].pos

$.verts[i].pos = [0,pos.y,pos.z]

)

)

)

 

 

MainFloater = NewRolloutFloater "" 180 360  --MainFloater 라고 이름 지어주고 가로 세로 길이를 지정해줌

addRollout Menu01 MainFloater

addRollout Menu02 MainFloater

addRollout Menu03 MainFloater

addRollout Menu04 MainFloater  --롤아웃을 몇개를 하든 이렇게 addRollout 이라고 해주면 되나보다

 

cUI.RegisterDialogBar MainFloater style:#(#cUI_floatable,#cUI_dock_left,#cUI_dock_right,#cui_dock_top,#cui_dock_bottom,#cUI_handles)

-- 이걸 넣어주면 단순했던 임시창을 맥스 UI 에 Dock (고정) 시킬 수도 있다.

-- 하지만 이걸 넣어주려면 mse 스크립트처럼 별도의 스크립트로 한번 우회해서 불러와줘야 한다.

-- 그냥 불러오는 방법도 있을듯 하지만 아직 모르겠음

 

댓글

💲 추천 글