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.
185 lines
5.8 KiB
185 lines
5.8 KiB
|
|
function getSelectedProjectItems(){
|
|
var items = [];
|
|
var p = app.project;
|
|
for ( var i = 1 ; i <= p.numItems ; i ++ ){
|
|
var item = p.item(i);
|
|
if ( item.selected ){
|
|
items.push(item);
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
function getSelectedProjectComps(){
|
|
var items = [];
|
|
var p = app.project;
|
|
for ( var i = 1 ; i <= p.numItems ; i ++ ){
|
|
var item = p.item(i);
|
|
if ( (item.selected) && (item.typeName == "Composition") ){
|
|
items.push(item);
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
function getAllProjectComps(){
|
|
var items = [];
|
|
var p = app.project;
|
|
for ( var i = 1 ; i <= p.numItems ; i ++ ){
|
|
var item = p.item(i);
|
|
if ( item.typeName == "Composition" ){
|
|
items.push(item);
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
function selectLayersByParented( isParented ){
|
|
layersToSelect = getLayersByParented( isParented );
|
|
for ( var i = 0; i < layersToSelect.length; i ++ ){
|
|
layerToSelect = layersToSelect[i];
|
|
layerToSelect.selected = true;
|
|
}
|
|
}
|
|
function getLayersByParented( isParented ){
|
|
|
|
/* TODO
|
|
not use activeItem. but have the function take a comp as an argument, to avoid activItem becoming obsolete.
|
|
*/
|
|
var active_comp = app.project.activeItem;
|
|
var filtered_layers = [];
|
|
|
|
for ( var i = 1; i <= active_comp.layers.length ; i ++ )
|
|
{
|
|
var my_layer = active_comp.layers[i];
|
|
|
|
if ( (my_layer.parent == null) != isParented )
|
|
{
|
|
filtered_layers.push( my_layer );
|
|
};
|
|
}
|
|
|
|
return filtered_layers
|
|
}
|
|
function centerLayer( my_layer , size ){
|
|
my_layer.position[0] = size[0]/2;
|
|
my_layer.position[1] = size[1]/2;
|
|
alert(my_layer.position);
|
|
}
|
|
function resizeCompCanvas( comp, new_size ){
|
|
comp.width = new_size[0];
|
|
comp.height = new_size[1];
|
|
};
|
|
function setFPS( comp, newFPS ){
|
|
comp.frameDuration = 1/newFPS;
|
|
};
|
|
function setDuration( myComp, newSecondsDuration ){
|
|
myComp.duration = newSecondsDuration;
|
|
};
|
|
function setDurationInFrames( myComp, newFrameDuration ){
|
|
//myComp.
|
|
};
|
|
function resizeCompCanvasCentered( my_comp, new_size, keep_scaler ){
|
|
//app.beginUndoGroup("Resize Comp Canvas Centered")
|
|
var n = my_comp.layers.addNull();
|
|
|
|
//center null on actual comp size
|
|
n.position.setValue([my_comp.width/2,my_comp.height/2]);
|
|
resizeCompCanvas( my_comp , new_size );
|
|
|
|
//parent unparented layers to MAIN_SCALER
|
|
var unparenterLayers = getLayersByParented( false );
|
|
for ( var i = 0; i < unparenterLayers.length ; i ++ ){
|
|
var current_layer = unparenterLayers[i];
|
|
|
|
if ( (current_layer != n) && ( true )) {
|
|
current_layer.parent = n;
|
|
}
|
|
}
|
|
|
|
// center null to new comp size
|
|
n.position.setValue(new_size/2);
|
|
|
|
//get rid of scaling null or not.
|
|
if (keep_scaler)
|
|
|
|
{
|
|
n.name = 'MAIN_SCALER';
|
|
}else{
|
|
n.remove()
|
|
}
|
|
//app.endUndoGroup();
|
|
}
|
|
function resizeCompsCanvasCentered( new_size, keep_scaler ){
|
|
app.beginUndoGroup("Resize Comps' Canvas Centered")
|
|
var my_comps = getSelectedProjectItems();
|
|
for ( var i = 0 ; i < my_comps.length ; i ++ ){
|
|
var my_comp = my_comps[i];
|
|
//alert( my_comp.name )
|
|
resizeCompCanvasCentered( my_comp, new_size, true );
|
|
}
|
|
app.endUndoGroup();
|
|
}
|
|
function setCompsFPS( newFPS ){
|
|
app.beginUndoGroup("Change selected Comps' framerates");
|
|
var my_comps = getSelectedProjectItems();
|
|
for ( var i = 0 ; i < my_comps.length ; i++ ){
|
|
var my_comp = my_comps[i];
|
|
setFPS( my_comp, newFPS );
|
|
}
|
|
app.endUndoGroup();
|
|
}
|
|
function zeroOutLayer( myLayer ){
|
|
myLayer.position.setValue([0,0]);
|
|
myLayer.rotation.setValue(0);
|
|
myLayer.anchorPoint.setValue([0,0]);
|
|
myLayer.scale.setValue([100,100]);
|
|
}
|
|
function insertAt( text , insertText, pos ){
|
|
var myText = text;
|
|
var insertText = insertText;
|
|
var myPos = pos;
|
|
var newText;
|
|
if( myPos >= 0 ){
|
|
newText= myText.substr(0,myPos)+"_"+insertText+myText.substr(myPos);
|
|
}else{
|
|
newText= myText.substr(0,myText.length+myPos)+insertText+"_"+myText.substr(myText.length+myPos);
|
|
}
|
|
return newText
|
|
}
|
|
/* Extra for renaming tool, insert stringA
|
|
into specified position of stringB.*/
|
|
function insertAtSelectedItemsNames( text, pos){
|
|
my_comps = getSelectedProjectItems();
|
|
for ( var i = 0; i < my_comps.length ; i ++ ){
|
|
var myComp = my_comps[i];
|
|
myComp.name = insertAt( myComp.name , text, pos);
|
|
}
|
|
}
|
|
|
|
function addLetterbox(){
|
|
var LetterboxLayer = app.project.activeItem.layers.addShape()
|
|
var aspectControl = LetterboxLayer.property("Effects").addProperty("ADBE Slider Control")
|
|
aspectControl.name = "Aspect Ratio"
|
|
aspectControl.property("Slider").setValue(16/9)
|
|
var colorControl = LetterboxLayer.property("Effects").addProperty("ADBE Color Control")
|
|
colorControl.name = "Color"
|
|
colorControl.property("Color").setValue([0,0,0,1])
|
|
LetterboxLayer.name = "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.color.setValue([0,0,0,1])
|
|
} |