创建可链接控制器

您可以创建一个能够应用至场景对象上现有动画控制器的 MCG 控制器,且将其输出用作输入。这为以下工作流提供了一种替代方式:先应用输入中最顶端的控制器,然后应用其他控制器。

要执行此操作,图形必须具有接收子控制器输出的参数节点。然后,编辑“自定义 UI”属性,为 copy 事件添加处理程序。

也可以为 setValue val commit 事件添加处理程序。此处理程序通过子控制器中的值传递,并且使您可以如同子控制器仍是活动控制器一样与其进行交互。例如,这允许您创建一个应用于标准位置控制器顶部以钳制位置的 MCG 控制器,并且仍支持您使用“选择并移动”工具在视口中移动对象。

	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
		  )
  )

请注意,某些控制器类型具有控制器和值属性,而对于其他控制器类型,您可以直接设置控制器本身。可以使用上文中的 try/catch,或者仅使用适合特定参数类型的块。