Professional video applications, with the notable exception of Final Cut Pro, directly support native visual effects plug-ins. Motion supports plug-ins based on the FxPlug SDK, whereas After Effects and Premiere Pro support plug-ins based on the After Effects SDK. Native plug-ins can be made available inside Final Cut Pro through Motion Templates.
FxFactory provides an elegant alternative to coding each plug-in from scratch: you can quickly develop visual effects plug-ins whose functionality is implemented via compositions created through FxCore, our own node-based compositing engine.
FxFactory provides the development environment where plug-ins can be easily created and configured, whereas FxCore provides the necessary runtime to process video frames. Tight integration between FxFactory and FxCore allows plug-ins to delegate most of their rendering tasks to the composition.
Plug-ins are created, stored and distributed inside an FxPack, a special document format based on file packages. This is a file-system entity specific to the Mac, appearing in the Finder as a single file but stored on disk through a directory. Within this directory, FxPacks store compositions, assets and other metadata required by your product. FxPacks are one of many document types that are recognized by FxFactory.
FxPacks – or packs, for short – are available in two kinds: commercial and editable. Products are distributed to end users through commercial plug-in packs. Commercial packs cannot be inspected or modified by users.
On the other hand, any FxFactory user can begin creating their own editable plug-in pack by selecting the New → Plug-Ins command under the File menu:
When you open an editable pack, its plug-in development interface appears:
The default toolbar buttons let you:
On the left-hand side of the window, you will find the Groups and Plug-ins view. The plug-ins you see under these listings will appear under the same group and with the same name in all supported hosts:
The above example displays the group and plug-ins contained by Light Show. You can organize plug-ins any way you like by assigning new group and/or plug-in names. You can move plug-ins from one group to another via drag and drop.
Plug-ins may be disabled via the checkbox control that appears next to their name. This is a finer control than the one given by the plug-in management window, since it lets you disable only certain plug-ins within an FxPack.
On the right-hand side of the window, you can find the most important options available for plug-in development. All plug-ins are based on a composition, a powerful node-based representation of the plug-in rendering process. Older versions of FxFactory used Quartz Composer, an app provided by Apple. More recent versions rely on FxCore, our own Metal-based compositing engine.
Clicking on the icon next to the title of your plug-in lets you select one of three effect types: generator, filter and transition, defined as follows:
Each section is covered separately (coming soon):
FxFactory communicates information to the underlying composition through input mappings. The most obvious mappings are those that link each parameter available in the inspector to an input port in the composition. When the user changes a parameter, such as moving a slider to set the radius of a blur to 10px, the value 10 is fed to the composition when asked to render a new video frame. The host application automatically renders a new frame whenever the user changes a parameter in the inspector.
Many options in FxFactory thus require you to map parameters or environment settings to an input port published by the composition. If this mapping is not established, the plug-in will not function correctly inside the host. Each published port in the composition can be mapped only once inside the plug-in.
Existing mappings can be undone by selecting the first menu item in the corresponding popup menu, marked by the –
symbol.