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, the node system it is connected to should ultimately end up connected to a Display node in order for the Master Controller to work.

If you configure the Master Controller's first (rightmost) input port to be a transformation (peg) input port, you can connect a peg to the Master Controller, and use this peg to move its widget around in the Camera view, allowing you to easily set the widget's default position in the scene.

IMPORTANT A Master Controller node must have at least one output port to function, 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 learn about the scripting interface used by the Master Controller node, refer to 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 The name of the node as it appears in the Node View and the Timeline view. Each node must have a name that is unique to its containing group.
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.

NOTES
  • To add Extra Files to the Extra Files attribute, click on the Function button right of the Extra Files field to create the Extra Files attribute, then click on it again to open a dialog box in which you can type the file path of each file or folder that you want to copy with the Master Controller, with one file path per line.
  • File paths must use forward slashes (/) and must be relative to the scene directory. They can point to files or folders. For example, if you want to copy everything in the scripts sub-directory of your scene with your Master Controller, you can simply add scripts to the list.