제작한 스크립트를 메뉴에 등록하지 않으면 실 작업자들이 실제로 사용하는데 많은 제약이 따릅니다.
그런 문제가 없기 위해 제작한 스크립트는 반드시 메뉴에 등록을 해줘야하는데, 그 방법에 대한 가이드입니다.
맥스 스크립트 메뉴 등록 가이드
1. 맥스 스크립트 상단메뉴에 들어가려면 반드시 메크로 스크립트로 등록된 스크립트만 사용이 가능 합니다.
(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를 실행하시면 본 메이커 스크립트가 실행됩니다.
출처 - http://hwanggoon.tistory.com/212