You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

222 lines
7.2 KiB

#include "y.jsx";
function compareComps( compA, compB, precision ){
// 0 = basic , 1 = advanced , 2 = certain
var result = false;
if ( precision == 0){
propList = ["name","width","height","frameDuration","numLayers"];
alert(propList);
}
for ( property in compA ){
for ( var i = 0 ; i < propList.length ; i++ ){
if ( property == propList[i] ){
//alert( property + String(compA[property]) + "/" + String(compB[property]) + " : " + ( compA[property] == compB[property]) );
if ( compA[property] == compB[property] ){
result = true;
}else{
result = false; return result;
}
}
}
}
return result
}
function isSourceOneOfThese( layer , sourcesArray){
for ( var p = 0 ; p < sourcesArray.length ; p++ ){
if ( layer.source == sourcesArray[p] ){
return true
}
}
return false
}
function consolidateSelectedComps(){
app.beginUndoGroup("Consolidate Selected Comps");
//DANGER Comps might not be the same, they only have to be NAMED the same.
var allCompItems = getAllProjectComps();
var myItems = getSelectedProjectComps();
// var allMyItems = []+myItems;
var newSource = myItems.pop();
for ( var i = 0 ; i < allCompItems.length ; i ++){
var curComp = allCompItems[i];
for ( var l = 1 ; l <= curComp.layers.length ; l ++){
var curLayer = curComp.layers[l];
//alert(newSource);
//alert(myItems);
if ( isSourceOneOfThese( curLayer , myItems )){
if( curLayer.source != newSource ){
curLayer.replaceSource(newSource,true);
}
}
}
}
for ( var i = 0 ; i < myItems.length ; i ++){
var myItem = myItems[i];
myItem.remove();
}
app.endUndoGroup();
}
function stripFrameInfoFromRenderNames(){
var q = app.project.renderQueue;
for ( var i = 1 ; i <= q.numItems ; i ++ ){
item = q.item(i);
//check the render queue item is not already rendered.
//3015 is QUEUED
//3013 is NEEDS_OUTPUT
if ( (item.status == 3015) || (item.status == 3013) ){
var new_path = item.outputModules[1].file.path;
var old_name = item.outputModules[1].file.name;
var re = RegExp (/%20\([0-9]\-[0-9]{2}\-[0-9]{2}\-[0-9]{2}\)/g);
var new_name = old_name.replace(re,"")
//var clean_name = new_name.substring(0,new_name.length-19);
//var ext = new_name.substring(new_name.length-4,new_name.length);
//f = new File( new_path + "/" + clean_name+ext )
f = new File( new_path + "/" + new_name )
item.outputModules[1].file = f;
//alert(item.outputModules[1].file)
}
}
}
function renderCompMarkerFrames( comp )
{
var myMP = comp.markerProperty;
alert( myMP );
}
function addLetterbox( aspect ){
var LetterboxLayer = app.project.activeItem.layers.addShape()
var aspectControl = LetterboxLayer.property("Effects").addProperty("ADBE Slider Control")
aspectControl.name = "Aspect Ratio"
var aspectDimensions = aspect.split(":")
aspectControl.property("Slider").setValue( aspectDimensions[0] / aspectDimensions[1] )
var colorControl = LetterboxLayer.property("Effects").addProperty("ADBE Color Control")
colorControl.name = "Color"
colorControl.property("Color").setValue([0,0,0,1])
LetterboxLayer.name = String(aspect) + " Letterbox"
var compFrame = LetterboxLayer.property("Contents").addProperty("ADBE Vector Shape - Rect")
compFrame.name = "CompFrame"
compFrame.property("Size").expression = "[ thisComp.width , thisComp.height ]"
var letterboxRect = LetterboxLayer.property("Contents").addProperty("ADBE Vector Shape - Rect")
letterboxRect.name = "Letterbox"
letterboxRect.property("Size").expression = 'w = thisComp.width;\
h = thisComp.height;\
compAspect = w / h ;\
aspect = effect("Aspect Ratio")("Slider");\
if (compAspect <= aspect ) {\
[ w, w / aspect ]\
}else{\
[ h*aspect , h ]\
}'
var letterboxMerge = LetterboxLayer.property("Contents").addProperty("ADBE Vector Filter - Merge")
letterboxMerge.mode.setValue(3)
var letterboxFill = LetterboxLayer.property("Contents").addProperty("ADBE Vector Graphic - Fill")
letterboxFill.property("Color").expression = 'effect("Color")("Color")'
}
function setCompsSecondsDuration( new_duration_in_seconds ){
app.beginUndoGroup("x");
//DANGER Comps might not be the same, they only have to be NAMED the same.
var allCompItems = getAllProjectComps();
var myItems = getSelectedProjectComps();
// var allMyItems = []+myItems;
var newSource = myItems.pop();
for ( var i = 0 ; i < allCompItems.length ; i ++){
var curComp = allCompItems[i];
setDuration( curComp, new_duration_in_seconds)
}
app.endUndoGroup();
}
function setCompsFramesDuration( new_duration_in_frames ){
app.beginUndoGroup("x");
//DANGER Comps might not be the same, they only have to be NAMED the same.
var allCompItems = getAllProjectComps();
var myItems = getSelectedProjectComps();
// var allMyItems = []+myItems;
var newSource = myItems.pop();
for ( var i = 0 ; i < allCompItems.length ; i ++){
var curComp = allCompItems[i];
setDuration( curComp, new_duration_in_frames * curComp.frameDuration )
}
app.endUndoGroup();
}
//setCompsSecondsDuration(15);
setCompsFramesDuration(1440);
//addLetterbox( "2.1:1" );
//alert("FUCK")
//c = app.project.activeItem;
//renderCompMarkerFrames( c );
//alert(app.project.activeItem.layers[1].property("Contents").property(1).matchName)
//stripFrameInfoFromRenderNames()
// var myItems = getSelectedProjectComps();
// var myLayer = app.project.activeItem.selectedLayers[0]
// alert(isSourceOneOfThese(myLayer, myItems))
//alert(compareComps( myItems[0], myItems[1], 0));
//consolidateSelectedComps();
// a = app.project.items[1];
// b = app.project.items[2];
// // alert(a.frameDuration)
// // alert(b)
// var same = compareComps( a, b, 0 );
// alert(same);
// for ( property in a ){
// alert( property );
// }
//my_comps = getSelectedProjectItems();
//var myLayers = app.project.activeItem.selectedLayers;
//var my_comp = getSelectedProjectItems()[0];
//zeroOutLayer(myLayers[0]);
//app.project.save();
//alert();
//resizeCompsCanvasCentered( [ 1080, 1080 ] , true ); //1x1
//resizeCompsCanvasCentered( [ 1080, 1350 ] , true ); //4x5
//resizeCompsCanvasCentered( [ 1080, 1920 ] , true ); // 9x16
//a="WTC2_1x1_TUNG_GLD_ROTO_Ghostface_02tl_03jvFIN"
//alert( insertAt( a, "TXT", -12 ));
//insertAtSelectedItemsNames( "TXT", -12 ); // insert "TXT" into the 12th position from the end of all selected Items' names.
//insertAtSelectedItemsNames( "ROTO", -12 );
//insertAtSelectedItemsNames( "TXTLS", -12 );
//setFPS( my_comp, 24 );
//setCompsFPS( 23.976 );
//var my_comp = getSelectedProjectItems()[0];
//new_size = [ 1080, 1920 ];
//resizeCompCanvasCentered( my_comp, new_size, true )
//selectLayersByParented( false );
//alert(system.callSystem("whoami"))
//app.project.save()