MCG 도구의 사용자 정의 UI 특성을 편집하여 자동으로 생성되는 매개변수 블록을 확장할 뿐만 아니라 매개변수 이벤트 처리를 재정의하거나 추가 매개변수 블록을 만들 수 있습니다.
예를 들어 그래프에 없지만 사용자 정의 MAXScript 코드의 다른 위치에서 사용되는 매개변수를 추가할 수 있습니다. 그래프의 리스트 매개변수 등에 대해 매개변수 이벤트 처리기를 재정의할 수도 있습니다.
이렇게 하려면 매개변수 블록을 다시 열어 필요에 따라 수정합니다. 그러나 이전 블록 전체가 재정의되지는 않습니다. 특히 기존 매개변수를 다시 정의하면 오류가 발생합니다.
예를 들어 다음은 단일 리스트 매개변수가 있는 그래프에 대해 자동으로 생성된 매개변수 블록입니다.
parameters pblock rollout:params ( MyList_Tab type:#floatTab tabSizeVariable:true on MyList_Tab tabChanged action index count do ( if (paramsOpen) do mcgAPOps.FloatA_TabChanged action index count (this.params.MyList_UI) MyList_List MyList_Tab ) on MyList_Tab set val index do ( if (paramsOpen) do mcgAPOps.FloatA_TabSet val index (this.params.MyList_UI) MyList_List ) _dummy type:#boolean -- this exists to enable easy invalidation of the object pluginGraph type:#filename assettype:#MaxCreationGraph readOnly:true enumAsAsset:true pluginGraphDependencies type:#filenametab assettype:#MaxCreationGraph readOnly:true enumAsAsset:true tabSize:0 tabSizeVariable:true )
다음과 같이 사용자 정의 UI 특성을 편집하여 매개변수를 추가하고 매개변수 이벤트를 재정의할 수 있습니다.
-- Reopen the parameter block
parameters pblock rollout:params
(
-- Add to the parameter block
MyExtraParam default:0 type:#float
-- Override the event handler for adding or removing an item in MyList
on MyList_Tab tabChanged action index count do
(
-- my custom code goes here
)
-- Override the event handler for setting a value in MyList
on MyList_Tab set val index do
(
-- my custom code goes here
)
)
rollout params "Parameters"
(
-- Restore the default rollout contents
<<ParamUIDefs>>
<<RolloutParamsHanders>>
-- Add UI for added parameter if desired
spinner MyExtraParam "My Pretty Name" range:[-100, 100, 0] type:#float
-- Redefine the rollout event handlers (not included in ParamUIDefs)
on params open do
(
paramsOpen = true mcgAPOps.OneColParamsOpen MyList_UI MyList_Tab mcgAPOps.ToStringFunc #("MyList") selected:&MyList_selection
)
on params close do
(
mcgAPOps.OneColParamsClose MyList_UI selected:&MyList_selection paramsOpen = false
)
)
추가 매개변수 블록을 정의한 다음 스크립트된 플러그인에 저장하면 각 매개변수 블록을 하나의 롤아웃에만 연결할 수 있으며 둘 이상의 매개변수 블록을 동일한 매개변수 블록에 연결할 수는 없습니다.