I have been developing some crazy specific custom controls in After Effects and I have to build the markup in the PresetEffects.xml every time I get a wonderful upgrade, I love my code because it wipes out the file and replaces it with the new one. I am wondering if there is a way to utilize the XML markup for embedding an external xml file within the same directory into this PresetEffects.xml file rather than having to add ALL this code every time. I know a lot of Third Party developers would love something as simple as adding 1 line of code to that file and then adding their effects.xml file in that directory. It would be clean and great for development.
Currently tried nearly all variations of the entity tag that should allow this to embed the external xml, but I think I am missing some step or will need the ADOBE programmers to allow such a feature.
First you declare the entity you want to include, in the top portion of the DOCTYPE Effects tag, and then you refer to it by name as an Entity Reference later at the end of the Effects tag.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Effects[
<!-- Inline DTD for After Effects effect definitions -->
<!-- Current used only to define parameters for "pseudo" effects used for -->
<!-- presets. -->
<!ENTITY myEffects SYSTEM "myEffects.xml"> <!-- This line of code points to a file that exists in the same directory as the PresetEffects.xml -->
<!-- Definitions of objects in this file, for validating parsers and editors -->
<!ELEMENT Effects (Effect)*>
~ THIS IS ALL THE ADOBE CODE ~
]>
<Effects>
<Effect matchname="ADBE Color Swirl" name="$$$/AE/Preset/ColorSwirl=Color Swirl">
<Slider name="$$$/AE/Preset/TransitionCompletion=Transition Completion" DISPLAY_PERCENT="true" default="0" valid_min="0" valid_max="100"/>
<Color name="$$$/AE/Preset/FinalColor=Final Color" default_red="20" default_green="192" default_blue="50"/>
</Effect>
~ THIS IS ALL THE ADOBE CODE ~
&myEffects; <!-- at the end of the code add this Entity Reference and it will place your effects here. -->
</Effects>
The external xml page only needs the correct Effect mark up.
<Effect matchname="Pseudo/McFader" name="$$$/AE/Preset/McFaderSettings=EB2 Darth Fader">
<Checkbox name="$$$/AE/Preset/EffectSwitch=Effect (On/Off)" default="true"/>
<Slider name="$$$/AE/Preset/FadePixels=Fade Opacity" default="100" valid_min="0" valid_max="100" slider_min="0" slider_max="100" precision="0" DISPLAY_PERCENT="true"/>
<Checkbox name="$$$/AE/Preset/FadeIn=Fade In (On/Off)" default="true"/>
<Slider name="$$$/AE/Preset/FadeDurr=Duration In (Frames)" default="8" valid_min="0" valid_max="100" slider_min="0" slider_max="10" precision="0"/>
<Checkbox name="$$$/AE/Preset/FadeOut=Fade Out (On/Off)" default="true"/>
<Slider name="$$$/AE/Preset/FadeDurr=Duration Out (Frames)" default="8" valid_min="0" valid_max="100" slider_min="0" slider_max="10" precision="0"/>
</Effect>
This will prevent countless hours and headaches of messing up the Adobe file on updates and development.
Please let me know if anyone has figured out this quandary.