Ben Frank
Forum Replies Created
-
Copy and past the following into a plain text editor and save it as a .jsx file. when you run the script is should do what you are wanting. hope this helps!
// 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 = "tempx = value[0];ntempy = value[1];nntempxwhole = Math.round(tempx);ntempywhole = Math.round(tempy);n[tempxwhole, tempywhole]n";
app.project.item(i).layer(j).anchorPoint.expression = "tempx = value[0];ntempy = value[1];nntempxwhole = Math.round(tempx);ntempywhole = Math.round(tempy);n[tempxwhole, tempywhole]n";
}
}
}ben
—
Check out my food blog: https://iAteThat.com
—
benfRank
art direction / broadcast, print & web design / photography
WEB: http://www.behance.net/benfrank/Frame
WEB: http://www.benfrankdesign.com
WEB: http://www.benfrankphotography.com -
thanks so much, dan! i finally got this working.
// 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 colorvar 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 }";
}
}
}
ben
—
Check out my food blog: https://iAteThat.com
—
benfRank
art direction / broadcast, print & web design / photography
WEB: http://www.behance.net/benfrank/Frame
WEB: http://www.benfrankdesign.com
WEB: http://www.benfrankphotography.com -
I have the expression being pulled in, but i am having trouble figuring out the number of comps in a project. here’s the code that isnt’ working:
for (i = 0, i <= numComps, i++) {
myComp = app.project.item[i];
for (j = 0, j <= numLayers, j++) {
mycomp.layer[j].position.expression = "#include 'file:///Volumes/adtxraid_09/R10_REBRAND/01_AE_projects/00_AE_PRESETS/_scripts/R10-PositionExpression.txt'";
mycomp.layer[j].rotation.expression = "#include 'file:///Volumes/adtxraid_09/R10_REBRAND/01_AE_projects/00_AE_PRESETS/_scripts/R10-PositionExpression.txt'";
mycomp.layer[j].scale.expression = "#include 'file:///Volumes/adtxraid_09/R10_REBRAND/01_AE_projects/00_AE_PRESETS/_scripts/R10-PositionExpression.txt'";
}
}
ben
—
Check out my food blog: https://iAteThat.com
—
benfRank
art direction / broadcast, print & web design / photography
WEB: http://www.behance.net/benfrank/Frame
WEB: http://www.benfrankdesign.com
WEB: http://www.benfrankphotography.com -
yeah, i realised that. i modified it ad got it working this way:
controlComp.layer("Bounce Variable Controls").position.expression = "#include 'file:///R10-PositionExpression.txt'"It works perfectly. Only issue now is figuring out how to get the script to apply it to every layer of every comp.
ben
—
Check out my food blog: https://iAteThat.com
—
benfRank
art direction / broadcast, print & web design / photography
WEB: http://www.behance.net/benfrank/Frame
WEB: http://www.benfrankdesign.com
WEB: http://www.benfrankphotography.com