Exporting an FxPlug plugin

New in Vuo 2.0

You can turn your Vuo compositions into custom effects, transitions, and generators for Final Cut Pro X and Motion.

Changed in Vuo 2.4Vuo now exports FxPlug version 4 plugins. These plugins work on both X86-64 and Apple Silicon (M1/ARM64), and require Motion or Final Cut Pro version 10.5 or later.

Video effects

  • In Vuo, go to File > New Composition from Template > Export > FxPlug > Effect. This creates a composition that conforms to the Image Filter protocol.

  • Add nodes to the composition to make it alter the input image and output the result.

  • Go to File > Export > FxPlug.

  • When the export is complete, relaunch Final Cut Pro.

  • In Final Cut Pro, find the plugin in the Effects Browser under Video > Vuo.

Transitions

  • In Vuo, go to File > New Composition from Template > Export > FxPlug > Transition. This creates a composition that conforms to the Image Transition protocol.

  • Add nodes to the composition to make it combine the input images and output the result.

  • Go to File > Export > FxPlug.

  • When the export is complete, relaunch Final Cut Pro.

  • In Final Cut Pro, find the plugin in the Transitions Browser under Vuo.

Generators

  • In Vuo, go to File > New Composition from Template > Export > FxPlug > Generator. This creates a composition that conforms to the Image Generator protocol.

  • Add nodes to the composition to make it output a stream of images.

  • Go to File > Export > FxPlug.

  • When the export is complete, relaunch Final Cut Pro.

  • In Final Cut Pro, find the plugin in the Titles and Generators sidebar under Vuo.

Category and name

By default, plugins exported from Vuo are installed in Final Cut Pro under the Vuo category. To choose a different category, before exporting go to Edit > Composition Information…, click on the Exporting tab, and enter an FxPlug Group.

In Edit > Composition Information…, under the General tab, you can change the name of the plugin displayed in Final Cut Pro.

Parameters

When creating a composition to be exported as an FxPlug, the composition will have the published ports required by the protocol. It may also include some of the optional published ports for FxPlug listed in Making compositions fit a mold with protocols.

You can add non-protocol published input ports as well. These appear in the Inspector panel in Final Cut Pro.

Non-protocol published input ports with the following data types are controllable in Final Cut Pro or Motion:

Data type Notes
Real
2D Point
3D Point
4D Point
Integer
Boolean
Text
Color
Image Available in Motion but not Final Cut Pro
Option types Data values edited in Vuo using menus

Published input ports that have menu input editors in Vuo may behave the same or differently in Final Cut Pro, depending on the port’s data type. You can check the port’s data type by clicking on the port to open its popover. If the data type is something other than Integer — for example, the Blend Mode type of the Blend Images node’s Blend Mode port — then Final Cut Pro will present a menu. If the data type is Integer, then Final Cut Pro will present a slider to select by number, with 0 corresponding to the first menu item.

You can adjust the default, minimum, and maximum values for a parameter in Final Cut Pro by editing the published input port in Vuo. Right-click on the published input port and select Edit Value… to change the default value or Edit Details… to change the minimum and maximum.

Image scaling

When Final Cut Pro provides images to your composition via the Image Filter’s image input port, or the Image Transition’s startImage and endImage input ports, Vuo assigns the image a Scale Factor based on the scale of the image relative to the Motion Template. Some image filter nodes use the Scale Factor to keep effects looking consistent between Final Cut Pro’s Better Performance and Better Quality modes (see the vuo.image node set documentation for a list of these nodes). All image filter nodes give their output image the same scale factor as the input image.

Vuo creates Motion Templates with resolution 5120x2700. If, for example, your Final Cut Pro project is 1920x1080, the input image’s Scale Factor will be 0.375 (1920/5120) in Better Quality Mode, or 0.1875 (1920/5120/2) in Better Performance Mode. If you use a Blur Image node with radius 100 points, it will be scaled to 37.5 pixels in Better Quality Mode, or 18.75 pixels in Better Performance mode, resulting in the same effective blur amount in both modes.

Sharing plugins

You can share FxPlug plugins you’ve created in Vuo with other people, even if they don’t have Vuo. There are two files associated with a plugin. To find them:

  • FxPlug wrapper app

    • When exporting a composition, Vuo asks you to choose where to place the wrapper app

  • Motion template

    • In Finder, go to Go > Home.

    • In that folder, navigate to Movies > Motion Templates.

    • Within the Effects, Generators, or Transitions folder, locate the file for your plugin.

You can send these two files to someone else, who can install them in the same location on their computer. Both files are needed for the plugin to work.

Uninstalling plugins

To uninstall a plugin that was exported from Vuo:

  • Quit Final Cut Pro and Motion.

  • Locate the two files described in the previous section, and throw them in the Trash.

Maintaining compatibility between plugin versions

Each FxPlug has a unique identifier (UUID). Vuo generates this unique identifier based on your composition’s Bundle Identifier, which you can set in Edit > Composition Information…, under the Exporting tab. Final Cut Pro X uses this identifier to keep track of which plugin provides the effects for clips on the timeline.

For example, say you release version 1.0 of a plugin, and people start using it in their Final Cut Pro X projects. Then you want to release version 1.1 of your plugin which fixes a small issue — if the new version has the same Bundle Identifier as version 1.0, then the updated plugin will automatically be used throughout people’s existing Final Cut Pro X projects when they install the plugin. You can even change the name of the plugin (Edit > Composition Information…, under the General tab), and it will continue to be associated with people’s existing Final Cut Pro X projects.

Then, say, you want to release version 2.0 of your plugin, which differs significantly from version 1. You don’t want the updated plugin to automatically be used in people’s existing Final Cut Pro X projects, since the changes in 2.0 might cause unwanted appearance changes to their projects. In this case, you should change the Bundle Identifier — for example, add a .2 suffix, as in com.mycompany.myplugin.2 — so people will be able to continue using the old version of your plugin in their existing projects, while also being able to use the new version of your plugin when they pick it from Final Cut Pro X’s Effects, Transitions, or Generators browser.