- Development UI
- Standard Parameters
- Unique Parameters
- Data Structures
Let's start with a simple case. Your filter is named “Kablammo”:
Suppose that you need to do one of the following:
Items 1 to 3 in the above list can be done “in place”. That means you can (and should) make changes to your existing plug-in, and simply bump up its version number:
If your filter happens to be the main feature of your FxPack (perhaps it is the only plug-in in there?) then you should also bump up the version number for the product as a whole:
If you need to do Item 4, which means adding new parameters that weren't there before, I recommend that you ask beforehand if it can be done safely. Why is adding new parameters such a big deal? Well it isn't for Motion, After Effects and Final Cut Pro 7. But if you add the wrong parameter in the wrong place, it will simply crash Final Cut Pro 6.
A good rule of thumb: always think of Final Cut Pro as a 80-year old man who doesn't like change. It hates change, and it makes a mental note of how your plug-in “looked like” when you saved the project (what parameters were visible, what menu items were available in popup menus, etc.) Even if you make changes to a plug-in, Final Cut Pro will ignore those changes and display to the user only what it “remembers”.
Suppose instead that you are planning a pretty significant update to your plug-in. Whether you want to add a few features or completely redesign the product, the end result is the same: don't mess with the existing plug-in, but create a new one instead.
Let's go back to the “Kablammo” filter. You want to offer a new version, but you obviously don't want to upset your existing users by making all previous projects incompatible with the new version. Here's what you should do:
Remember, our goal was to preserve backwards compatibility. The fact that Kablammo 1.0 is still there satisfies that requirement. However, it won't look very elegant if the user sees two “Kablammo” plug-ins under the same menu. To fix this, select the old plug-in, Kablammo 1.0, and mark is as obsolete:
When you mark a plug-in as obsolete, it will still be available when the user opens up an old project (no missing plug-in errors for the user) but it will not be visible in the host UI. This is like having the best of both worlds. This feature requires some “cooperation” from the host, and it's available in all versions of After Effects, as well as Final Cut Pro 7 and Motion 4.
What if one or two users actually want to use the “obsolete” version again? It's no longer available in the host menus, so how should they access it? Users can simply disable the “Hide obsolete plug-ins” option in the FxFactory Preferences:
Disabling this option makes all obsolete plug-ins magically available again inside host menus.
The bottom line: whatever changes you are planning to a product, it makes sense to work inside the same FxPack, whether it's a small or major update. Resist the temptation to start with a new FxPack: there is little to be gained from doing that (and much to lose, since backwards compatibility is a pretty big deal for users).