View DelayedOffset.txt
// Delayed Offset - Created by Animoplex:
// Delays an animation based on the layer above and the frames to delay.
// NOTE: Looks for an identical transform property on the layer above.
// NOTE: To change, replace "transform(" with your desired effect.
delay = 10; // FRAMES TO DELAY
above = thisComp.layer(index - 1).transform(;
above.valueAtTime(time - framesToTime(delay))
View CursorWhileTyping.txt
// Cursor While Typing - Created by Animoplex:
// Creates a pipe "|" symbol on a text layer while it types.
// NOTE: Add a Slider Control to your text layer and apply this to the "SourceText" parameter.
// NOTE: Keyframe the Slider Control from 0 to 100 to reveal the text being typed.
src = effect("Slider Control")("Slider");
txt = text.sourceText.length;
type = linear(src, 0, 100, 0, txt);
blink = Math.round( time % 1 );
View ClampValues.txt
// Clamp Values - Created by Animoplex:
// Limits a slider or keyframable value with a minimum and maximum value clamp.
// VARIATION A: Slider (1 Value)
minVal = 0;
maxVal = 100;
clamp(effect("Global Tab Size")("Slider"), minVal, maxVal)
View IfElseNumbers.txt
// If / Else Statements (Numbers) - Created by Animoplex:
// A collection of if/else statements using numbers.
// VARIATION A: Even Or Odd
// Determines if the input is an even or odd number, outputs based on the result.
num = effect("Slider Control")("Slider");
if (num % 2) == 0
return 100
View PixelLengthCalculator.txt
// Pixel Length Calculator - Created by Animoplex:
// Calculates the length (in pixels) of two positions or points in 2D or 3D space.
// USE FOR: Any property that needs a dynamic length calculated.
// VARIATION A: (APPLY TO: Camera's "Focus Distance" property)
length(pointOfInterest, position)
obj1 = thisComp.layer("OBJECT 1 LAYER NAME").transform.position;
View LayerNameSubstring.txt
// Output Layer Name As Substring - Created by Animoplex:
// Outputs desired characters of a layer's name.
lst = name.substr(name.length-1, name.length);
lst = name.substr(0, 1);
View SetPropertyFPS.txt
// Set Custom FPS On Any Property - Created by Animoplex:
// Gives you control of how keyframes per second are interpolated across two or more keyframes.
// Apply To: any value with at least 2 keyframes
posterizeTime(15); // set to desired fps
View ControlSelector
// Control Selector - Requested by Gheorghiță
// Toggles layer visibility based on a number preset inside an external control comp.
// NOTE: Your layer name must be formatted with only ONE space in the name, followed by a number. Ex: "LAYER 001" or "BlackSolid 1"
// NOTE: Make sure to replace CONTROL COMP, CONTROL LAYER, and SLIDER CONTROL with your own setup.
src = comp("CONTROL COMP").layer("CONTROL LAYER");
ctr = src.effect("SLIDER CONTROL")("Slider");
idx = parseInt(thisComp.layer(index).name.split(" ")[1]);
if ( ctr == idx ) { 100 }
else { 0 }
View InertialBounce.txt
// Inertial Bounce - Created by Animoplex:
// Original Version:
// Modified expression for a smoother bounce effect and easier editing. Use this on any property with two keyframes to get a nice bounce effect that is based on velocity of the value change. Perfect for a scale from 0 to 100 or a speedy rotation that needs some extra life. Adjust amp, freq and decay values to tweak the effect. Amp is intensity, freq is bounces per second, and decay is the speed of decay, slow to fast.
// Full Tutorial:
// Variation A
amp = 5.0; freq = 2.0; decay = 4.0;
View IfStatements.txt
// If, Else If, Or, And Statements - Created by Animoplex:
// Examples of different statements to use in After Effects expressions.
// Variation A
// If Statement: standard if statement
if (value < 1) { 1 }
else { value }