Master Controller Node

The master controller node is a special kind of script node that allows you to create visual widgets that you can display in the Camera view, and script to programmatically affect a character rig when manipulated by the user.

For information and examples on how to use the Master Controller node, see About the Master Controller.

Connection

The Master Controller does not need to be connected to a node in order to work, unless it is scripted to affect nodes that are connected to it.

If a Master Controller is connected to a node, this node should be connected directly or indirectly to a Display node in order for the Master Controller to work.

If you configure the Master Controller's first (rightmost) port to be a transformation (peg) input port, you will be able to offset its control by connecting a peg to its input port and moving this peg around.

IMPORTANT: A Master Controller node must have at least one output port, even if this port is not connected to anything.

Controls

The Master Controller can be scripted to display any one of the following kinds of controls in the Camera view:

Control Appearance Description
Slider A slider that allows the user to slide a handle up or down. When manipulated, it provides a value between its minimum and maximum values.
2D Line Display Displays a line going between two 2D Point widgets, make a "bone" type manipulator that can be moved by either end.
2D Point A point that the user can freely drag around the stage. When manipulated, it provides its position.
3D Rotation

A 3D sphere that the user can rotate in all directions. When manipulated, it provides an object with a rotation angle for each axis.

X Rotation

A circle that can be rotated around the x-axis. When manipulated, it provides a rotation angle.

Y Rotation

A circle that can be rotated around the y-axis. When manipulated, it provides a rotation angle.

Z Rotation

A circle that can be rotated around the z-axis. When manipulated, it provides a rotation angle.

X Translation An arrow that can be dragged along the x-axis. When manipulated, it provides an offset.
Y Translation An arrow that can be dragged along the y-axis. When manipulated, it provides an offset.
Z Translation An arrow that can be dragged along the z-axis. When manipulated, it provides an offset.

Scripting Interface

To see the reference for the scripting interface used by the Script node, see the Harmony Scripting Interface Reference.

Layer Properties

The Master Controller node is essentially a Script node with an extra layer of functionality in its scripting interface. Hence, its layer properties are very similar to that of the Script node. However, its most important tab is the UI Script tab. The script in this tab is executed when the layer is selected and the user clicks on the Show Control button in the Camera toolbar. This is where you can define which widget the node displays, and what happens when the user manipulates the widget.

Parameter Description
Name Allows you to enter a name for the node.
Tabs

Attributes

This tab allows you to set values for the attributes defined in the Specifications tab.
Specifications

This tab allows you to define the attributes as well as the input and output ports for the Master Controller.

The Master Controller supports the following types of attributes:

  • bool
  • int
  • double
  • String
  • Text
  • Colour
  • Position2d
  • Position3d

The Master Controller supports the following types of ports:

  • Image
  • Peg
Softrender

This tab allows you to write or link to a script that will be executed when rendering the node.

NOTE: Scripts in this tab are ignored by the Master Controller node. The Softrender tab is only executed by Script nodes.
Initialization

This tab allows you to write or link to a script that will be executed when loading the scene.

Cleanup

This tab allows you to write or link to a script that will be executed when closing the scene.

UI Script This tab allows you to write or link to a script that will be executed when using the Show Control command while the node is selected. This is where widgets and their functionalities should be defined.
Extra Files This tab allows you to define folders or files from root directory of the scene that should be preserved when creating templates or saving the scene in a different location. Any asset, such as external scripts, user interface files, data files or images that the Master Controller requires should be listed in this tab.