Créer des contrôleurs enchaînables

Vous pouvez créer un contrôleur MCG pouvant être appliqué par-dessus un contrôleur d'animation existant à un objet dans une scène et utiliser sa sortie comme entrée. Cette option offre la possibilité au flux de travail d'appliquer d'abord le premier contrôleur, puis d'appliquer d'autres contrôleurs à ses entrées.

Pour ce faire, le graphique doit être un nœud de paramètre pour recevoir la sortie du sous-contrôleur. Vous modifiez ensuite la propriété IU personnalisée pour ajouter un gestionnaire à l'événement Copier.

Vous pouvez également ajouter un gestionnaire à l'événement setValue val commit . Cette opération transmet la valeur du sous-contrôleur et vous permet d'interagir avec ce dernier comme s'il était toujours le contrôleur actif. Par exemple, cette option vous permet de créer un contrôleur MCG qui est appliqué par-dessus un contrôleur de position standard pour associer la position, tout en pouvant toujours déplacer l'objet dans les fenêtres à l'aide de l'outil Sélection et déplacement.

	on copy source do
	(
		--Grab the current controller and use its value to drive this controller.
		try 
     (
		       this.SubController.controller = source
		   )
		catch
     (
		       this.SubController = source
		   )
		return true
	 )

	on setValue val relVal commit do
	(
		--Set the value of the subController.
		--This controller acts like a pass-through.
		try 
     (
		      SubController.value = val
		   )
		catch
    (
		      SubController = val
		  )
  )

Notez que certains types de contrôleur ont des propriétés de valeur et de contrôleur, alors que pour d'autres, vous définissez directement le contrôleur lui-même. Vous pouvez utiliser try/catch comme ci-dessus, ou bien simplement utiliser tout ce qui est approprié pour le type de paramètre.