Toon Boom Harmony 16.0.1 Release Notes

Here is a list of changes in Harmony 16.0.1, build 14405.

Features

Drawing

Feature Description

Modifier keys for Stamp and Bitmap Brush tools

The following modifier keys, which could be used when drawing with the Brush tool and Pencil tool on a vector layer, can now be used when drawing with the Stamp tool, as well as when drawing with the Brush tool on a bitmap layer:

  • If you press and hold the Shift key before you start drawing, your stroke will be a straight line.
  • If you press and hold the Shift key while you're drawing, the part of your stroke from that point on will be a straight line until you release the Shift key.
  • If you press and hold the Shift and the Alt keys before drawing, your stroke will be a straight line in an angle that is a multiple of 15 degrees.
  • If you press and hold the Ctrl (Windows/Linux) or ⌘ (macOS) key while drawing, your stroke will be a closed shape.
  • If you press and hold the Alt key, your tool will snap in a straight line to the nearest existing shape. This works on vector layers only.
Cut on several layers You can now use the Cutter tool on all visible layers simultaneously by holding the Ctrl (Windows/Linux) or ⌘ (macOS) key.
Use the Perspective tool on several layers You can now use the Perspective tool on several layers simultaneously by selecting all the layers you want to work with in the Timeline view, then selecting the artwork you want to edit with the Perspective tool.
Use the Envelope tool on several layers You can now use the Envelope tool on several layers simultaneously by selecting all the layers you want to work with in the Timeline view, then selecting the artwork you want to edit with the Envelope tool.

Performance

Feature Description
Audio playback Audio playback performance has been significantly enhanced to prevent it from slowing down scene playback.
Interactive Camera View Cache

A new preference, Enable Interactive Camera View Cache (Beta), has been added to the OpenGL tab of the Preferences dialog. When enabled, the Camera view will cache its preview image and reload parts of it when moving the mouse cursor around or when manipulating control boxes and control points.

To enable this feature, check the Enable Interactive Camera View Cache (Beta) preference in the OpenGL tab of the Preferences dialog—see OpenGL Preferences .

Scripting

Feature Description
Script permissions The File list of the Script Editor view now has a Permissions column, which indicates whether each script in the list can be edited or not—see Script Editor View.
Importing scripts and related files When importing a script, any user interface (.ui) or icon (.png) file that is in the same directory as the script and has the same file name will be automatically imported along with it—see Importing Scripts.
Testing scripts from global scope

It is now possible to test or debug a script from the global scope rather than through a specific function. This can be useful if you want to test code blurbs before structuring your script in functions.

To do this, when setting the target function to test in the Script Editor, select <Nothing> in the functions list—see Testing a Script and Debugging Scripts.

Exporting movies in batch mode It is now possible to use the exporter.exportToQuicktime() method when running a script from a command line interface—see Harmony Scripting Interface Reference.
Obtaining the full attribute keyword The new fullKeyword() method of the Attritube class returns the attribute's full keyword, including the keyword for each of its parents. For example, for the attribute with the keyword OFFSET.Z, the fullKeyword() method returns "OFFSET.Z", whereas the older keyword() method only returns "Z"—see Harmony Scripting Interface Reference.
Get column name of attribute The new columnName() method of the Attribute class returns the name of the column the attribute is linked to—see Harmony Scripting Interface Reference.
Higher decimal precision The node.getTextAttr() and column.getEntry() methods can now return up to four decimals of precision rather than three, which is the amount of precision supported by most input fields in the user interface—see Harmony Scripting Interface Reference.
Set bitmap and bitmap texture resolution

The new changeDrawingBitmapLayerResolution() and changeDrawingVectorLayerResolution() methods of the DrawingTools class can change the resolution of bitmap drawings as well as the texture resolution of vector drawings, respectively.

Additionally, the new setDefaultTexturePixelDensityforBitmapDrawings() and setDefaultTexturePixelDensityforVectorDrawings() methods of the scene class can set the default pixel density for bitmap drawings and textured vector drawings for the current scene.

For more information, see Harmony Scripting Interface Reference.

Set and get tool properties

The ToolProperties class has the following new methods:

  • Methods to set and get all of the tool properties available in the user interface for every tool.
  • getAllGlobalProperties(), which returns an object containing all of the tool properties that are shared by at least two or more tool, as properties.
  • getAllToolSpecificProperties(), which returns an object containing all of the tool properties specific to a single tool.
  • setGlobalProperties(), which can set several tool properties that are shared between several tools by passing an object containing the new tool properties as its parameter.
  • setAllToolSpecificProperties(), which can set several tool properties for a specific tool by passing an object containing the new tool properties as its parameter.
  • toolNames(), which returns a list of the names of each tool available in Harmony. Those names are used to identify tools with the getAllToolSpecificProperties() and setAllToolSpecificProperties() methods.

For more information, see Harmony Scripting Interface Reference.

TIP It is possible to obtain an array of all the properties for an object by passing this object in the Object.keys() function. This can be useful to obtain the names of the properties in the objects returned by the getAllGlobalProperties() and getAllToolSpecificProperties() methods.

Enhancements

  • Until Harmony 15.0.0, pressing the Spacebar key would reset the angle of the bounding box when manipulating an element with the Transform tool. This behaviour has been restored in Harmony 16.0.1.
  • Views in the Windows top menu are no longer separated in two lists. They are now all listed together and in alphabetical order.
  • When selecting the peg of a camera layer with the  Transform tool, the camera frame now displays in the colour selected in your colour preferences for selecting pegs.

    NOTE To change this preference, in the top menu, select Edit (Windows/Linux) or Harmony Advanced (macOS) > Preferences, then open the General tab, click on Edit Colours and, in the Colours dialog, open the Camera tab. The preferences are named Peg: Animate Current Frame, Peg: Animate Onion Skin Range and Peg: Animate Off.

Fixed Issues

The following issues have been fixed in this release:

  • Harmony fails to connect to the license server when its port and address are specified in the TOONBOOM_LICENSE_FILE environment variable in the port@hostname format.
  • Harmony may crash after customizing the Tools toolbar if the Flat Tools Toolbar preference is enabled.
  • Rare crash when exporting a QuickTime movie from a scene with deformations applied to a drawing layer with the Preserve Line Thickness layer property.
  • Harmony uses 100% of the available CPU power when downloading scene assets from Harmony Server to the local cache while opening a scene.
  • A blank welcome screen appears when opening a scene directly from Finder on macOS 10.14 (Mojave).
  • Glow effects are not rendered when chained with a Cutter effect.
  • 3D Path with control point becomes corrupted when moving element in Animate Off or Animate Onion Skin Range mode.
  • The user interface of the Onion Skin view is not scaled up when running Harmony on a High DPI/Retina display.
  • Several frames are skipped when playing a scene for the first time since opening it on macOS.
  • Double-clicking on the icon of a layer in the Timeline view does not open its Layer Properties dialog.
  • Duplicating a column in the Xsheet view does not duplicate its Key and Breakdown markers.
  • Impossible to use function keys (F1, F2, etc.) in keyboard shortcuts on macOS.
  • The Advanced Onion Skin and Shift and Trace buttons are not available in the Tools toolbar when the Flat Tools Toolbar preference is enabled.
  • The Animation Mode options of the Tools toolbar are still listed in a drop-down instead of as separate buttons when the Flat Tools Toolbar preference is enabled.
  • Harmony does not always display error messages when audio playback fails.
  • Colour of Colour-Card appears lighter when selecting artwork with the Select tool if the Enable Rendering Caching of Composite Nodes preference is on.
  • When the Select Synced Layers option of the Timeline view menu is enabled, layers that are clones of the current layer also get selected.
  • When using the Shift and Trace tool during a camera movement and using Ctrl + click (Windows/Linux) or ⌘ + click (macOS) to select one of the drawings in the Onion Skin, the control box of the Shift and Trace tool is offset from the selected drawing.
  • If Onion Skin was enabled when the scene was opened, clicking on the Onion Skin button in the Tools toolbar only opens the drop-down menu, making it impossible to use this button to disable Onion Skin.
  • The Camera view does not immediately display drawings in their undeformed version when selecting the Rigging tool.
  • Plug-ins that are packaged with Harmony are not loaded when developing plug-ins with the Harmony SDK on macOS.
  • If a script in the scene directory has the same name as a script in the user preferences directory, attempting to edit and save the scene script may fail.
  • Icons and tool tips for scripts added to the Scripting toolbar cannot be customized.
  • 3D Path functions may end up with several keyframes in the same frame, causing their motion path to be corrupted.
  • When pressing and holding E to use the Eraser tool, the tip is always square-shaped regardless of which tip shape is currently selected.
  • When pressing and holding V to use the Stroke tool, the Draw Strokes as Straight Lines and Connect Line Ends tool properties are ignored.
  • The Auto-Flatten tool option of the Brush tool does not work when drawing with a semi-transparent colour.
  • Switching between the Perspective and the Envelope tool while having multiple drawings selected discards the selection and leaves only one drawing selected.
  • If the user uses the Select tool with the Permanent Selection and the Apply to All Frames tool properties enabled, then clicks on the Create Colour Art from Line Art button in the Tool Properties view, the colour art will be generated on all drawings in the current drawing layer, but only for the artwork inside the permanent selection. However, the way the permanent selection is applied to drawings in other frames does not take in account the offset from the drawing layer's parent peg.
  • Pasting artwork with the Perspective or Envelope tool does not work if the Apply to All Frames tool property is enabled.
  • Animating in Animate Onion Skin Range mode does create keyframes on all of the element's functions when the Set Keyframes on all Functions with the Transform Tool preference is enabled.
  • The Generate Auto-Matte command does not work if the Select tool's Apply to Visible Drawing Layers tool property is enabled.
  • The Reduce Drawing Texture Resolution command is applied to all visible drawing layers if the Select tool's Apply to Visible Drawing Layers tool property is enabled.
  • When using any drawing tool with the Apply to Synced Drawing Layers tool property enabled on a drawing layer that has been cloned, the tool affects the current layer and its clone layers, even if the drawings exposed on either layers are different.
  • When the Eraser tool is used with the Apply to Synced Layers tool property enabled, the offset of the parent peg of the synced layer is not applied to the position of the eraser.
  • When using the Reposition All Drawings tool with the Apply to Synced Drawing Layers tool property enabled and the Light Table mode on, layers that are synced with the current layer appear semi-transparent, whereas layers that are affected by the current tool should always appear opaque.
  • When using the Stroke tool with the Apply to Synced Layers tool property enabled and the Light Table mode on, the layers that are synced with the current layer appear semi-transparent, whereas layers that are affected by the current tool should always appear opaque.
  • Using the Eraser tool on a bitmap layer with the Apply to Synced Drawing Layers tool property enabled only erases on the currently selected drawing layer.
  • Using the Eraser tool on a bitmap layer with the Apply to Line Art and Colour Art tool property enabled only erases on the current art layer.
  • The Set Target dialog of the Script Editor view lists script in Harmony's Plugins directory, which cannot be edited in the Script Editor.
  • The scene.checkoutLock(), scene.checkOutDate() and scene.checkOutUser() methods always return the default value.
  • When renaming a drawing layer, its name does not update in the Drawing Substitutions view.
  • The OK and Cancel buttons of the Add Frames dialog are in the wrong order on macOS.
  • The movie file types mov, mp4, mkv and wmv are listed in the File Type drop-down of the Export Images dialog in Harmony Essentials and Harmony Advanced. Attempting to export in one of these file types from the Export Images dialog did not do anything.
  • Both JPG and JPEG are listed in the File Type drop-down of the Export Images dialog in Harmony Advanced.
  • The Select Tool is Lasso preference is still present in the Preferences dialog of Paint. Since Harmony 16.0.0, this preference is updated by selecting either Lasso or Marquee in the Tool Properties view.