Toon Boom Harmony 16.0.0
Here is a list of changes in Harmony 16.0.0, build 14155.
- Bug Fixes
|Drawing Substitutions View||
The new Drawing Substitutions view displays all of the drawings contained in the selected layer as thumbnails, and allows you to quickly swap which drawing is exposed at the current frame simply by clicking on it
|Animate Onion Skin Range||
With the Animate Onion Skin Range mode, you can animate a layer or peg on every frame in the Onion Skin range simultaneously. This can allow you to offset the position of a layer or peg in several keyframes simultaneously. It can also work with any range of frames, even if it does not have keyframes, as this mode creates keyframes at the beginning and end of the Onion Skin range if needed.
To use the Animate Onion Skin Range mode, double-click on the Animate Current Frame button in the Tools toolbar and, in the pop-up menu, select Animate Onion Skin Range
|Hide Pivot for Advanced Animation Tools||You can now hide the pivot of the selected layer when using the Translate, Rotate, Scale and Skew tools. This can be useful if you want to avoid accidentally moving the pivot point, which, when done with one of these tools, causes the selected layer to be offset in all of its existing animation keyframes. To do this, click on the Disable Pivot Manipulator button in the Tool Properties view.|
|Better Onion Skin Handles||
When Onion Skin is enabled, the handles around the Timeline playhead, with which you can set the amount of frames before and after the current frame to display in the Onion Skin, have been made significantly easier to see and to use
The new Stamp tool can be used to stamp one or several drawings into your artwork. It can be used to stamp drawings one at a time or to draw strokes with it. The behaviour of the stamp tool when drawing strokes can be customized in many ways.
NOTE The Stamp tool replaces the Dynamic Brush option of the Brush tool in Harmony 15.0 and earlier.
|Apply to All Drawings / Drawings in Onion Skin Range||
You can now use the Select, Cutter and Paint tool on multiple drawings simultaneously. By enabling the Apply to Onion Skin Range tool mode in the Tool Properties, the Select, Cutter and Paint tool can be used on every drawing displayed in the Onion Skin simultaneously. The Apply to Onion Skin Range option is available in a pop-up menu that you can open by double-clicking on the Apply to All Drawings button in the Tool Properties view.
It is also easier to use these tools on all drawings in the current layer. Previously, to do this, you had to enable the Permanent Selection and Apply to Multiple Drawings tool modes at the same time. Now, you can just enable the Apply to All Drawings tool mode and, as long as it is enabled, the tool will work on all drawings in the current layer simultaneously.
For more information, see Painting Several Drawings Simultaneously, Paint Tool Properties, Selecting Artwork in Several Drawings, Select Tool Properties, Cutting Artwork in Several Drawings and Cutter Tool Properties
|Apply to Selected Layers / All Layers||
You can now use the Select, Cutter, Edit Texture/Gradient and Paint tools on multiple layers simultaneously. There are
For more information, see Painting Several Layers Simultaneously, Paint Tool Properties, Selecting Artwork in Several Layers, Select Tool Properties, Cutting Artwork in Multiple Layers, Cutter Tool Properties and Edit Gradient/Texture Tool Properties.
|Relative Brush Size||
The new Proportional to Camera option of the Brush tool will adjust the size of your brush relative to the zoom level of the camera. This allows you to preserve your line thickness through camera zoom-ins and zoom-outs in paperless animation productions.
To enable this option, click on the Show Extended Properties button in the Tool Propeties view and, in the Brush Tool Properties dialog, check the Proportional to Camera checkbox
The Select, Cutter and Reposition All Drawings now have an Easy Drag tool mode. When enabled, you can click anywhere inside the selection control box to drag the selection. By default, you have to click inside the artwork, which may be difficult when manipulating line art.
You can now temporarily flip the contents of the Camera and Drawing views horizontally by enabling Mirror View.
To enable Mirror View, click on the Mirror View button in the Camera or Drawing view toolbar, or select View > Mirror View from the top menu
|Lasso/Marquee Selection Mode||
In the Tool Properties view, if you set the selection mode for the current tool to either Lasso or Marquee, the mode will be automatically saved in your preferences and will persist after you close and relaunch Harmony.
NOTE The selection mode can be set when using the Transform, Select, Cutter, Contour Editor, Pencil Editor, Perspective or Envelope tools. Setting the selection mode for any of these tools will change the selection mode for all of these tools.
The new Mini Playback toolbar allows you to quickly play a short span of animation before and after the current frame. This can be useful for previewing the part of your scene's animation that you're working on
|Persistent Start and Stop frames||The Start and Stop frames set in the Playback toolbar are now saved in the scene. They will persist after closing and reopening the scene.|
|Decimal Frame Rate||
Harmony now supports setting the scene's frame rate to a decimal number. This can accommodate pipelines that use 23.976 frames per second or 29.970 frames per second as their frame rate for compatibility with legacy standard displays
|Export Animated GIF||
You can now export a scene, or part of your scene, as an animated GIF image.
|Timeline Markers in Harmony Essentials||Timeline Markers, a feature previously exclusive to Harmony Advanced and Harmony Premium, are now available in Harmony Essentials to accommodate the creation of gaming rigs.|
|Smart Script Management||
In the past, scripts packaged with Harmony were all automatically copied to your preferences folder, in the same location as your custom scripts. Now, scripts packaged with Harmony are only copied to your preferences if you make modifications to them. Otherwise, they are stored and executed from the Harmony installation folder.
This solves several problems:
|Custom Script Folder||
You can now set a custom location in which to store scripts. To do this, you must set the TOONBOOM_GLOBAL_SCRIPT_LOCATION environment variable to the location where you want to store scripts. The scripts in this location will be available in the Script Editor alongside scripts that are packaged with Harmony and scripts in your user preferences
|User Interface Responders||The scripting interface now provides you with a list of responders from the Harmony user interface. You can obtain this list with the getResponderList() method. You can obtain the list of actions for a given responder with the getActionList() method
|Scene Modification Callbacks||It is now possible to bind callbacks to scene modifications using the SceneChangeNotifier class. This class contains several signals that are triggered when different kinds of changes are done to the scene, and which can be bound to functions
|Perform actions on specific layers||It is now possible to perform actions on specific nodes by specifying their absolute path in the Node view. Previously, the Action.perform() method would only take two parameters: The action to executre and its target responder, and would always work on the selected nodes only. You can now optionally specify the target node or nodes as its third parameter
|Documentation of widgets||Examples of how to create and configure user interface widgets has been added to the Harmony scripting interface documentation
|Documentation of the node class||Examples of how to use the node class have been added to the Harmony scripting interface documentation
|Documentation of the Attribute class||Examples of how to use the Attribute class have been added to the Harmony scripting interface documentation
|Set the value of an attribute at any frame||
The new setValueAt method of the Attribute class can set the value of the attribute at a specific frame rather than at the current frame
|Obtain an attribute's sub-attributes||The new getSubAttributes() method of the Attribute class will now return the list of the attribute's sub-attributes
|Convert a coordinate for single axis between fields and OpenGL coordinates||
The following methods were added to the scene class to convert the coordinate for a single axis from field coordinates to OpenGL coordinates, and from OpenGL to field coordinates: toOGLX(), toOGLY(), toOGLZ(), fromOGLX(), fromOGLY() and fromOGLZ()
|Get individual version numbers||The new getMajorVersion(), getMinorVersion(), getPatchVersion() and getBuildNumber() methods of the about class will provide their respective values from the currently installed version of Harmony
|Scriptable Toolbars and Views||
It is now possible to create toolbars and views using the Harmony scripting interface, by creating packages containing their functionalities, user interface and assets.
You can find an example of a package containing a toolbar and a view created through the scripting interface in the Plugins/ScriptingInterfaces/Resources/packages/MasterController directory inside the Harmony installation directory:
You can create user packages in the packages sub-directory of the 1600-scripts directory of your user preferences. This directory is the following location:
|Multiply Quaternions||The multiply method was added to the Quaternion class. It allows you to multiply the quaternion with another quaternion.|
- It is no longer possible to make any changes to a layer's exposure or keyframes in the Timeline view when that layer is locked.
- The Layer Properties dialog now displays the type of layer in its title bar. Likewise, the Layer Properties view displays the type of layer in the Type field, just under the Enable/Disable checkbox and above the Name field.
Performance when using the Render Preview mode of the Camera view has been improved.
- Performance when rendering images imported as original bitmaps has been improved.
Users must now double-click on a layer's name in the Timeline view to rename them, to avoid making the rename field appear by accident when selecting the layer.
- Fixed slow rendering of drawings with deformations in the Top and Side views.
- Fixed issue where setting a workspace with Unicode characters in its name as the current workspace would make Harmony load the default workspace on launch.
- Fixed issue causing some layers in imported PSD files to be imported with incorrect proportions.
Fixed issue causing users to be prompted to activate their software when upgrading to a new version of Harmony that requires an update to the licensing system.
- Removed the Control Selection Mode tool property of the Transform tool from Harmony Essentials and Harmony Advanced, as it is only useful for features that are exclusive to Harmony Premium.
Fixed issue causing the scope of variables declared by a script called by the include() method to be corrupted. .
- Fixed small a memory leak that occurred when instantiation a node containing a 3D model with the Model3D class in the Harmony scripting interface.
Fixed issue causing the Select tool to sometimes fail selecting artwork in a drawing layer rigged as the parent of another drawing layer.
- Fixed issue causing script buttons added to a toolbar when running Harmony in Japanese or Chinese to not run and to not display their icon.
- Fixed issue causing the number input field widget (NumberEdit) created through the Harmony scripting interface to ignore its minimum and maximum value properties.
- Fixed issue causing some effects to stop working in the Render Preview mode of the Camera view, specifically when the Transform tool is slected and the mouse cursor is in the Camera view.
- Fixed issue where the bounding box of a layer selected with the Transform tool would not rotate when rotating the Camera view.
- Fixed issue where attempting to install an older version of Harmony over a more recent version of Harmony could corrupt the installation on Windows.