Toon Boom Harmony 17.0.2 Release Notes

Here is the list of changes in Harmony 17.0.2, build 15414 (2020-01-17):


Feature Description
Reverted to old drawing tool modifier keys and added a new one

In Harmony 17.0.0 and 17.0.1, the modifier keys for drawing straight lines using freehand drawing tools had been changed to match other drawing software and to add the ability to lock the angle of a straight line and redraw over it.

As of Harmony 17.0.2, these modifier keys have been reverted to the ones used in Harmony 16. However, it is now possible to use the Spacebar key to lock the angle of a straight line and redraw over it.

The new drawing tool modifier keys are as follows:

  • If you press and hold the Shift key before or while drawing, you will draw a straight line in any direction.

  • If you press and hold the Spacebar while drawing a straight line, it will lock the angle of your line. If you are using a pressure-sensitive tablet, you can then draw over your line to adjust its thickness.
  • If you press and hold the Shift and Alt keys before or while drawing, you will draw a straight horizontal or vertical line.

If you preferred the modifier keys from Harmony 17.0.1, it is possible to revert to them by toggling a hidden preference which can be done by downloading, importing and running the script at the URL below:

For reference, the drawing tool modifier keys in Harmony 17.0.1 were as follows:

  • If you press and hold the Shift key before or while drawing, your drawing stroke will be a straight horizontal or vertical line.
  • If you press and hold the Shift and the Alt keys before or while drawing, you will start drawing a straight line until you release both the Shift and Alt keys.
  • When drawing a straight line using the Shift and Alt keys, releasing a single one of either key will lock the angle of your line. If you are using a pressure-sensitive tablet, you can then draw over your line to adjust its thickness.

Digital Animation

Feature Description
Keyboard shortcut for Peg Selection mode

It is now possible to create a keyboard shortcut to toggle the Peg Selection Mode option of the Transform tool. When this mode is enabled, clicking on a drawing in the Camera view will automatically select the element’s parent peg, if it has one.

This keyboard shortcut can be found in the General section of the Keyboard Shortcuts dialog.


Feature Description
Increase Opacity node

The new Increase-Opacity node allows you to reduce the transparency for any visual element in your scene. It works by multiplying the opacity of each pixel in the input image by a customizable factor.

This can be used to fix a common issue in digital animation when one element is used as the cutter for another element, and both elements are composited together, creating a visible seam between them. A known work-around to this is to connect the problematic parts of the rig several times to the same composite so as to increase the opacity on their edges, but this can negatively impact performance. This node will increase the opacity around the edges of scene elements without causing unnecessary overhead.

For more information, see Increase Opacity Node.

Import from Flash / Animate

Feature Description
Support for latest versions of Adobe Animate

Previously, the Export to Harmony extension for Adobe Flash / Animate was only supported from Flash CS 5.5 up to Adobe Animate 2015.1. The extension has been significantly modernized, and now only supports Adobe Animate 2018 and later.

Automatic rig clean-up

When importing a character rig exported from Adobe Animate, the symbol hierarchy is converted to a peg hierarchy.

Before, the conversion was straightforward: One peg was created for every symbol, and the position of each peg was offset to correspond to the position of their respective symbol in the Animate scene. In cases of complex symbol hierarchies, this could create an overly complex peg hierarchy. It also made it difficult to “reset” the position of a peg, as it would often not return to the correct position in the character rig.

Now, when importing a character rig from Adobe Animate, two clean-up routines are performed on the imported rig to make the model easier to edit and animate by making it more simple:

  • The value of each peg in the hierarchy is removed from the peg and baked into the drawing layer it connects to. This means that all pegs in the imported rig are at a position of (0, 0), and the drawing layers are offset to preserve their position.

    When multiple pegs are connected in a row, their respective positions are combined and baked into the drawing layer that the chain connects to.

  • If several pegs are connected in a row in the hierarchy without any of them branching to multiple pegs, the superfluous pegs are removed. Only pegs that branch to multiple pegs or to a drawing layer will be preserved.

Support for synchronized layers

It is now possible to import the content of symbols in your Adobe Animate character rigs as synchronized layers in Harmony.

For example, when rigging in Animate, it is common to create body parts made of multiple layers that need to remain synchronized—as in changing the drawing for one layer must also change the drawing for other layers—inside symbols. The rigger typically accomplishes this by putting all these layers inside a single symbol. Then they create every possible drawing combination for these layers inside the symbol’s timeline, and the animator only has to change the symbol’s current frame.

Previously all the layers inside such symbols were imported as separate, independent layers in Harmony. This kept the different layers of the artwork separate but then the animator had to change the exposed drawing separately on each layer to have a valid drawing combination.

It is now possible to indicate that layers inside a symbol must be imported as synced layers in Harmony. To do this, in Adobe Animate, simply add the label “Sync” (case-insensitive) to the first frame of the layer containing the symbol which contains the layers that need to remain synced. When the model is exported from Animate and imported into Harmony, all the layers inside this symbol will be synchronized.

TIP This is especially useful if some body parts of your characters are made of a symbol which contains mask layers. The mask layer and the masked layers will be converted to two synced drawing layers connected through a cutter. Afterwards, when you change which drawing is exposed in the masked layer in Harmony, the drawing exposed in the mask layer will be automatically updated to match.
NOTE If a symbol marked with the “Sync” label contains a layer containing a symbol, that symbol will be “broken apart” and converted to flat drawings.
IMPORTANT This feature is only supported in Adobe Animate 2020 or later.
Enhancements to the Swfimport utility

The Swfimport terminal utility, which is used by Harmony when importing character rigs exported from Adobe Animate, has been updated with the following changes:

  • The utility is now able to import all drawings contained in a movie clip exported from the Library in Adobe Animate.
  • The new -ignore_position parameter will ignore the position information in the target SWF file. This causes all coordinates in the SWF file to be imported as they are into Harmony.

    NOTE This generally results in the top-left corner of the drawing being positioned in the centre of the scene, as point (0, 0) in Animate represents the top-left corner of the stage, whereas it points to the centre of the stage in Harmony.
  • The new -resolution <width> <height> parameter will ignore the resolution of the SWF file and allow you to input a custom resolution instead.

GNU/Linux Installation

Feature Description
CSH environment script

In Harmony 14 and earlier releases, the install script for GNU/Linux generated two environment scripts: One for Bash, named usa_profile, and one for CSH, named usa_cshrc. Depending on your shell environment, you could use either script to set some environment variables used by Harmony.

When the installer was refactored for Harmony 15, the Bash environment script was also refactored and renamed tba_profile, but the CSH environment script was removed.

As of Harmony 17.0.2, the installer also generates a CSH environment script, named tba_cshrc. This script does the same thing as the Bash environment script, except it uses CSH syntax.

To include the Harmony environment script in your shell, type in the following command in a terminal:

  • For Bash:

    $ . /usr/local/ToonBoomAnimation/harmonyPremium_17/etc/tba_profile

  • For CSH:

    $ source /usr/local/ToonBoomAnimation/harmonyPremium_17/etc/tba_cshrc


  • The distance for the pen stabilizer in the Pen Settings toolbar is now set to 20 by default.
  • When importing an image as a Toon Boom bitmap, the canvas for the bitmap layer will be at least as big as the canvas for a new bitmap layer, providing sufficient space to edit the image.

Fixed Issues

Performance and Stability
  • Memory leak and crash could occur when rendering QuickTime movies on macOS.
  • Playback could slow down drastically when playing a scene multiple times without making changes.
  • Crash occurred when using a keyboard shortcut to create a node while holding and dragging a cable in the Node View.
  • Crash occurred when rendering a scene containing a Genarts Sapphire plug-in in batch mode.
  • Crash occurred when attempting to paint on a bitmap layer with a colour that has an opacity of 0.
  • Crash occurred when rendering a scene containing a 3D model with a directional blur effect applied to it in batch mode.
  • Crash could occur when holding the T key to temporarily select the Cutter tool and cut out an intersected pencil line while the Pencil Editor tool is selected.
  • Rare crash could occur when using the Select tool with the Snap to Contour tool mode enabled.
  • On macOS 10.13 (High Sierra) and later, launching Harmony would trigger a prompt to allow Harmony to accept incoming connections if the firewall was enabled.
  • If the Brush Size Cursor preference was enabled, the brush size cursor would disappear when drawing a stroke.

  • When drawing a closed shape with the Pencil tool by holding the Ctrl (Windows/Linux) or ⌘ (macOS) key, the line that closes the shape would sometimes disappear.

  • If the user held the Shift key while drawing with the Pencil tool to create a straight line, and then released and held the Shift key quickly to create another straight line, the lines would not be joined together and could be selected independently.
  • When artwork was selected with the Select tool with the Permanent Selection tool mode enabled, selecting a different frame would not cause the selection to update if the Drawing view was not in the workspace.
Digital Animation
  • When rotating or scaling a layer using the Transform tool, keyframes would be created for its scale and rotation functions, but not for its position functions.
  • Light rectangles appeared over the rendered image if a pass through composite was connected to a Dither node, which was connected to a Highlight node, which was connected to a bitmap composite.
  • When running the script TB_MayaXmlToHarmony.js on a 3D model that had not been rotated, its scale value on the z-axis would be reset to 1.
  • The waveform of sound effects displayed in the Timeline and Xsheet views was offset by a single frame on macOS.
  • Rendering a scene with a Multi-Layer-Write node created TGA files by default when its default format is supposed to be PSD.
  • When images were rendered in PNG format, at 16-bit/channel with alpha, the colour values were premultiplied with black. PNG images do not support premultiplication.
  • Movies exported at 23.976 FPS on macOS played at 24 FPS in video editing software.
  • Large PNG images with a 16-bit/channel colour depth would use twice the amount of RAM they actually need when imported as original bitmap files in Harmony.
  • Large PNG images with a 16-bit/channel colour depth would sometimes not fully load when imported as original bitmap files in Harmony.
  • In bitmap images that are premultiplied with black, pixels that had an alpha value of 0 or less but which had positive colour values were not composited into the rendered image.
Import from Flash / Animate
  • Tiled textures in Animate that were created with an image in any format but JPEG were not tiled when imported in Harmony.
  • If a mask layer contained several symbols in different keyframes, some of the symbols would not be imported into the corresponding drawing layer in Harmony.
  • If an image imported in Animate was broken apart and its rectangle was transformed with perspective using the Free Transform tool, its texture would not be imported to Harmony.
  • The node.removeDynamicAttr() method sometimes returned a random boolean value when used to remove attributes from a Subnode-Animation node. If the random value was false, the Timeline view would not refresh even if an attribute was removed.
  • The Palette.acquire() method always failed to move the target colour to the palette.
  • Attempting to launch Control Center, Scan or Play via the terminal failed on macOS.
  • When pressing the Centre on Selection keyboard shortcut (O) in the Timeline view, the layers list would not display properly.
  • The expand and collapse arrows in the Library view and the 3D Graph view always appeared collapsed on macOS.