The Master Controller is a node that is capable of generating custom on-screen manipulators, or widgets, which can be programmed to affect one or several elements in a scene when manipulated. They are created and configured entirely through the scripting interface of Harmony. This allows you to create controls that can manipulate any amount of elements in your scene based on specific algorithms, making their capabilities virtually infinite.
Several types of Master Controller widgets can be created:
- The Slider Widget creates a slider that the user can slide. When manipulated, it provides a value between its minimum and maximum values.
- The 2D Line Display widget displays a line going between two 2D Point widgets to make a "bone" type manipulator.
- The 2D Point Widget creates a point that the user can freely drag around the stage. When manipulated, it provides its position.
- The 3D Rotation Widget creates a 3D sphere that the user can rotate in all directions. When manipulated, it provides an object with a rotation angle for each axis.
- The X, Y and Z Rotation Widgets create a circle that can be rotated around the stage around its axis. When manipulated, it provides a rotation angle.
- The X, Y and Z Translation Widgets create an arrow that can be dragged along its axis. When manipulated, it provides an offset.
- The Custom Widget can be composed of one or multiple elements from other widget types, and the behavior of which when manipulated can be customized.
The end goal of master controllers is to give studios the ability to create tools that make it easy for scene planners and animators to manipulate rigs and objects in the way they were designed to be manipulated.
There are two approaches to creating master controllers:
- Wizards: Wizards allow you to generate master controller widgets by feeding them character poses and configuring how the widget will apply the different poses to the character.
- Scripting: This method allows you to create a master controller of any kind for any purpose whatsoever. However, since it requires using the Harmony scripting interface, it is recommended to only attempt this if you have solid bases in scripting.