Vous pouvez modifier la propriété IU personnalisée d'un outil MCG pour prolonger le bloc de paramètre généré automatiquement et remplacer les gestionnaires d'événements de paramètre, ou bien créer d'autres blocs de paramètre.
Par exemple, vous pouvez ajouter un paramètre qui n'est pas présent dans le graphique, mais est utilisé ailleurs dans votre propre code MAXScript personnalisé. Vous pouvez également remplacer les gestionnaires d'événements de paramètre, comme pour la liste de paramètres dans le graphique.
Pour ce faire, ouvrez à nouveau le bloc de paramètre pour apporter les modifications nécessaires. Notez que cela ne permet pas de remplacer complètement le bloc précédent. En particulier, la redéfinition d'un paramètre existant entraînera une erreur.
Par exemple, il s'agit du bloc de paramètre généré automatiquement pour un graphique avec un seul paramètre de liste :
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 )
Vous pouvez ajouter un paramètre et remplacer les événements de paramètre en modifiant la propriété IU personnalisée comme suit :
-- 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
)
)
Si vous définissez d'autres blocs de paramètre, n'oubliez pas que, dans un plug-in de script, chaque paramètre bloc ne peut être associé qu'à un seul panneau déroulant, et deux ou plusieurs blocs de paramètre ne peut pas être associé avec le même paramètre de bloc.