Modifier les blocs de paramètre

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.