mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-06 18:41:26 +00:00
Scripting: After Effects match names for 14 effects and Casts Shadows (#3122)
* #3113: use After Effects' effect match names in scripting Checked every row of crates/script/src/matchnames.rs against After Effects 26.2 (app.effects, canAddProperty and the layer property trees). Fourteen effect names were wrong: twelve did not exist (Pixel Motion Blur is ADBE OFMotionBlur, Shadow/Highlight is ADBE ShadowHighlight, Ellipse is ADBE ELLIPSE, ...), and Noise and Photo Filter pointed at After Effects' hidden obsolete versions (now ADBE Noise2 and ADBE PhotoFilterPS). A light's Casts Shadows is ADBE Casts Shadows. The old names stay accepted for lookup (addProperty, property(), and parameters such as "ADBE Noise-0001"), so existing scripts keep working; .matchName emits only the After Effects name. A names-only fixture of After Effects' first-party match names backs the new test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Scripting: match names that changed only in case still find effects and parameters property("ADBE Ellipse") and "ADBE Grow Bounds-0001" found nothing after the names became ADBE ELLIPSE / ADBE GROW BOUNDS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9408d70da0
commit
fee50dbfd1
4 files changed
+490
-17
No files matched your search
+108
-17
@@ -149,7 +149,7 @@ const LIGHT: &[(&str, &str)] = &[
|
||||
("falloff", "ADBE Light Falloff Type"),
|
||||
("radius", "ADBE Light Falloff Start"),
|
||||
("falloffDistance", "ADBE Light Falloff Distance"),
|
||||
("castsShadows", "ADBE Light Casts Shadows"),
|
||||
("castsShadows", "ADBE Casts Shadows"),
|
||||
("shadowDarkness", "ADBE Light Shadow Darkness"),
|
||||
("shadowDiffusion", "ADBE Light Shadow Diffusion"),
|
||||
];
|
||||
@@ -309,12 +309,12 @@ pub const EFFECTS: &[(&str, &str)] = &[
|
||||
("ec.color.changetocolor", "ADBE Change To Color"),
|
||||
("ec.color.colorama", "APC Colorama"),
|
||||
("ec.color.leavecolor", "ADBE Leave Color"),
|
||||
("ec.color.photofilter", "ADBE Photo Filter"),
|
||||
("ec.color.photofilter", "ADBE PhotoFilterPS"),
|
||||
("ec.color.vibrance", "ADBE Vibrance"),
|
||||
("ec.color.lumetri", "ADBE Lumetri"),
|
||||
("ec.color.shadowhighlight", "ADBE Shadow/Highlight"),
|
||||
("ec.color.selectivecolor", "ADBE Selective Color"),
|
||||
("ec.color.gammapedestalgain", "ADBE Gamma/Pedestal/Gain"),
|
||||
("ec.color.shadowhighlight", "ADBE ShadowHighlight"),
|
||||
("ec.color.selectivecolor", "ADBE SelectiveColor"),
|
||||
("ec.color.gammapedestalgain", "ADBE Gamma/Pedestal/Gain2"),
|
||||
("ec.color.equalize", "ADBE Equalize"),
|
||||
("ec.color.autocontrast", "ADBE AutoContrast"),
|
||||
("ec.color.autolevels", "ADBE AutoLevels"),
|
||||
@@ -351,15 +351,15 @@ pub const EFFECTS: &[(&str, &str)] = &[
|
||||
("ec.generate.grid", "ADBE Grid"),
|
||||
("ec.generate.checkerboard", "ADBE Checkerboard"),
|
||||
("ec.generate.circle", "ADBE Circle"),
|
||||
("ec.generate.ellipse", "ADBE Ellipse"),
|
||||
("ec.generate.ellipse", "ADBE ELLIPSE"),
|
||||
("ec.generate.cellpattern", "ADBE Cell Pattern"),
|
||||
("ec.generate.lensflare", "ADBE Lens Flare"),
|
||||
("ec.generate.vegas", "ADBE Vegas"),
|
||||
("ec.generate.writeon", "ADBE Write On"),
|
||||
("ec.generate.vegas", "APC Vegas"),
|
||||
("ec.generate.writeon", "ADBE Write-on"),
|
||||
("ec.generate.audiospectrum", "ADBE AudSpect"),
|
||||
("ec.generate.audiowaveform", "ADBE AudWave"),
|
||||
("ec.generate.beam", "ADBE Laser"),
|
||||
("ec.generate.radiowaves", "ADBE Radio Waves"),
|
||||
("ec.generate.radiowaves", "APC Radio Waves"),
|
||||
("ec.generate.scribble", "ADBE Scribble Fill"),
|
||||
("ec.generate.paintbucket", "ADBE Paint Bucket"),
|
||||
("ec.key.colorkey", "ADBE Color Key"),
|
||||
@@ -371,12 +371,12 @@ pub const EFFECTS: &[(&str, &str)] = &[
|
||||
("ec.key.spill", "ADBE Spill2"),
|
||||
("ec.matte.simplechoker", "ADBE Simple Choker"),
|
||||
("ec.matte.mattechoker", "ADBE Matte Choker"),
|
||||
("ec.noise.noise", "ADBE Noise"),
|
||||
("ec.noise.noise", "ADBE Noise2"),
|
||||
("ec.noise.fractal", "ADBE Fractal Noise"),
|
||||
("ec.noise.median", "ADBE Median"),
|
||||
("ec.noise.addgrain", "VISINF Grain Implant"),
|
||||
("ec.noise.dustscratches", "ADBE Dust & Scratches"),
|
||||
("ec.noise.turbulent", "ADBE Turbulent Noise"),
|
||||
("ec.noise.turbulent", "ADBE AIF Perlin Noise 3D"),
|
||||
("ec.perspective.dropshadow", "ADBE Drop Shadow"),
|
||||
("ec.perspective.radialshadow", "ADBE Radial Shadow"),
|
||||
("ec.perspective.bevelalpha", "ADBE Bevel Alpha"),
|
||||
@@ -401,32 +401,73 @@ pub const EFFECTS: &[(&str, &str)] = &[
|
||||
("ec.time.echo", "ADBE Echo"),
|
||||
("ec.time.posterizetime", "ADBE Posterize Time"),
|
||||
("ec.time.timedisplacement", "ADBE Time Displacement"),
|
||||
("ec.time.timedifference", "ADBE Time Difference"),
|
||||
("ec.time.pixelmotionblur", "ADBE Pixel Motion Blur"),
|
||||
("ec.time.timedifference", "ADBE Difference"),
|
||||
("ec.time.pixelmotionblur", "ADBE OFMotionBlur"),
|
||||
("ec.time.timewarp", "ADBE Timewarp"),
|
||||
("ec.transition.linearwipe", "ADBE Linear Wipe"),
|
||||
("ec.transition.radialwipe", "ADBE Radial Wipe"),
|
||||
("ec.transition.venetian", "ADBE Venetian Blinds"),
|
||||
("ec.transition.blockdissolve", "ADBE Block Dissolve"),
|
||||
("ec.transition.gradientwipe", "ADBE Gradient Wipe"),
|
||||
("ec.transition.iriswipe", "ADBE Iris Wipe"),
|
||||
("ec.transition.iriswipe", "ADBE IRIS_WIPE"),
|
||||
("ec.utility.applylut", "ADBE Apply Color LUT2"),
|
||||
("ec.utility.cineon", "ADBE Cineon Converter2"),
|
||||
("ec.utility.growbounds", "ADBE Grow Bounds"),
|
||||
("ec.utility.growbounds", "ADBE GROW BOUNDS"),
|
||||
];
|
||||
|
||||
fn find<'a>(t: &'a [(&str, &'a str)], k: &str) -> Option<&'a str> {
|
||||
t.iter().find(|(a, _)| *a == k).map(|(_, b)| *b)
|
||||
}
|
||||
|
||||
/// Effect match names that resolve to one of our effects but are not the name we emit (#3113):
|
||||
/// After Effects' hidden obsolete versions (`ADBE Noise`, `ADBE Photo Filter`), which its
|
||||
/// `addProperty` still accepts, and the names earlier EffectCraft versions emitted by mistake,
|
||||
/// which scripts written against them may use. Lookup only: `effect()` gives the `EFFECTS` name.
|
||||
const LEGACY_EFFECTS: &[(&str, &str)] = &[
|
||||
("ADBE Noise", "ec.noise.noise"),
|
||||
("ADBE Photo Filter", "ec.color.photofilter"),
|
||||
("ADBE Shadow/Highlight", "ec.color.shadowhighlight"),
|
||||
("ADBE Selective Color", "ec.color.selectivecolor"),
|
||||
("ADBE Gamma/Pedestal/Gain", "ec.color.gammapedestalgain"),
|
||||
("ADBE Vegas", "ec.generate.vegas"),
|
||||
("ADBE Write On", "ec.generate.writeon"),
|
||||
("ADBE Radio Waves", "ec.generate.radiowaves"),
|
||||
("ADBE Turbulent Noise", "ec.noise.turbulent"),
|
||||
("ADBE Time Difference", "ec.time.timedifference"),
|
||||
("ADBE Pixel Motion Blur", "ec.time.pixelmotionblur"),
|
||||
("ADBE Iris Wipe", "ec.transition.iriswipe"),
|
||||
];
|
||||
|
||||
/// AE match name of an effect id (falls back to the id).
|
||||
pub fn effect(id: &str) -> String {
|
||||
find(EFFECTS, id).map(str::to_string).unwrap_or_else(|| id.to_string())
|
||||
}
|
||||
|
||||
/// Our effect id for an AE effect match name.
|
||||
/// Our effect id for an AE effect match name (or a legacy one, see `LEGACY_EFFECTS`).
|
||||
pub fn effect_from_match(m: &str) -> Option<&'static str> {
|
||||
EFFECTS.iter().find(|(_, b)| b.eq_ignore_ascii_case(m)).map(|(a, _)| *a)
|
||||
EFFECTS
|
||||
.iter()
|
||||
.find(|(_, b)| b.eq_ignore_ascii_case(m))
|
||||
.map(|(a, _)| *a)
|
||||
.or_else(|| LEGACY_EFFECTS.iter().find(|(b, _)| b.eq_ignore_ascii_case(m)).map(|(_, a)| *a))
|
||||
}
|
||||
|
||||
/// The current match name for a legacy name a script may still use: a `LEGACY_EFFECTS` effect
|
||||
/// name, one of its parameters (`ADBE Noise-0001` → `ADBE Noise2-0001`), or the light's Casts
|
||||
/// Shadows under its earlier name. `None` when `name` is not a legacy name.
|
||||
pub fn current_name(name: &str) -> Option<String> {
|
||||
if name == "ADBE Light Casts Shadows" {
|
||||
return Some("ADBE Casts Shadows".into());
|
||||
}
|
||||
let legacy = |m: &str| LEGACY_EFFECTS.iter().find(|(b, _)| b.eq_ignore_ascii_case(m)).map(|(_, id)| effect(id));
|
||||
if let Some(m) = legacy(name) {
|
||||
return Some(m);
|
||||
}
|
||||
let (fx, n) = name.rsplit_once('-')?;
|
||||
if n.len() != 4 || !n.bytes().all(|b| b.is_ascii_digit()) {
|
||||
return None;
|
||||
}
|
||||
legacy(fx).map(|m| format!("{m}-{n}"))
|
||||
}
|
||||
|
||||
/// Our shape item kind (`layer.addShapeItem`) for an AE match name, our match id or a display
|
||||
@@ -573,6 +614,56 @@ pub fn node(chain: &[&Node]) -> String {
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
/// After Effects 26.2's `app.effects` (first-party match names and categories), #3113.
|
||||
const AE_EFFECTS: &str = include_str!("../tests/fixtures/ae-effect-match-names.tsv");
|
||||
|
||||
fn ae_effects() -> Vec<(&'static str, &'static str)> {
|
||||
AE_EFFECTS.lines().filter(|l| !l.starts_with('#') && !l.is_empty()).map(|l| l.split_once('\t').unwrap_or((l, ""))).collect()
|
||||
}
|
||||
|
||||
/// #3113: every effect match name we emit is one After Effects lists (case matters: its
|
||||
/// `addProperty("ADBE Ellipse")` fails), and the current version, not a hidden obsolete one,
|
||||
/// unless After Effects only has that one.
|
||||
#[test]
|
||||
fn effect_names_are_after_effects_names() {
|
||||
let ae = ae_effects();
|
||||
// Obsolete in After Effects without a current replacement (Puppet is added by its tool).
|
||||
let only_obsolete = ["ADBE Color Key", "ADBE Luma Key", "ADBE FreePin3"];
|
||||
for (id, m) in EFFECTS {
|
||||
let Some((_, cat)) = ae.iter().find(|(n, _)| n == m) else { panic!("{id}: After Effects has no effect {m:?}") };
|
||||
assert!(!cat.contains("Obsolete") || only_obsolete.contains(m), "{id}: {m:?} is After Effects' obsolete version");
|
||||
}
|
||||
assert_eq!(effect("ec.noise.noise"), "ADBE Noise2");
|
||||
assert_eq!(effect("ec.time.pixelmotionblur"), "ADBE OFMotionBlur");
|
||||
assert_eq!(effect("ec.generate.ellipse"), "ADBE ELLIPSE");
|
||||
assert_eq!(effect("ec.color.photofilter"), "ADBE PhotoFilterPS");
|
||||
}
|
||||
|
||||
/// #3113: the names earlier versions emitted (and After Effects' obsolete ones) still resolve,
|
||||
/// but none shadows a current name.
|
||||
#[test]
|
||||
fn legacy_effect_names_still_resolve() {
|
||||
for (old, id) in LEGACY_EFFECTS {
|
||||
assert_eq!(effect_from_match(old), Some(*id));
|
||||
assert!(!EFFECTS.iter().any(|(_, m)| m.eq_ignore_ascii_case(old)), "{old} is a current name");
|
||||
assert_eq!(current_name(old), Some(effect(id)));
|
||||
}
|
||||
assert_eq!(effect_from_match("ADBE Pixel Motion Blur"), Some("ec.time.pixelmotionblur"));
|
||||
assert_eq!(current_name("ADBE Noise-0001").as_deref(), Some("ADBE Noise2-0001"));
|
||||
assert_eq!(current_name("ADBE Light Casts Shadows").as_deref(), Some("ADBE Casts Shadows"));
|
||||
assert_eq!(current_name("ADBE Noise2-0001"), None);
|
||||
assert_eq!(current_name("ADBE Noise-01"), None);
|
||||
assert_eq!(current_name("ADBE Gaussian Blur 2"), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn light_casts_shadows_is_after_effects_name() {
|
||||
let n = |m: &str| Node::from(effectcraft_project::PropGroup::new(1, m, m));
|
||||
let (light, mat, casts) = (n("lightOptions"), n("materialOptions"), n("castsShadows"));
|
||||
assert_eq!(node(&[&light, &casts]), "ADBE Casts Shadows");
|
||||
assert_eq!(node(&[&mat, &casts]), "ADBE Casts Shadows");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn effect_names_round_trip() {
|
||||
for (id, m) in EFFECTS {
|
||||
|
||||
@@ -451,6 +451,9 @@ fn find_child<'a>(l: &'a Layer, g: &'a PropGroup, k: &str, depth: u8) -> Option<
|
||||
g.children
|
||||
.iter()
|
||||
.find(|n| chain_of(n) == k)
|
||||
.or_else(|| matchnames::current_name(k).and_then(|m| g.children.iter().find(|n| chain_of(n) == m)))
|
||||
// Match names that changed only in case (`ADBE Ellipse` is now `ADBE ELLIPSE`, #3113).
|
||||
.or_else(|| g.children.iter().find(|n| chain_of(n).eq_ignore_ascii_case(k)))
|
||||
.or_else(|| g.children.iter().find(|n| n.name() == k))
|
||||
.or_else(|| g.children.iter().find(|n| n.match_id() == k))
|
||||
.or_else(|| g.children.iter().find(|n| n.name().eq_ignore_ascii_case(k)))
|
||||
|
||||
@@ -139,6 +139,42 @@ fn fill_parameters_use_documented_match_names() {
|
||||
assert_eq!(o.result, json!("Color|All Masks|ADBE Fill-0007"));
|
||||
}
|
||||
|
||||
/// #3113: effects carry After Effects' match names (`ADBE Noise2`, `ADBE OFMotionBlur`); the
|
||||
/// names earlier versions emitted still add and find the effect and its parameters.
|
||||
#[test]
|
||||
fn effects_use_after_effects_match_names_and_accept_legacy_ones() {
|
||||
let mut s = session();
|
||||
let o = ok(
|
||||
&mut s,
|
||||
r#"var c = app.project.items.addComp("N", 100, 100, 1, 1, 12); var l = c.layers.addSolid([1,1,1], "S", 100, 100, 1);
|
||||
var fx = l.property("ADBE Effect Parade");
|
||||
var a = fx.addProperty("ADBE Noise2"), b = fx.addProperty("ADBE Noise"), m = fx.addProperty("ADBE OFMotionBlur");
|
||||
var p = fx.addProperty("ADBE Pixel Motion Blur");
|
||||
[a.matchName, b.matchName, m.matchName, p.matchName, a.property("ADBE Noise2-0001").name,
|
||||
fx.property("ADBE Noise").matchName, a.property("ADBE Noise-0001").name, fx.numProperties]"#,
|
||||
);
|
||||
assert_eq!(
|
||||
o.result,
|
||||
json!(["ADBE Noise2", "ADBE Noise2", "ADBE OFMotionBlur", "ADBE OFMotionBlur", "Amount of Noise", "ADBE Noise2", "Amount of Noise", 4])
|
||||
);
|
||||
}
|
||||
|
||||
/// #3113: names that changed only in case (`ADBE Ellipse` → `ADBE ELLIPSE`, `ADBE Grow Bounds` →
|
||||
/// `ADBE GROW BOUNDS`) still find the effect and its parameters.
|
||||
#[test]
|
||||
fn match_names_that_changed_case_still_find_effects_and_parameters() {
|
||||
let mut s = session();
|
||||
let o = ok(
|
||||
&mut s,
|
||||
r#"var c = app.project.items.addComp("E", 100, 100, 1, 1, 12); var l = c.layers.addSolid([1,1,1], "S", 100, 100, 1);
|
||||
var fx = l.property("ADBE Effect Parade");
|
||||
var e = fx.addProperty("ADBE Ellipse"), g = fx.addProperty("ADBE Grow Bounds");
|
||||
[e.matchName, fx.property("ADBE Ellipse").matchName, e.property("ADBE Ellipse-0001").matchName,
|
||||
g.matchName, fx.property("ADBE Grow Bounds").matchName, g.property("ADBE Grow Bounds-0001").matchName]"#,
|
||||
);
|
||||
assert_eq!(o.result, json!(["ADBE ELLIPSE", "ADBE ELLIPSE", "ADBE ELLIPSE-0001", "ADBE GROW BOUNDS", "ADBE GROW BOUNDS", "ADBE GROW BOUNDS-0001"]));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stroke_parameters_use_after_effects_match_names() {
|
||||
// #1405: `ADBE Stroke-0002` is Stroke's Color in After Effects, not All Masks.
|
||||
|
||||
@@ -0,0 +1,343 @@
|
||||
# After Effects 26.2 app.effects: match name<TAB>category, first-party names only (ADBE, APC, VISINF).
|
||||
# Names only, read back from the running application (#3113). Categories "Obsolete"/"_Obsolete" are hidden legacy versions. "-" = no category.
|
||||
ADBE 3D Glasses _Obsolete
|
||||
ADBE 3D Glasses2 Perspective
|
||||
ADBE 3D Tracker Perspective
|
||||
ADBE 4ColorGradient Generate
|
||||
ADBE AIF Perlin Noise 3D Noise & Grain
|
||||
ADBE ATG Extract Keying
|
||||
ADBE AUX CHANNEL EXTRACT 3D Channel
|
||||
ADBE Alpha Levels2 _Obsolete
|
||||
ADBE Alpha Levels3 _Obsolete
|
||||
ADBE Angle Control Expression Controls
|
||||
ADBE Apply Color LUT _Obsolete
|
||||
ADBE Apply Color LUT2 Utility
|
||||
ADBE Arithmetic Channel
|
||||
ADBE Aud BT Audio
|
||||
ADBE Aud Compressor Audio
|
||||
ADBE Aud Delay Audio
|
||||
ADBE Aud Distortion Audio
|
||||
ADBE Aud Gate Audio
|
||||
ADBE Aud HiLo Audio
|
||||
ADBE Aud Modulator Audio
|
||||
ADBE Aud Reverb Audio
|
||||
ADBE Aud Reverse Audio
|
||||
ADBE Aud Stereo Mixer Audio
|
||||
ADBE Aud Tone Audio
|
||||
ADBE AudSpect Generate
|
||||
ADBE AudWave Generate
|
||||
ADBE Aud_Flange Audio
|
||||
ADBE AutoColor Color Correction
|
||||
ADBE AutoContrast Color Correction
|
||||
ADBE AutoLevels Color Correction
|
||||
ADBE BEZMESH Distort
|
||||
ADBE Basic 3D Obsolete
|
||||
ADBE Basic Text2 Obsolete
|
||||
ADBE Bevel Alpha Perspective
|
||||
ADBE Bevel Edges Perspective
|
||||
ADBE Bilateral Blur & Sharpen
|
||||
ADBE Black&White Color Correction
|
||||
ADBE Blend Channel
|
||||
ADBE Block Dissolve Transition
|
||||
ADBE Box Blur _Obsolete
|
||||
ADBE Box Blur2 Blur & Sharpen
|
||||
ADBE Brightness & Contrast _Obsolete
|
||||
ADBE Brightness & Contrast 2 Color Correction
|
||||
ADBE Broadcast Colors Color Correction
|
||||
ADBE Brush Strokes Stylize
|
||||
ADBE Bulge Distort
|
||||
ADBE CHANNEL MIXER Color Correction
|
||||
ADBE CM Animated Shape 2 -
|
||||
ADBE CM Animated Shape 3 -
|
||||
ADBE CM Animated Shape Control -
|
||||
ADBE CM AutoscrollHorizontal -
|
||||
ADBE CM AutoscrollVertical -
|
||||
ADBE CM CornerReveal -
|
||||
ADBE CM CrackedTiles -
|
||||
ADBE CM CropEdges -
|
||||
ADBE CM DissolveUnmelt -
|
||||
ADBE CM FadeInOutFrames -
|
||||
ADBE CM FadeInOutmsec -
|
||||
ADBE CM FlyToInset -
|
||||
ADBE CM GridWipe -
|
||||
ADBE CM InsetVideoFramed -
|
||||
ADBE CM InsetVideoTorn -
|
||||
ADBE CM LightLeaksMarkers -
|
||||
ADBE CM LightLeaksRandom -
|
||||
ADBE CM MoodLightAmorph -
|
||||
ADBE CM MoodLightDigital -
|
||||
ADBE CM MoodLightStreaks -
|
||||
ADBE CM OpacityFlashMarkers -
|
||||
ADBE CM OpacityFlashRandom -
|
||||
ADBE CM ScaleBounceMarkers -
|
||||
ADBE CM ScaleBounceRandom -
|
||||
ADBE CM SlideVariable -
|
||||
ADBE CM Spin -
|
||||
ADBE CM Throw -
|
||||
ADBE CM TransCard -
|
||||
ADBE CM TransComplete -
|
||||
ADBE CM TransCorner -
|
||||
ADBE CM TransDirection -
|
||||
ADBE CM TransDissolve -
|
||||
ADBE CM TransFade -
|
||||
ADBE CM TransFadeMask -
|
||||
ADBE CM TransIris -
|
||||
ADBE CM TransRadial -
|
||||
ADBE CM TransSlide -
|
||||
ADBE CM TransStretch -
|
||||
ADBE CM TransWipe -
|
||||
ADBE CM TransWipeFeath -
|
||||
ADBE CM WiggleGelatin -
|
||||
ADBE CM WigglePosition -
|
||||
ADBE CM WiggleRotation -
|
||||
ADBE CM WiggleScale -
|
||||
ADBE CM WiggleShear -
|
||||
ADBE CM Wigglerama -
|
||||
ADBE CM Zoom2DSpin -
|
||||
ADBE CM Zoom3DTumble -
|
||||
ADBE CM ZoomBubble -
|
||||
ADBE CM ZoomSpiral -
|
||||
ADBE CM ZoomWobble -
|
||||
ADBE Calculations Channel
|
||||
ADBE Camera Lens Blur Blur & Sharpen
|
||||
ADBE CameraShakeDeblur Blur & Sharpen
|
||||
ADBE Cartoonify Stylize
|
||||
ADBE Cell Pattern Generate
|
||||
ADBE Change Color Color Correction
|
||||
ADBE Change To Color Color Correction
|
||||
ADBE Channel Blur Blur & Sharpen
|
||||
ADBE Channel Combiner Channel
|
||||
ADBE Checkbox Control Expression Controls
|
||||
ADBE Checkerboard Generate
|
||||
ADBE Cineon Converter _Obsolete
|
||||
ADBE Cineon Converter2 Utility
|
||||
ADBE Circle Generate
|
||||
ADBE Color Balance _Obsolete
|
||||
ADBE Color Balance (HLS) Color Correction
|
||||
ADBE Color Balance 2 Color Correction
|
||||
ADBE Color Control Expression Controls
|
||||
ADBE Color Difference Key Keying
|
||||
ADBE Color Emboss Stylize
|
||||
ADBE Color Key Obsolete
|
||||
ADBE Color Link Color Correction
|
||||
ADBE Color Range Keying
|
||||
ADBE Color Swirl -
|
||||
ADBE Compander Utility
|
||||
ADBE Compound Arithmetic Channel
|
||||
ADBE Compound Blur Blur & Sharpen
|
||||
ADBE Corner Pin Distort
|
||||
ADBE CurvesCustom Color Correction
|
||||
ADBE DE Bounce -
|
||||
ADBE DE Bounce At Marker -
|
||||
ADBE DE Bounce On Beat -
|
||||
ADBE DE Bounce Random -
|
||||
ADBE DE Follow -
|
||||
ADBE DE Jiggle -
|
||||
ADBE DE Jiggle At Marker -
|
||||
ADBE DE Jiggle On Beat -
|
||||
ADBE DE Jiggle Random -
|
||||
ADBE DE Opacity Pulse -
|
||||
ADBE DE Opacity Pulse At Marker -
|
||||
ADBE DE Opacity Pulse On Beat -
|
||||
ADBE DE Opacity Pulse Random -
|
||||
ADBE DE Orbit -
|
||||
ADBE DE Orbit 3D -
|
||||
ADBE DE Oscillate -
|
||||
ADBE DE Oscillate At Marker -
|
||||
ADBE DE Oscillate On Beat -
|
||||
ADBE DE Oscillate Random -
|
||||
ADBE DE Pendulum -
|
||||
ADBE DE Pendulum At Marker -
|
||||
ADBE DE Pendulum On Beat -
|
||||
ADBE DE Pendulum Random -
|
||||
ADBE DE Pulse -
|
||||
ADBE DE Pulse At Marker -
|
||||
ADBE DE Pulse On Beat -
|
||||
ADBE DE Pulse Random -
|
||||
ADBE DE Random Fill Color -
|
||||
ADBE DE Random Motion -
|
||||
ADBE DE Random Motion 1D -
|
||||
ADBE DE Random Opacity -
|
||||
ADBE DE Random Rotation -
|
||||
ADBE DE Random Rotation 3D -
|
||||
ADBE DE Random Scale -
|
||||
ADBE DE Swarm -
|
||||
ADBE DE Wobble Bounce -
|
||||
ADBE DE Wobble Bounce At Marker -
|
||||
ADBE DE Wobble Bounce On Beat -
|
||||
ADBE DE Wobble Bounce Random -
|
||||
ADBE DE Z Spring -
|
||||
ADBE DE Z Spring At Marker -
|
||||
ADBE DEPTH FIELD 3D Channel
|
||||
ADBE DEPTH MATTE 3D Channel
|
||||
ADBE Deflicker Color Correction
|
||||
ADBE Difference Time
|
||||
ADBE Difference Matte2 Keying
|
||||
ADBE DigitalVideoLimiter Color Correction
|
||||
ADBE Displacement Map Distort
|
||||
ADBE Drop Shadow Perspective
|
||||
ADBE Dropdown Control Expression Controls
|
||||
ADBE Dust & Scratches Noise & Grain
|
||||
ADBE ELLIPSE Generate
|
||||
ADBE Easy Levels _Obsolete
|
||||
ADBE Easy Levels2 Color Correction
|
||||
ADBE Echo Time
|
||||
ADBE Emboss Stylize
|
||||
ADBE Equalize Color Correction
|
||||
ADBE Exposure _Obsolete
|
||||
ADBE Exposure2 Color Correction
|
||||
ADBE Extract Keying
|
||||
ADBE Eyedropper Fill Generate
|
||||
ADBE FOG_3D 3D Channel
|
||||
ADBE Fast Blur _Obsolete
|
||||
ADBE Fill Generate
|
||||
ADBE Find Edges Stylize
|
||||
ADBE Fractal Generate
|
||||
ADBE Fractal Noise Noise & Grain
|
||||
ADBE FreePin3 _Obsolete
|
||||
ADBE GROW BOUNDS Utility
|
||||
ADBE Gamma/Pedestal/Gain2 Color Correction
|
||||
ADBE Gaussian Blur Obsolete
|
||||
ADBE Gaussian Blur 2 Blur & Sharpen
|
||||
ADBE Geometry _Obsolete
|
||||
ADBE Geometry2 Distort
|
||||
ADBE Getting Jiggy -
|
||||
ADBE Glo2 Stylize
|
||||
ADBE Gradient Wipe Transition
|
||||
ADBE Grid Generate
|
||||
ADBE HDR ToneMap Utility
|
||||
ADBE HUE SATURATION Color Correction
|
||||
ADBE ID MATTE 3D Channel
|
||||
ADBE IRIS_WIPE Transition
|
||||
ADBE Invert Channel
|
||||
ADBE KeyCleaner Keying
|
||||
ADBE LIQUIFY Distort
|
||||
ADBE Laser Generate
|
||||
ADBE Layer Control Expression Controls
|
||||
ADBE Leave Color Color Correction
|
||||
ADBE Lens Flare Generate
|
||||
ADBE Lightning Obsolete
|
||||
ADBE Lightning 2 Generate
|
||||
ADBE Linear Color Key2 Keying
|
||||
ADBE Linear Wipe Transition
|
||||
ADBE Luma Key Obsolete
|
||||
ADBE Lumetri Color Correction
|
||||
ADBE MESH WARP Distort
|
||||
ADBE Magnify Distort
|
||||
ADBE Matte Choker Matte
|
||||
ADBE Median Noise & Grain
|
||||
ADBE Minimax Channel
|
||||
ADBE Mirror Distort
|
||||
ADBE Mosaic Stylize
|
||||
ADBE Motion Blur Blur & Sharpen
|
||||
ADBE Noise _Obsolete
|
||||
ADBE Noise Alpha _Obsolete
|
||||
ADBE Noise Alpha2 Noise & Grain
|
||||
ADBE Noise HLS _Obsolete
|
||||
ADBE Noise HLS Auto _Obsolete
|
||||
ADBE Noise HLS Auto2 Noise & Grain
|
||||
ADBE Noise HLS2 Noise & Grain
|
||||
ADBE Noise2 Noise & Grain
|
||||
ADBE Numbers2 Text
|
||||
ADBE OCIO CDL Transform Color Correction
|
||||
ADBE OCIO Color Space Transform Color Correction
|
||||
ADBE OCIO Display Transform Color Correction
|
||||
ADBE OCIO FILE Transform Color Correction
|
||||
ADBE OCIO Look Transform Color Correction
|
||||
ADBE OFMotionBlur Time
|
||||
ADBE Offset Distort
|
||||
ADBE Optics Compensation Distort
|
||||
ADBE PS Arbitrary Map Color Correction
|
||||
ADBE PS Median Noise & Grain
|
||||
ADBE PSL Bevel Emboss _Obsolete
|
||||
ADBE PSL Drop Shadow _Obsolete
|
||||
ADBE PSL Inner Glow _Obsolete
|
||||
ADBE PSL Inner Shadow _Obsolete
|
||||
ADBE PSL Outer Glow _Obsolete
|
||||
ADBE PSL Solid Fill _Obsolete
|
||||
ADBE Paint _Obsolete
|
||||
ADBE Paint Bucket Generate
|
||||
ADBE Param EQ Audio
|
||||
ADBE Path Text Obsolete
|
||||
ADBE Photo Filter _Obsolete
|
||||
ADBE PhotoFilterPS Color Correction
|
||||
ADBE Playgnd Simulation
|
||||
ADBE Point Control Expression Controls
|
||||
ADBE Point3D Control Expression Controls
|
||||
ADBE Polar Coordinates Distort
|
||||
ADBE Posterize Stylize
|
||||
ADBE Posterize Time Time
|
||||
ADBE Pro Levels _Obsolete
|
||||
ADBE Pro Levels2 Color Correction
|
||||
ADBE ProfileToProfile Utility
|
||||
ADBE RESHAPE Distort
|
||||
ADBE Radial Blur Blur & Sharpen
|
||||
ADBE Radial Shadow Perspective
|
||||
ADBE Radial Wipe Transition
|
||||
ADBE Ramp Generate
|
||||
ADBE Reduce Interlace Flicker Obsolete
|
||||
ADBE RefineMatte _Obsolete
|
||||
ADBE RefineMatte2 Matte
|
||||
ADBE RefineRBMatte Matte
|
||||
ADBE Remove Color Matting Channel
|
||||
ADBE Ripple Distort
|
||||
ADBE Rolling Shutter Distort
|
||||
ADBE Roughen Edges Stylize
|
||||
ADBE SCHMEAR Distort
|
||||
ADBE Sample Image -
|
||||
ADBE Samurai _Obsolete
|
||||
ADBE Scatter Stylize
|
||||
ADBE Scribble Fill Generate
|
||||
ADBE SelectiveColor Color Correction
|
||||
ADBE Separate XYZ Position -
|
||||
ADBE Separate XYZ Scale -
|
||||
ADBE Set Channels Channel
|
||||
ADBE Set Matte2 _Obsolete
|
||||
ADBE Set Matte3 Channel
|
||||
ADBE ShadowHighlight Color Correction
|
||||
ADBE Sharpen Blur & Sharpen
|
||||
ADBE Shift Channels Channel
|
||||
ADBE Simple Choker Matte
|
||||
ADBE Slider Control Expression Controls
|
||||
ADBE Smart Blur Blur & Sharpen
|
||||
ADBE Solid Composite Channel
|
||||
ADBE Spherize Distort
|
||||
ADBE Spill Suppressor Obsolete
|
||||
ADBE Spill2 Keying
|
||||
ADBE Stereo 3D Controls -
|
||||
ADBE Strobe Stylize
|
||||
ADBE Stroke Generate
|
||||
ADBE SubspaceStabilizer Distort
|
||||
ADBE Texturize Stylize
|
||||
ADBE Three-Way Color Corrector _Obsolete
|
||||
ADBE Threshold _Obsolete
|
||||
ADBE Threshold2 Stylize
|
||||
ADBE Tile Stylize
|
||||
ADBE Time Displacement Time
|
||||
ADBE Timecode Text
|
||||
ADBE Timewarp Time
|
||||
ADBE Tint Color Correction
|
||||
ADBE Tritone Color Correction
|
||||
ADBE Turbulent Displace Distort
|
||||
ADBE Twirl Distort
|
||||
ADBE Unmult Keying
|
||||
ADBE Unsharp Mask _Obsolete
|
||||
ADBE Unsharp Mask2 Blur & Sharpen
|
||||
ADBE Upscale Distort
|
||||
ADBE Venetian Blinds Transition
|
||||
ADBE Vibrance Color Correction
|
||||
ADBE WRPMESH Distort
|
||||
ADBE Wave Warp Distort
|
||||
ADBE Write-on Generate
|
||||
APC CardDanceCam Simulation
|
||||
APC CardWipeCam Transition
|
||||
APC Caustics Simulation
|
||||
APC Colorama Color Correction
|
||||
APC Foam Simulation
|
||||
APC Radio Waves Generate
|
||||
APC Shatter Simulation
|
||||
APC Vegas Generate
|
||||
APC Wave World Simulation
|
||||
VISINF Grain Duplication Noise & Grain
|
||||
VISINF Grain Implant Noise & Grain
|
||||
VISINF Grain Removal Noise & Grain
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 74.
|
Reference in new issue
Block a user