About Scripting
T-ANIMPA-007-001 & T-HSCP-001-001
Harmony provides you with several scripting interfaces to allow you to automate and streamline certain tasks as well as to add custom functionalities to the application. Those scripting interfaces use Qt Script, a scripting language based on the ECMAScript standard which is very similar to JavaScript.
Harmony has
- Harmony Scripting is the main scripting interface. Among many possible uses, Harmony scripts can automate workflows and functionalities in Harmony, create dialogs and perform batch operations on a scene.
- The Extended Scripting Interface is a suite of modules for power users. It includes modules for editing drawings, for creating tools and toolbars and for executing Python scripts.
- The Script Node is a special node which can take input from image or peg nodes, process its information in a custom-made script and output the processed peg or image information in the desired way. It allows you to create nodes that have custom behaviours. For example, the Maya Render Batch node is actually a Script Node configured to render your scene through an external rendering engine.
- Control Center Scripting allows you to create scripts that can be launched in a command line interface via the Control Center application. They can be used to perform batch operations on the different elements of a Harmony Server database.
- Python Interface is an interface displaying a Python representation of Harmony GUI and its current project. This interface can be used to create custom tools and automation tasks using Python.
About Qt Script
Qt Script is an object-oriented scripting language based on the ECMAScript standard, like JavaScript and JScript. However, there are some differences that distinguish Qt Script from these other scripting languages, which are familiar to web programmers.
The Qt Script environment provides several standard classes and modules that are not documented in the Harmony scripting documentation.
As of Toon Boom Harmony 10.3, Toon Boom Animation has changed its scripting language from QSA script to Qt Script. Scripts are stored in plain text in files with the .js
extension, instead of .qsa
. This change to the API improves the software and gives access to 64-bit capabilities of the scripting interface.
Eery effort was made to ensure backward compatibility with QSA scripts. Hence, simple functions can be ported without making any changes, but class definitions must conform to the Qt Script syntax. Therefore, scripts that define classes must be updated.