自動的に生成されたパラメータ ブロックを拡張したり、パラメータ イベント ハンドラの上書きや追加のパラメータ ブロックを作成するために、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
)
)
追加のパラメータ ブロックを定義する場合は、任意のスクリプト プラグインにおいて、各パラメータ ブロックは 1 つのロールアウトのみに関連付けることができ、2 つ以上のパラメータ ブロックを同一のパラメータ ブロックに関連付けることはできないことを覚えておいてください。