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 customs 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.
Harmony Scripting Reference
This section of the documentation explains how to use the Harmony Script Editor, but does not teaches how to write scripts nor does it contain in-depth information about the classes and modules that are available in the Harmony scripting interface.
You can access the documentation for each of the scripting interfaces using the links below:
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.