// create new comp named 'Bounce Variable Controls' var compW = 720; // comp width var compH = 540; // comp height var compL = 1; // comp length (seconds) var compRate = 29.97; // comp frame rate var compBG = [0/255,0/255,0/255] // comp background color var myItemCollection = app.project.items; var controlComp = myItemCollection.addComp('Bounce Variable Controls',compW,compH,1,compL,compRate); controlComp.bgColor = compBG; // create new 50X50 yellow solid named 'Bounce Variable Controls' mySolid = controlComp.layers.addSolid([255/255,255/255,0/255], "Bounce Variable Controls", 50, 50, 1); // Add "Amplitude" Slider and set value to 10 Slider1 = mySolid.property("Effects").addProperty("Slider Control"); Slider1.name = "Amplitude"; controlComp.layer("Bounce Variable Controls")("Effects")("Amplitude")("Slider").setValue(10); // Add "Frequency" Slider and set value to 40 Slider2 = mySolid.property("Effects").addProperty("Slider Control"); Slider2.name = "Frequency"; controlComp.layer("Bounce Variable Controls")("Effects")("Frequency")("Slider").setValue(40); // Add "Decay" Slider and set value to 100 Slider3 = mySolid.property("Effects").addProperty("Slider Control"); Slider3.name = "Decay"; controlComp.layer("Bounce Variable Controls")("Effects")("Decay")("Slider").setValue(100); // Add Expressions to Position, Rotation & Scale of All Layers in project for (var i = 1; i <= app.project.numItems; i++) { if (app.project.item(i) instanceof CompItem && app.project.item(i).name != "Bounce Variable Controls") { for (var j = 1; j <= app.project.item(i).numLayers; j++) { app.project.item(i).layer(j).position.expression = "// Auto Easing with Retract for Positionn n = 0;n if (numKeys > 0){n n = nearestKey(time).index;n if (key(n).time > time){n n--;n }n }n if (n == 0){n t = 0;n }else{n t = time - key(n).time;n }n n if (n > 0){n v = velocityAtTime(key(n).time - thisComp.frameDuration/10);n amp = .01*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Amplitude")("Slider");n freq = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Frequency")("Slider");n decay = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Decay")("Slider");n value + v*amp*Math.sin(freq*t)/Math.exp(decay*t*2);n }else{n value;n }"; app.project.item(i).layer(j).rotation.expression = "// Auto Easing with Retract for Rotationn n = 0;n if (numKeys > 0){n n = nearestKey(time).index;n if (key(n).time > time){n n--;n }n }n if (n == 0){n t = 0;n }else{n t = time - key(n).time;n }n n if (n > 0){n v = velocityAtTime(key(n).time - thisComp.frameDuration/10);n amp = .005*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Amplitude")("Slider");n freq = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Frequency")("Slider");n decay = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Decay")("Slider");n value + v*amp*Math.sin(freq*t)/Math.exp(decay*t*2);n }else{n value;n }"; app.project.item(i).layer(j).scale.expression = "// Auto Easing with Retract for Scalen n = 0;n if (numKeys > 0){n n = nearestKey(time).index;n if (key(n).time > time){n n--;n }n }n if (n == 0){n t = 0;n }else{n t = time - key(n).time;n }n n if (n > 0){n v = velocityAtTime(key(n).time - thisComp.frameDuration/10);n amp = .05*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Amplitude")("Slider");n freq = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Frequency")("Slider");n decay = .1*comp("Bounce Variable Controls").layer("Bounce Variable Controls").effect("Decay")("Slider");n value + v*amp*Math.sin(freq*t)/Math.exp(decay*t*2);n }else{n value;n }"; } } }