제작한 스크립트를 메뉴에 등록하지 않으면 실 작업자들이 실제로 사용하는데 많은 제약이 따릅니다.
그런 문제가 없기 위해 제작한 스크립트는 반드시 메뉴에 등록을 해줘야하는데, 그 방법에 대한 가이드입니다.
맥스 스크립트 메뉴 등록 가이드
1. 맥스 스크립트 상단메뉴에 들어가려면 반드시 메크로 스크립트로 등록된 스크립트만 사용이 가능 합니다.
-
현재 사내 매크로 스크립트는 맥스 설치폴더\\MacroSciprs\\Nlabs 폴더에 모여 있습니다.
-
스크립트는 MacroScript 폴더에 모여있는 매크로 스크립트와 Script 폴더에 모여있는 보통 스크립트로 나뉘어 집니다..
-
두 개의 차이점 :
(1) 매크로는 간단하게 실행가능한 원클릭 스크립트에 대부분 사용된다. 매크로는 맥스가 실행될께 함께 실행 되기 때문에 덩치가 커서는 안됩니다.
(2) 일반 스크립트는 시퀀스 매니저나 애니메이션 라이브러리 같이 덩치가 큰 스크립트에 사용된다.
내가 실행을 해야만 작동하기때문에 덩치가 커도 무리가 없습니다.
2. 매크로 스크립트를 만들기
- 현재 사내에 사용중인 매크로 스크립트들은 메뉴 등록에만 사용되고, 실제 만들어진 덩치큰 스크립트를 실행해주는 교두보 역할을 해주고 있습니다.
- 예) SequenceManeger가 메뉴에 등록될때는 매크로가 사용되고, 메뉴 버튼을 누르는 순간 실제 스크립트가 실행됩니다.
**사내에서 사용중인 본 메이커의 실행 매크로 스크립트
macroScript BoneMaker --> 매크로 등록
category:"Nlabs" --> 카테고리 등록
buttonText:"Bone Maker" --> 메뉴 버튼 이름 등록
tooltip:"Bone Maker" --> 툴팁 등록
(
on execute do
(
include "Nlabs/BoneMaker.ms" --> 매크로 스크립트에 실제 스크립트가 실행되도록 연결해 줍니다.
)
)
3. 위 매크로 스크립트를 메뉴에 등록시키기 위한 코드
- 아래 코드를 만든 후 Scripts\\Startup 폴더에 저장하시면 맥스가 실행될때 항상 메뉴가 나오게 됩니다.
스타트업에 들어간 스크립트는 맥스가 실행될때 항상 같이 실행되오니 꼭 필요한 것들만 넣어야 합니다.
--------------------------------------------------------------------------------------------------------
-- MainMenuClass
--------------------------------------------------------------------------------------------------------
struct MainMenuClass
(
--------------------------------------------------------------------
-- FindMenu
--------------------------------------------------------------------
fn FindMenu menuName =
(
local menu = menuMan.findMenu menuName -- 없으면 undefined
return menu
),
--------------------------------------------------------------------
-- AddMenu
--------------------------------------------------------------------
fn AddMenu menuName =
(
local newMenu
-- 중복 추가 방지 --
if FindMenu menuName != undefined then
return undefined
-- Menu 추가 --
newMenu = menuMan.createMenu menuName
mainMenu = menuMan.getMainMenuBar()
subMenuItem = menuMan.createSubMenuItem menuName newMenu
subMenuIndex = mainMenu.numItems() + 1
mainMenu.addItem subMenuItem subMenuIndex
return newMenu
),
--------------------------------------------------------------------
-- AddItem
--------------------------------------------------------------------
fn AddItem menuName item =
(
local newIndex
menu = FindMenu menuName
-- Menu가 없으면 패스 --
if menu == undefined then
return undefined
newIndex = menu.numItems() + 1
menu.addItem item newIndex
return newItem
),
--------------------------------------------------------------------
-- RemoveMenu
--------------------------------------------------------------------
fn RemoveMenu menuName =
(
menu = menuMan.findMenu menuName
if menu != undefined do
menuMan.unRegisterMenu menu
return ok
),
--------------------------------------------------------------------
-- UpdateMenuBar
--------------------------------------------------------------------
fn UpdateMenuBar =
(
menuMan.updateMenuBar()
return ok
),
--------------------------------------------------------------------
-- CreateActionItem
--------------------------------------------------------------------
fn CreateActionItem macroScriptName categoryName =
(
local actionItem
actionItem = menuMan.createActionItem macroScriptName categoryName
return actionItem
)
)
(
menuName = "Test"
macroScriptName = "TestItem"
categoryName = "Nlabs"
MainMenu = MainMenuClass()
-- menu 만들기 --
MainMenu.AddMenu menuName
-- Item 만들기 --
item = MainMenu.CreateActionItem macroScriptName categoryName
-- menu에 Item 등록 하기 --
MainMenu.AddItem menuName item
-- 화면 갱신 하기 --
MainMenu.UpdateMenuBar()
)
위 코드를 실행하면 아래 처럼 맥스 메인 메뉴에 원하는 스크립트가 등록이 됩니다.
위 상태에서 BoneMaker를 실행하시면 본 메이커 스크립트가 실행됩니다.
'3DMAX > Script' 카테고리의 다른 글
Max Script 에서 Json 데이터 파싱하기 (0) | 2015.12.17 |
---|---|
맥스에서 엔진 버텍스 보여주는 스크립트(Engine Vertex Viewer) (0) | 2015.12.17 |
MaxScript에서 Svn 접근하기 (0) | 2015.12.17 |
Max 스크립트(Script)에서 사용되는 바이패드 고유 노드 넘버 (0) | 2015.12.17 |
캐릭터 셋업 서포트툴(Setup Support Tool)) 제작 (0) | 2015.12.17 |