1.4 Release Notes
Release date: 17th Oct 2022
Scenes created in Cavalry 1.3.1 or older will be converted when opening them in Cavalry 1.4. The file will be copied to a new scene which will need saving – you'll notice the legacy scene will be named <yourSceneName> [Converted].cv
on opening. Any scenes saved in 1.4 onwards will not be compatible with previous versions of Cavalry.
Due to performance issues with Filters and Shaders we have removed the CPU backend in Cavalry 1.4.
New Features
Shapes
- Extrude - Add 2d extrusions to Shapes.
- Connect Shape - New Auto-Bézier mode for drawing smooth curves between points.
- Text along a Path - Position Text along a path. This differs from the Pathfinder in that it is not a deformer.
- Scale to Fit Text Box - A new feature on the Text Shape. This scales the font size to keep large amounts of text inside the text box.
- New Freeze Calculations attribute for Shapes. This can be found under the Advanced tab and can be used to 'pause' calculations in order to optimise Compositions.
Utilities
- Scheduling Group - Procedurally position layers in time.
- Timeline Counter - Use Time or Beat Markers to accumulate or trigger a value over time.
- Accumulator - Create 'stacks' of Shapes or custom layouts.
Effects
- Pixel Sorting Filter - Reorder a Layer's pixels by sorting them according to various attributes such as brightness.
- Slit Scan Filter - Create an animated fly-through effect.
- Scan Lines Filter - Mimic a CRT monitor.
- Scrape Filter - Stretch pixels from a line to create a smeared effect.
- Edge Detection Filter - Convert the boundaries of colors within images to lines.
- Sharpen Filter - Increase the contrast between edge pixels, giving the appearance of greater sharpness.
- Vignette Filter - Simulate the light falloff characteristic when viewing images through certain types of lens.
- Posterize Filter - Create a low color depth look by reducing the color variation of Shapes to solid tones or colours.
- HSV Adjustment Filter - Adjust the Hue, Saturation and Value of a Shape.
- Inner Shadow Filter - Add an inner shadow to Shapes to simulate depth.
Gradients - The Gradient Shader has been rewritten and now has several new features:
- New Stop Interpolations - Blend Color Stops in a wider variety of ways.
- New Jitter attribute - Add noise between Color Stops.
- New Wrap UVs option - Wrap the gradient when there is not a Color Stop at position 0 or 1.
- New Shape Gradient - A polygonal gradient created along a radius (centre out).
The Gradient Shader and Scrape Filter now include new Layer tools for interacting with attributes in the Viewport.
General
- Shortcut Manager - Map custom shortcuts/ hotkeys to commands.
- Upload Preset Manager - Create and edit presets in order to upload files to online locations at render time.
- Hit
/
to launch Command Search to search and run any menu based command. - Time Remapping - Remap timing for Compositions. See Composition Menu.
Scene Window
The Time Editor has been completely rewritten. Notable improvements include:
- It's much faster to interact with.
- You can now Option/Alt + click + drag Keyframes to duplicate them.
- It's now possible to snap Keyframes/Visibility Clip Ends to other Keyframes/Visibility Clip Ends/Time Markers.
- There is now an indication for Animation Curves that are set to loop.
- Pinch to zoom on Trackpads.
- New Time Markers.
- New Beat Markers.
- Custom Magic Easing Expressions - Set a custom expression for Magic Easing via the context menu in the Time Editor or Graph Editor.
- When a Layer is positioned 'off screen' in the Time Editor new
<
or>
indicators will appear to the left or right of the row. Clicking them will pan the view to reframe that Layer. - Known missing features (from 1.3.1):
- Dragging sections of the keybar.
- Contextual menu options for setting Visibility Clip start/ ends.
- The transform tool no longer includes the ripple edit feature.
Render Manager
- New Upload options added the new Advanced tab.
- New Metadata - export metadata alongside any outputs.
Assets Window
- Image Smart Folder - Import an entire directory of Image Assets (stills, movies and image sequences) and then reference them by a 'key' removing the need to import and reference them all individually.
- Audio Smart Folder [beta] - Import an entire directory of Audio Assets (.wav, .aiff) and then reference them by a 'key' removing the need to import and reference them all individually.
Scripting
You can now save encrypted scripts using the Save Encrypted...
button in the JavaScript Editor. Once encrypted, the source will be obfuscated, but the scripts can still be read by the Scripts menu. Use this technique to distribute closed source scripts.
The JavaScript editor has also been improved to auto-indent when creating newlines, and to autocomplete brackets.
New APIs
movePoint
API for moving selected Editable Points by a relative amount.setPointPosition
API for moving selected Editable Points to a given position.hasStroke
,hasFill
andgetCurrentGeneratorType
APIs.preCompose
,createCompReference
andgetCompFromReference
APIs.setFixedHeight(int)
andsetFixedWidth(int)
added to all UI widgetssetBackgroundColor(string)
,setFontSize(int)
andsetTextColor(string)
added toui.Label()
addSeparator(string)
added toui.VLayout()
ui.ColorPicker()
which offers an eye dropper button that can be used to pick colours from the screen.ui.ColorWheel()
which offers a basic colour wheel UI for use in Scripts.ui.Slider()
getArrayCount(layerId:string, attrId:string)
added to theapi
module to return the number of children in an array Attribute.resetAttribute(layerId:string, attrId:string)
andresetLayerAttributes(layerId:string)
have been added to theapi
module.getAppAssetsPath()
method in theapi
module for returning the location of the App resources. This is useful for accessing things like Cavalry's icons for use in your scripts.createTimeMarker(time:int)
removeTimeMarker(markerId)
getTimeMarkers()
added to theapi
module.onValueChanged()
callback function added to theNumericField
api.runDetachedProcess(...)
which will run a process in a separate thread (like an upload or ffmpeg compression).api.makeFolder(...)
which will create a folder on the file system.setState()
function for the ImageButton UI.api.getPlatform()
API. This will return eithermacOS
orWindows
.
Breaking change:
getSelectedAttributes()
now returns an Object containing separate layerIds and attrIds.
Enhancements
General
- Autosave now only saves if something has changed.
- Improvements to how path direction is handled for Lottie export.
- The viewport context menu (right click) has a new option
Copy as JavaScript
. This will copy the draw instructions for a shape, which can then be used in JavaScript to recreate the shape. - You can now set the Composition Background color by drag/dropping a swatch onto the viewport. Dropping a swatch over a shape will still set the colour of that shape.
Reverse Animation
,Delete Animation
andAlign Keyframes
have all been added to the Animation menu (and so can have their hotkeys set in the Shortcut Manager).Reverse Animation
now works on keyframe selections.- New Draw on top of Parent checkbox under the Advanced tab of all Shapes. Use this to reverse the default behaviour for draw order and hierarchies. Note that when this is unchecked, the children will not inherit the parent's Opacity.
User Interface
- New Darker UI to improve contrast.
- The menu item to open the Preferences Window menu has moved from the Window menu to the Edit menu on Windows. It remains in the Cavalry menu for macOS.
- New Shelf items:
- Text along a Path
- Extrude
- Add selection to a Scheduling Group and Sequence.
- Add selection to a Scheduling Group and Stagger.
- There's now a progress bar when loading scenes with many Assets.
- UI Optimisations - the UI should have a reduced impact on playback when
Update the UI During Playback
is turned on. - Quick Add Window search improvements. The matching algorithm has been dramatically improved.
- Quickly clear the Image Cache from the Preferences Window with the new
Minimise Cache
button. - Importing Image Sequences to the Assets Window should now be instant.
- New option to Disconnect All Inputs from list attributes (e.g. the Duplicator's Input Shapes attribute).
Layers
- Improvements to the Intersection Distribution to handle bézier to bézier intersections.
- Multi-line commenting is now supported for the JavaScript Editor.
- Compositions can now be set to loop.
- New Composition Length attribute - this can be used in combination with Time Markers to set up a dynamic timeline.
- Sound Behaviour [beta]:
- New Maximum dB attribute - outputs the peak value of the audio asset.
- New File Length attribute - outputs the duration of the audio asset.
- New Offset attribute for the Image Sampler.
- 3d Matrix now has alignment options.
- The Bounding Box Utility now supports multiple Input Shapes.
- Asset from Smart Folder - You can now reference Assets by
Specific Index
orAuto-Index
.
Notes
- Importing video formats (MP4, HEVC, WebM, APNG and GIF files) is now 5x faster. There is still more work to be done here.
We have made some changes to the graph in order to better handle cycles (e.g. creating connections/ hierarchies where a child can effect its parent, which then affects its child...). We are aware of some instances where connections that were allowed in 1.3.1 (and previous) are now no longer allowed so this may break some old scenes. There is no easy way to 'unpick' this as it's hard to predict every scenario but, while it should only affect a handful of people, please let us know if you suspect this may have affected any of your scenes in order to help us improve how we handle any such scenarios.
On opening a file saved in 1.3.1 or previous where an Image Smart Folder is missing (e.g. is no longer in its original location on the file system), the scene will open but the Image Smart Folder will not appear in the Assets Window. Unfortunately there is no automatic way to recover this but following the steps below will reinstate the scene:
- Reimport the Image Smart Folder to the Assets Window.
- Load the Asset From Smart Folder Utility into the Attribute Editor.
- Drag the Image Smart Folder from the Assets Window into the Asset From Smart Folder Utility's Smart Folder Asset attribute.
If you have trouble locating the missing folder then you can find the original file path in the scene file. Open the .cv file in a Text Editor and at the top of the file you'll see some entries like:
{
"data": {
"filePath": "@assets/Cans"
},
"nodeId": "asset#10",
"type": "file"
},
The filePath
entry shows the folder's name and its location when the file was last saved.
In the event that an Image Smart Folder is missing in scenes saved in 1.4, they will be marked as such and can be relinked as expected.
Notable Bug Fixes
- Unicode characters (like é, â, ö) in a Windows User name were preventing sign in from working. This is now fixed.