mirror of
https://github.com/jorgevasquezp/AFX_yTools.git
synced 2026-08-16 15:30:59 +00:00
Switched line endings to Unix-like on all scripts
This commit is contained in:
+130
-130
@@ -1,130 +1,130 @@
|
||||
#include "y_JSExtensions.jsx";
|
||||
/*
|
||||
if (Array.prototype.getOne==null) Array.prototype.getOne=function(item){ //Extends the Array class with the getOne functions wich
|
||||
var val = -1;
|
||||
for(i=0;i<=this.length;i++){
|
||||
if(this[i]==item){
|
||||
var val = i;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
*/
|
||||
function sortNumber(a,b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
||||
|
||||
function pad(n,i){ //pad n with ceroes up to i places.
|
||||
if (String(n).length>=i){
|
||||
return String(n)
|
||||
}else{
|
||||
dif = i- (String(n)).length;
|
||||
padding = "";
|
||||
for (p=0;p<dif;p++){
|
||||
padding = padding+"0"
|
||||
}
|
||||
return padding+String(n)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function yUniStr(str){
|
||||
if (app.project.activeItem != null) {
|
||||
myLayers = app.project.activeItem.layers;
|
||||
//myLayerNames = [];
|
||||
nameMatches = [];
|
||||
for (i=1;i<=myLayers.length;i++){
|
||||
if(getBaseName(myLayers[i].name) == getBaseName(str)){
|
||||
nameMatches.push(getN(myLayers[i].name))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
newN = getFirstGap(nameMatches);
|
||||
if(nameMatches.length == 0 | (newN==0)){
|
||||
return str
|
||||
}else{
|
||||
return str+' '+newN
|
||||
}
|
||||
}else{
|
||||
alert('E01 : No Comp is ACTIVE')
|
||||
}
|
||||
}
|
||||
function getN(str){
|
||||
lastChunk = str.substr(str.lastIndexOf(' '),str.length);
|
||||
if(lastChunk == parseInt(lastChunk)){
|
||||
return parseInt(lastChunk);
|
||||
}else{
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
function getBaseName(str){
|
||||
lastChunk = str.substr(str.lastIndexOf(' '),str.length);
|
||||
if(lastChunk == parseInt(lastChunk)){
|
||||
return str.substr(0,str.lastIndexOf(' '));
|
||||
}else{
|
||||
return str;
|
||||
};
|
||||
}
|
||||
|
||||
function getFirstGap(array){
|
||||
length = array.length
|
||||
array.sort(function sortNumber(a,b){return a-b})
|
||||
max = array[array.length-1]
|
||||
for (n=0;n<=max;n++){
|
||||
entry = array.getOne(n);
|
||||
if (entry == -1){
|
||||
return n
|
||||
}
|
||||
}
|
||||
return max+1
|
||||
return array[0];
|
||||
}
|
||||
function yReplace(inputSTR,replaceSTR,replacementSTR){
|
||||
tmpArray = inputSTR.split(replaceSTR);
|
||||
tmpSTR = '';
|
||||
for(i=0;i<tmpArray.length;i++){
|
||||
tmpSTR = tmpSTR+tmpArray[i]
|
||||
if(i<tmpArray.length-1){
|
||||
tmpSTR = tmpSTR+replacementSTR;
|
||||
}
|
||||
}
|
||||
return tmpSTR;
|
||||
}
|
||||
|
||||
|
||||
function genStamp(args){
|
||||
d = new Date();
|
||||
//alert(d.getMonth());
|
||||
y = String(d.getFullYear()).substring(2,4);
|
||||
m = pad(d.getMonth()+1,2);
|
||||
d = pad(d.getUTCDate(),2);
|
||||
str = String(m)+String(d)+String(y);
|
||||
return str
|
||||
}
|
||||
|
||||
function mergeMultiLine(_str){
|
||||
var re = new RegExp('[\n\r]');
|
||||
_lines = _str.split(re);
|
||||
newStr = '';
|
||||
|
||||
if(_lines.length>1){
|
||||
for(L=0;L<_lines.length;L++){
|
||||
alert(_lines[L]);
|
||||
if(L==_lines.length-1||_lines[L]==''){
|
||||
dash = '';
|
||||
}else{
|
||||
dash = '.';
|
||||
}
|
||||
if(_lines[L]!=''){
|
||||
newStr = newStr+_lines[L]+dash;
|
||||
}else{
|
||||
newStr = newStr;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
newStr = _str;
|
||||
}
|
||||
return newStr;
|
||||
}
|
||||
#include "y_JSExtensions.jsx";
|
||||
/*
|
||||
if (Array.prototype.getOne==null) Array.prototype.getOne=function(item){ //Extends the Array class with the getOne functions wich
|
||||
var val = -1;
|
||||
for(i=0;i<=this.length;i++){
|
||||
if(this[i]==item){
|
||||
var val = i;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
*/
|
||||
function sortNumber(a,b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
||||
|
||||
function pad(n,i){ //pad n with ceroes up to i places.
|
||||
if (String(n).length>=i){
|
||||
return String(n)
|
||||
}else{
|
||||
dif = i- (String(n)).length;
|
||||
padding = "";
|
||||
for (p=0;p<dif;p++){
|
||||
padding = padding+"0"
|
||||
}
|
||||
return padding+String(n)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function yUniStr(str){
|
||||
if (app.project.activeItem != null) {
|
||||
myLayers = app.project.activeItem.layers;
|
||||
//myLayerNames = [];
|
||||
nameMatches = [];
|
||||
for (i=1;i<=myLayers.length;i++){
|
||||
if(getBaseName(myLayers[i].name) == getBaseName(str)){
|
||||
nameMatches.push(getN(myLayers[i].name))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
newN = getFirstGap(nameMatches);
|
||||
if(nameMatches.length == 0 | (newN==0)){
|
||||
return str
|
||||
}else{
|
||||
return str+' '+newN
|
||||
}
|
||||
}else{
|
||||
alert('E01 : No Comp is ACTIVE')
|
||||
}
|
||||
}
|
||||
function getN(str){
|
||||
lastChunk = str.substr(str.lastIndexOf(' '),str.length);
|
||||
if(lastChunk == parseInt(lastChunk)){
|
||||
return parseInt(lastChunk);
|
||||
}else{
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
function getBaseName(str){
|
||||
lastChunk = str.substr(str.lastIndexOf(' '),str.length);
|
||||
if(lastChunk == parseInt(lastChunk)){
|
||||
return str.substr(0,str.lastIndexOf(' '));
|
||||
}else{
|
||||
return str;
|
||||
};
|
||||
}
|
||||
|
||||
function getFirstGap(array){
|
||||
length = array.length
|
||||
array.sort(function sortNumber(a,b){return a-b})
|
||||
max = array[array.length-1]
|
||||
for (n=0;n<=max;n++){
|
||||
entry = array.getOne(n);
|
||||
if (entry == -1){
|
||||
return n
|
||||
}
|
||||
}
|
||||
return max+1
|
||||
return array[0];
|
||||
}
|
||||
function yReplace(inputSTR,replaceSTR,replacementSTR){
|
||||
tmpArray = inputSTR.split(replaceSTR);
|
||||
tmpSTR = '';
|
||||
for(i=0;i<tmpArray.length;i++){
|
||||
tmpSTR = tmpSTR+tmpArray[i]
|
||||
if(i<tmpArray.length-1){
|
||||
tmpSTR = tmpSTR+replacementSTR;
|
||||
}
|
||||
}
|
||||
return tmpSTR;
|
||||
}
|
||||
|
||||
|
||||
function genStamp(args){
|
||||
d = new Date();
|
||||
//alert(d.getMonth());
|
||||
y = String(d.getFullYear()).substring(2,4);
|
||||
m = pad(d.getMonth()+1,2);
|
||||
d = pad(d.getUTCDate(),2);
|
||||
str = String(m)+String(d)+String(y);
|
||||
return str
|
||||
}
|
||||
|
||||
function mergeMultiLine(_str){
|
||||
var re = new RegExp('[\n\r]');
|
||||
_lines = _str.split(re);
|
||||
newStr = '';
|
||||
|
||||
if(_lines.length>1){
|
||||
for(L=0;L<_lines.length;L++){
|
||||
alert(_lines[L]);
|
||||
if(L==_lines.length-1||_lines[L]==''){
|
||||
dash = '';
|
||||
}else{
|
||||
dash = '.';
|
||||
}
|
||||
if(_lines[L]!=''){
|
||||
newStr = newStr+_lines[L]+dash;
|
||||
}else{
|
||||
newStr = newStr;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
newStr = _str;
|
||||
}
|
||||
return newStr;
|
||||
}
|
||||
|
||||
@@ -1,85 +1,85 @@
|
||||
#include '/c/Program Files/01_Design/Adobe After Effects CS5.5/Support Files/Scripts/yScripts/y_JSExtensions.jsx'
|
||||
function getComps(folderItem){
|
||||
_comps = [];
|
||||
for(i=1;i<=folderItem.numItems;i++){
|
||||
item = folderItem.item(i);
|
||||
if(item.typeName=='Composition'){
|
||||
_comps.push(item);
|
||||
}
|
||||
}
|
||||
return _comps
|
||||
}
|
||||
function getFolders(folderItem){
|
||||
_folders = [];
|
||||
for(i=1;i<=folderItem.numItems;i++){
|
||||
item = folderItem.item(i);
|
||||
if(item.typeName=='Folder'){
|
||||
_folders.push(item);
|
||||
}
|
||||
}
|
||||
return _folders
|
||||
}
|
||||
function getItems(folderItem){
|
||||
_folders = getFolders(folderItem);
|
||||
_comps = getComps(folderItem);
|
||||
while(_folders.length!=0){
|
||||
newFolderItem = _folders.shift();
|
||||
_comps = _comps.concat(getComps(newFolderItem));
|
||||
_folders = _folders.concat(getFolders(newFolderItem));
|
||||
}
|
||||
return _comps
|
||||
}
|
||||
function getLayers(compItem){
|
||||
layers = [];
|
||||
for(i=1;i<=compItem.numLayers;i++){
|
||||
item = compItem.layer(i);
|
||||
if(item.matchName == 'ADBE AV Layer'){
|
||||
if(item.source.typeName == 'Composition'){
|
||||
layers.push(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
return layers
|
||||
}
|
||||
|
||||
|
||||
//_replaceMe = getLayers(app.project.item(6))
|
||||
//b = app.project.ac
|
||||
function doIt(){
|
||||
app.beginUndoGroup('a')
|
||||
for(i=0;i<_replaceMe.length;i++){
|
||||
replaceable = _replaceMe[i];
|
||||
|
||||
hit = null;
|
||||
|
||||
for(k=0;k<_replaceWith.length;k++){
|
||||
replacement = _replaceWith[k];
|
||||
//alert(String(replaceable.source.name)+','+String(replacement.name))
|
||||
|
||||
if(replaceable.source.name==replacement.name){
|
||||
hit = replacement;
|
||||
}
|
||||
}
|
||||
if(hit!=null){
|
||||
_replaceMe[i].replaceSource(hit,false)
|
||||
}else{
|
||||
_replaceMe[i].property("Marker").addKey(0)
|
||||
}
|
||||
}
|
||||
app.endUndoGroup()
|
||||
}
|
||||
|
||||
function getComp(){
|
||||
comp = app.project.activeItem
|
||||
return comp
|
||||
}
|
||||
|
||||
/*
|
||||
//STEP 1
|
||||
_replaceMe = getLayers(getComp())
|
||||
|
||||
//STEP 2
|
||||
_replaceWith = getItems(app.project.activeItem)
|
||||
doIt()
|
||||
|
||||
*/
|
||||
#include '/c/Program Files/01_Design/Adobe After Effects CS5.5/Support Files/Scripts/yScripts/y_JSExtensions.jsx'
|
||||
function getComps(folderItem){
|
||||
_comps = [];
|
||||
for(i=1;i<=folderItem.numItems;i++){
|
||||
item = folderItem.item(i);
|
||||
if(item.typeName=='Composition'){
|
||||
_comps.push(item);
|
||||
}
|
||||
}
|
||||
return _comps
|
||||
}
|
||||
function getFolders(folderItem){
|
||||
_folders = [];
|
||||
for(i=1;i<=folderItem.numItems;i++){
|
||||
item = folderItem.item(i);
|
||||
if(item.typeName=='Folder'){
|
||||
_folders.push(item);
|
||||
}
|
||||
}
|
||||
return _folders
|
||||
}
|
||||
function getItems(folderItem){
|
||||
_folders = getFolders(folderItem);
|
||||
_comps = getComps(folderItem);
|
||||
while(_folders.length!=0){
|
||||
newFolderItem = _folders.shift();
|
||||
_comps = _comps.concat(getComps(newFolderItem));
|
||||
_folders = _folders.concat(getFolders(newFolderItem));
|
||||
}
|
||||
return _comps
|
||||
}
|
||||
function getLayers(compItem){
|
||||
layers = [];
|
||||
for(i=1;i<=compItem.numLayers;i++){
|
||||
item = compItem.layer(i);
|
||||
if(item.matchName == 'ADBE AV Layer'){
|
||||
if(item.source.typeName == 'Composition'){
|
||||
layers.push(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
return layers
|
||||
}
|
||||
|
||||
|
||||
//_replaceMe = getLayers(app.project.item(6))
|
||||
//b = app.project.ac
|
||||
function doIt(){
|
||||
app.beginUndoGroup('a')
|
||||
for(i=0;i<_replaceMe.length;i++){
|
||||
replaceable = _replaceMe[i];
|
||||
|
||||
hit = null;
|
||||
|
||||
for(k=0;k<_replaceWith.length;k++){
|
||||
replacement = _replaceWith[k];
|
||||
//alert(String(replaceable.source.name)+','+String(replacement.name))
|
||||
|
||||
if(replaceable.source.name==replacement.name){
|
||||
hit = replacement;
|
||||
}
|
||||
}
|
||||
if(hit!=null){
|
||||
_replaceMe[i].replaceSource(hit,false)
|
||||
}else{
|
||||
_replaceMe[i].property("Marker").addKey(0)
|
||||
}
|
||||
}
|
||||
app.endUndoGroup()
|
||||
}
|
||||
|
||||
function getComp(){
|
||||
comp = app.project.activeItem
|
||||
return comp
|
||||
}
|
||||
|
||||
/*
|
||||
//STEP 1
|
||||
_replaceMe = getLayers(getComp())
|
||||
|
||||
//STEP 2
|
||||
_replaceWith = getItems(app.project.activeItem)
|
||||
doIt()
|
||||
|
||||
*/
|
||||
|
||||
@@ -1 +1,26 @@
|
||||
template_str="\␍01 MAIN\␍ 02 PComp\␍03 Source Layers\␍04 Movies\␍05 Other Projects\␍06 Audio\␍07 References\␍";␍␍var FolderStructure = function(){␍ var template = template_str.split('\n');␍ template = template.slice(1,template.length-1);␍ var tab=" ";␍ for(var i = 0; i < template.length; i++){␍ alert(template[i].split(tab));␍ this[template[i]]='';␍ }␍ this.print = function(){␍ for (var i in this){␍ }␍ };␍};␍fs = new FolderStructure()␍␍fs.print();␍
|
||||
template_str="\
|
||||
01 MAIN\
|
||||
02 PComp\
|
||||
03 Source Layers\
|
||||
04 Movies\
|
||||
05 Other Projects\
|
||||
06 Audio\
|
||||
07 References\
|
||||
";
|
||||
|
||||
var FolderStructure = function(){
|
||||
var template = template_str.split('\n');
|
||||
template = template.slice(1,template.length-1);
|
||||
var tab=" ";
|
||||
for(var i = 0; i < template.length; i++){
|
||||
alert(template[i].split(tab));
|
||||
this[template[i]]='';
|
||||
}
|
||||
this.print = function(){
|
||||
for (var i in this){
|
||||
}
|
||||
};
|
||||
};
|
||||
fs = new FolderStructure()
|
||||
|
||||
fs.print();
|
||||
|
||||
@@ -1,52 +1,52 @@
|
||||
yGeneric_data = new Object();
|
||||
|
||||
yGeneric_data.scriptName = 'YTBGen';
|
||||
yGeneric_data.scriptDesc = 'YToolBox Generic Script is the base for adding tools.';
|
||||
yGeneric_data.scriptVer = '0.1a';
|
||||
yGeneric_data.webLink = 'yorchnet.com';
|
||||
yGeneric_data.img = YTB.icon;
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
|
||||
//it should be called from toolbox.
|
||||
yGeneric_data.buttonWidth=76;
|
||||
yGeneric_data.buttonHeight=30;
|
||||
|
||||
yGeneric_data.btnLayout = "btn_"+yGeneric_data.scriptName+": Button { preferredSize: ['"+ yGeneric_data.buttonWidth+"','"+ yGeneric_data.buttonHeight+"'], text:'"+yGeneric_data.scriptName+"', helpTip:'"+yGeneric_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yGeneric_data.res = "window { \
|
||||
type:'palette' , text:'"+yGeneric_data.scriptName+' '+yGeneric_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {icon:'"+String(yGeneric_data.img.path+"/"+yGeneric_data.img.name)+"',preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yGeneric_data.webLink+"', alignment:['fill','center'] }\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yGeneric_data_UI(){
|
||||
yGeneric_data.window = new Window ( yGeneric_data.res);
|
||||
yGeneric_data.window.show();
|
||||
}
|
||||
yGeneric_data.activate = build_yGeneric_data_UI ;
|
||||
//alert();
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
//if (typeof(YTB)=='undefined'){
|
||||
yGeneric_data.activate();
|
||||
//}else{
|
||||
//}
|
||||
yGeneric_data = new Object();
|
||||
|
||||
yGeneric_data.scriptName = 'YTBGen';
|
||||
yGeneric_data.scriptDesc = 'YToolBox Generic Script is the base for adding tools.';
|
||||
yGeneric_data.scriptVer = '0.1a';
|
||||
yGeneric_data.webLink = 'yorchnet.com';
|
||||
yGeneric_data.img = YTB.icon;
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
|
||||
//it should be called from toolbox.
|
||||
yGeneric_data.buttonWidth=76;
|
||||
yGeneric_data.buttonHeight=30;
|
||||
|
||||
yGeneric_data.btnLayout = "btn_"+yGeneric_data.scriptName+": Button { preferredSize: ['"+ yGeneric_data.buttonWidth+"','"+ yGeneric_data.buttonHeight+"'], text:'"+yGeneric_data.scriptName+"', helpTip:'"+yGeneric_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yGeneric_data.res = "window { \
|
||||
type:'palette' , text:'"+yGeneric_data.scriptName+' '+yGeneric_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {icon:'"+String(yGeneric_data.img.path+"/"+yGeneric_data.img.name)+"',preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yGeneric_data.webLink+"', alignment:['fill','center'] }\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yGeneric_data_UI(){
|
||||
yGeneric_data.window = new Window ( yGeneric_data.res);
|
||||
yGeneric_data.window.show();
|
||||
}
|
||||
yGeneric_data.activate = build_yGeneric_data_UI ;
|
||||
//alert();
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
//if (typeof(YTB)=='undefined'){
|
||||
yGeneric_data.activate();
|
||||
//}else{
|
||||
//}
|
||||
|
||||
@@ -1,176 +1,176 @@
|
||||
yMultiRenamer_data = new Object();
|
||||
|
||||
yMultiRenamer_data.scriptName = 'yMultiRenamer';
|
||||
yMultiRenamer_data.scriptDesc = 'Tool to make it easy to rename multiple project items and/or comp layers';
|
||||
yMultiRenamer_data.scriptVer = '0.1a';
|
||||
yMultiRenamer_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yMultiRenamer_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
|
||||
yMultiRenamer_data.buttonWidth=76;
|
||||
yMultiRenamer_data.buttonHeight=30;
|
||||
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yMultiRenamer_data.res = "window { \
|
||||
type:'palette' , text:'"+yMultiRenamer_data.scriptName+' '+yMultiRenamer_data.scriptVer+"', margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
\
|
||||
root_str_chk: Checkbox { text:'New root name:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',value:true },\
|
||||
root_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str_chk: Checkbox { text:'Search for:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
search_rplc_tit: StaticText { text:'Replace with:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_rplc: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false},\
|
||||
pre_chk: Checkbox { text:'AddAsPrefix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
pre: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
pre_chk: Checkbox { text:'AddAsSuffix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
su: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
recursive_optn: Checkbox { text:'Recursive', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
selectedCompsOnly_optn: Checkbox { text:'Selected Comps Only', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalItems_optn: Checkbox { text:'All Items', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalLayers_optn: Checkbox { text:'All Layers', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
global_optn: Checkbox { text:'Global', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
exec_btn: Button {text:'do It',preferredSize:[150,35],helpTip:'do it'}\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yMultiRenamer_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function yMultiRenamer(){
|
||||
|
||||
recursive_sw = yMultiRenamer_data.window.recursive_optn.value;
|
||||
selectedCompsOnly_sw = yMultiRenamer_data.window.selectedCompsOnly_optn.value;
|
||||
globalItems_sw = yMultiRenamer_data.window.globalItems_optn.value;
|
||||
globalLayers_sw = yMultiRenamer_data.window.globalLayers_optn.value;
|
||||
global_sw = yMultiRenamer_data.window.global_optn.value;
|
||||
|
||||
//Gathers all SELECTED items into projectItems,
|
||||
|
||||
var rawItems = app.project.items;
|
||||
var projectItems = [];
|
||||
for(i=1;i<=rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if( (currentItem.selected||(currentItem.parentFolder.selected&recursive_sw))||(globalItems_sw||global_sw) ){
|
||||
projectItems.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
//Gathers all SELECTED layers into projectLayers,
|
||||
var projectComps = [];
|
||||
for(i=1;i<rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if(currentItem.typeName=='Composition'){
|
||||
projectComps.push(currentItem)
|
||||
}
|
||||
}
|
||||
var rawLayers = [];
|
||||
for(i=0;i<projectComps.length;i++){
|
||||
for(j=1;j<=projectComps[i].layers.length;j++){
|
||||
rawLayers.push(projectComps[i].layers[j])
|
||||
}
|
||||
}
|
||||
var projectLayers = [];
|
||||
for(i=0;i<rawLayers.length;i++){
|
||||
currentItem = rawLayers[i];
|
||||
if((currentItem.selected&(currentItem.containingComp.selected||!selectedCompsOnly_sw))||(globalLayers_sw||global_sw) ){
|
||||
projectLayers.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
var allComps =[];
|
||||
for(i=1;i<=app.project.items.length;i++){
|
||||
if(app.project.items[i].typeName=='Composition'){
|
||||
allComps.push(app.project.items[i].selectedLayers);
|
||||
}
|
||||
}
|
||||
//alert(allComps);
|
||||
for(i=1;i<=app.project.items.length;i++){
|
||||
anItem = app.project.items[i]
|
||||
if(anItem.selected == true){
|
||||
projectItems.push(anItem);
|
||||
subItems = anItem.items;
|
||||
if(anItem.typeName=='Folder'){
|
||||
if((subItems.length>0)&(yMultiRenamer_data.window.subFolders_optn.value==true)){
|
||||
for(a=1;a<=subItems.length;a++){
|
||||
projectItems.push(subItems[a])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(yMultiRenamer_data.window.allComps_optn.value==false ){
|
||||
|
||||
if((app.project.activeItem!=null )&(app.project.activeItem.typeName=='Composition')){
|
||||
layers = app.project.activeItem.selectedLayers;
|
||||
for (i=0;i<layers.length;i++){
|
||||
projectItems.push(layers[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(yMultiRenamer_data.window.allComps_optn.value==true ){
|
||||
for(i=0;i<allComps.length;i++){
|
||||
layers = allComps[i].selectedLayers;
|
||||
alert(allComps[i]);
|
||||
for (L=0;L<layers.length;L++){
|
||||
projectItems.push(layers[i]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
alert(projectItems)
|
||||
*/
|
||||
allRenamable = projectItems.concat(projectLayers);
|
||||
//alert(allRenamable);
|
||||
app.beginUndoGroup('Multi Renamer');
|
||||
for(i=0;i<allRenamable.length;i++){
|
||||
writeLn('progress '+(parseInt(((i+1)/allRenamable.length)*100))+'%');
|
||||
n = '';
|
||||
if(i>0){
|
||||
n = ' '+String(i);
|
||||
}
|
||||
if(!allRenamable[i].locked){
|
||||
allRenamable[i].name = yMultiRenamer_data.window.root_str.text+n;
|
||||
//allRenamable[i].name = String(Math.random()); //EVIL LAUGHS
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yMultiRenamer_data_UI(){
|
||||
yMultiRenamer_data.window = new Window ( yMultiRenamer_data.res);
|
||||
yMultiRenamer_data.window.exec_btn.onClick = yMultiRenamer;
|
||||
yMultiRenamer_data.window.show();
|
||||
}
|
||||
yMultiRenamer_data.activate = build_yMultiRenamer_data_UI ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yMultiRenamer_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
|
||||
// a= yMultiRenamer()
|
||||
yMultiRenamer_data = new Object();
|
||||
|
||||
yMultiRenamer_data.scriptName = 'yMultiRenamer';
|
||||
yMultiRenamer_data.scriptDesc = 'Tool to make it easy to rename multiple project items and/or comp layers';
|
||||
yMultiRenamer_data.scriptVer = '0.1a';
|
||||
yMultiRenamer_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yMultiRenamer_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
|
||||
yMultiRenamer_data.buttonWidth=76;
|
||||
yMultiRenamer_data.buttonHeight=30;
|
||||
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yMultiRenamer_data.res = "window { \
|
||||
type:'palette' , text:'"+yMultiRenamer_data.scriptName+' '+yMultiRenamer_data.scriptVer+"', margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
\
|
||||
root_str_chk: Checkbox { text:'New root name:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',value:true },\
|
||||
root_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str_chk: Checkbox { text:'Search for:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
search_rplc_tit: StaticText { text:'Replace with:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_rplc: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false},\
|
||||
pre_chk: Checkbox { text:'AddAsPrefix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
pre: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
pre_chk: Checkbox { text:'AddAsSuffix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
su: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
recursive_optn: Checkbox { text:'Recursive', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
selectedCompsOnly_optn: Checkbox { text:'Selected Comps Only', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalItems_optn: Checkbox { text:'All Items', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalLayers_optn: Checkbox { text:'All Layers', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
global_optn: Checkbox { text:'Global', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
exec_btn: Button {text:'do It',preferredSize:[150,35],helpTip:'do it'}\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yMultiRenamer_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function yMultiRenamer(){
|
||||
|
||||
recursive_sw = yMultiRenamer_data.window.recursive_optn.value;
|
||||
selectedCompsOnly_sw = yMultiRenamer_data.window.selectedCompsOnly_optn.value;
|
||||
globalItems_sw = yMultiRenamer_data.window.globalItems_optn.value;
|
||||
globalLayers_sw = yMultiRenamer_data.window.globalLayers_optn.value;
|
||||
global_sw = yMultiRenamer_data.window.global_optn.value;
|
||||
|
||||
//Gathers all SELECTED items into projectItems,
|
||||
|
||||
var rawItems = app.project.items;
|
||||
var projectItems = [];
|
||||
for(i=1;i<=rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if( (currentItem.selected||(currentItem.parentFolder.selected&recursive_sw))||(globalItems_sw||global_sw) ){
|
||||
projectItems.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
//Gathers all SELECTED layers into projectLayers,
|
||||
var projectComps = [];
|
||||
for(i=1;i<rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if(currentItem.typeName=='Composition'){
|
||||
projectComps.push(currentItem)
|
||||
}
|
||||
}
|
||||
var rawLayers = [];
|
||||
for(i=0;i<projectComps.length;i++){
|
||||
for(j=1;j<=projectComps[i].layers.length;j++){
|
||||
rawLayers.push(projectComps[i].layers[j])
|
||||
}
|
||||
}
|
||||
var projectLayers = [];
|
||||
for(i=0;i<rawLayers.length;i++){
|
||||
currentItem = rawLayers[i];
|
||||
if((currentItem.selected&(currentItem.containingComp.selected||!selectedCompsOnly_sw))||(globalLayers_sw||global_sw) ){
|
||||
projectLayers.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
var allComps =[];
|
||||
for(i=1;i<=app.project.items.length;i++){
|
||||
if(app.project.items[i].typeName=='Composition'){
|
||||
allComps.push(app.project.items[i].selectedLayers);
|
||||
}
|
||||
}
|
||||
//alert(allComps);
|
||||
for(i=1;i<=app.project.items.length;i++){
|
||||
anItem = app.project.items[i]
|
||||
if(anItem.selected == true){
|
||||
projectItems.push(anItem);
|
||||
subItems = anItem.items;
|
||||
if(anItem.typeName=='Folder'){
|
||||
if((subItems.length>0)&(yMultiRenamer_data.window.subFolders_optn.value==true)){
|
||||
for(a=1;a<=subItems.length;a++){
|
||||
projectItems.push(subItems[a])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(yMultiRenamer_data.window.allComps_optn.value==false ){
|
||||
|
||||
if((app.project.activeItem!=null )&(app.project.activeItem.typeName=='Composition')){
|
||||
layers = app.project.activeItem.selectedLayers;
|
||||
for (i=0;i<layers.length;i++){
|
||||
projectItems.push(layers[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(yMultiRenamer_data.window.allComps_optn.value==true ){
|
||||
for(i=0;i<allComps.length;i++){
|
||||
layers = allComps[i].selectedLayers;
|
||||
alert(allComps[i]);
|
||||
for (L=0;L<layers.length;L++){
|
||||
projectItems.push(layers[i]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
alert(projectItems)
|
||||
*/
|
||||
allRenamable = projectItems.concat(projectLayers);
|
||||
//alert(allRenamable);
|
||||
app.beginUndoGroup('Multi Renamer');
|
||||
for(i=0;i<allRenamable.length;i++){
|
||||
writeLn('progress '+(parseInt(((i+1)/allRenamable.length)*100))+'%');
|
||||
n = '';
|
||||
if(i>0){
|
||||
n = ' '+String(i);
|
||||
}
|
||||
if(!allRenamable[i].locked){
|
||||
allRenamable[i].name = yMultiRenamer_data.window.root_str.text+n;
|
||||
//allRenamable[i].name = String(Math.random()); //EVIL LAUGHS
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yMultiRenamer_data_UI(){
|
||||
yMultiRenamer_data.window = new Window ( yMultiRenamer_data.res);
|
||||
yMultiRenamer_data.window.exec_btn.onClick = yMultiRenamer;
|
||||
yMultiRenamer_data.window.show();
|
||||
}
|
||||
yMultiRenamer_data.activate = build_yMultiRenamer_data_UI ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yMultiRenamer_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
|
||||
// a= yMultiRenamer()
|
||||
|
||||
@@ -1,151 +1,151 @@
|
||||
yMultiRenamer_data = new Object();
|
||||
|
||||
yMultiRenamer_data.scriptName = 'yMultiRenamer';
|
||||
yMultiRenamer_data.scriptDesc = 'Tool to make it easy to rename multiple project items and/or comp layers';
|
||||
yMultiRenamer_data.scriptVer = '0.2a';
|
||||
yMultiRenamer_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yMultiRenamer_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
|
||||
yMultiRenamer_data.buttonWidth=76;
|
||||
yMultiRenamer_data.buttonHeight=30;
|
||||
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yMultiRenamer_data.res = "window { \
|
||||
type:'palette' , text:'"+yMultiRenamer_data.scriptName+' '+yMultiRenamer_data.scriptVer+"', margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
\
|
||||
}";
|
||||
/*
|
||||
items_tab:Tab{text:'asdasd',helpTip:'asdasdasd'},\
|
||||
root_str_chk: Checkbox { text:'New root name:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',value:true },\
|
||||
root_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str_chk: Checkbox { text:'Search for:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
search_rplc_tit: StaticText { text:'Replace with:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_rplc: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false},\
|
||||
pre_chk: Checkbox { text:'AddAsPrefix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
pre: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
pre_chk: Checkbox { text:'AddAsSuffix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
su: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
recursive_optn: Checkbox { text:'Recursive', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
selectedCompsOnly_optn: Checkbox { text:'Selected Comps Only', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalItems_optn: Checkbox { text:'All Items', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalLayers_optn: Checkbox { text:'All Layers', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
global_optn: Checkbox { text:'Global', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
exec_btn: Button {text:'do It',preferredSize:[150,35],helpTip:'do it'}\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yMultiRenamer_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
*/
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
||||
function yMultiRenamer(){
|
||||
|
||||
recursive_sw = yMultiRenamer_data.window.recursive_optn.value;
|
||||
selectedCompsOnly_sw = yMultiRenamer_data.window.selectedCompsOnly_optn.value;
|
||||
globalItems_sw = yMultiRenamer_data.window.globalItems_optn.value;
|
||||
globalLayers_sw = yMultiRenamer_data.window.globalLayers_optn.value;
|
||||
global_sw = yMultiRenamer_data.window.global_optn.value;
|
||||
|
||||
|
||||
//Gathers all SELECTED items into projectItems,
|
||||
|
||||
var rawItems = app.project.items;
|
||||
var projectItems = [];
|
||||
for(i=1;i<=rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if( (currentItem.selected||(currentItem.parentFolder.selected&recursive_sw))||(globalItems_sw||global_sw) ){
|
||||
projectItems.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
//Gathers all SELECTED layers into projectLayers,
|
||||
var projectComps = [];
|
||||
for(i=1;i<rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if(currentItem.typeName=='Composition'){
|
||||
projectComps.push(currentItem)
|
||||
}
|
||||
}
|
||||
var rawLayers = [];
|
||||
for(i=0;i<projectComps.length;i++){
|
||||
for(j=1;j<=projectComps[i].layers.length;j++){
|
||||
rawLayers.push(projectComps[i].layers[j])
|
||||
}
|
||||
}
|
||||
var projectLayers = [];
|
||||
for(i=0;i<rawLayers.length;i++){
|
||||
currentItem = rawLayers[i];
|
||||
if((currentItem.selected&(currentItem.containingComp.selected||!selectedCompsOnly_sw))||(globalLayers_sw||global_sw) ){
|
||||
projectLayers.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
allRenamable = projectItems.concat(projectLayers);
|
||||
//alert(allRenamable);
|
||||
app.beginUndoGroup('Multi Renamer');
|
||||
for(i=0;i<allRenamable.length;i++){
|
||||
writeLn('progress '+(parseInt(((i+1)/allRenamable.length)*100))+'%');
|
||||
n = '';
|
||||
if(i>0){
|
||||
n = ' '+String(i);
|
||||
}
|
||||
if(!allRenamable[i].locked){
|
||||
allRenamable[i].name = yMultiRenamer_data.window.root_str.text+n;
|
||||
//allRenamable[i].name = String(Math.random()); //EVIL LAUGHS
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
*/
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yMultiRenamer_data_UI(){
|
||||
yMultiRenamer_data.window = new Window ( yMultiRenamer_data.res);
|
||||
yMultiRenamer_data.window.tbdpnl = yMultiRenamer_data.window.add("tabbedpanel");
|
||||
yMultiRenamer_data.window.tbdpnl.itemsTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Layers");
|
||||
yMultiRenamer_data.window.tbdpnl.layersTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Items");
|
||||
yMultiRenamer_data.window.tbdpnl.bothTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Both");
|
||||
yMultiRenamer_data.window.tbdpnl.txt = yMultiRenamer_data.window.add("statictext",undefined,"adsad");
|
||||
yMultiRenamer_data.window.tbdpnl.onChange = update;
|
||||
|
||||
|
||||
|
||||
//yMultiRenamer_data.window.exec_btn.onClick = yMultiRenamer;
|
||||
yMultiRenamer_data.window.show();
|
||||
}
|
||||
function update(){
|
||||
yMultiRenamer_data.window.tbdpnl.txt.text = yMultiRenamer_data.window.tbdpnl.selection.text;
|
||||
}
|
||||
yMultiRenamer_data.activate = build_yMultiRenamer_data_UI ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
|
||||
/*
|
||||
if (typeof(YTB)=='undefined'){
|
||||
*/
|
||||
yMultiRenamer_data.activate();
|
||||
/*}else{
|
||||
}
|
||||
*/
|
||||
|
||||
// a= yMultiRenamer()
|
||||
yMultiRenamer_data = new Object();
|
||||
|
||||
yMultiRenamer_data.scriptName = 'yMultiRenamer';
|
||||
yMultiRenamer_data.scriptDesc = 'Tool to make it easy to rename multiple project items and/or comp layers';
|
||||
yMultiRenamer_data.scriptVer = '0.2a';
|
||||
yMultiRenamer_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yMultiRenamer_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
|
||||
yMultiRenamer_data.buttonWidth=76;
|
||||
yMultiRenamer_data.buttonHeight=30;
|
||||
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yMultiRenamer_data.res = "window { \
|
||||
type:'palette' , text:'"+yMultiRenamer_data.scriptName+' '+yMultiRenamer_data.scriptVer+"', margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
\
|
||||
}";
|
||||
/*
|
||||
items_tab:Tab{text:'asdasd',helpTip:'asdasdasd'},\
|
||||
root_str_chk: Checkbox { text:'New root name:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',value:true },\
|
||||
root_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str_chk: Checkbox { text:'Search for:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_str: EditText { text:'', alignment:['fill','center'],helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
search_rplc_tit: StaticText { text:'Replace with:', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
search_rplc: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false},\
|
||||
pre_chk: Checkbox { text:'AddAsPrefix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
pre: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
pre_chk: Checkbox { text:'AddAsSuffix', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
su: EditText { text:'', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.',enabled:false },\
|
||||
recursive_optn: Checkbox { text:'Recursive', alignment:['fill','center'] , helpTip:'Includes Items and folders within folders and subfolders.' },\
|
||||
selectedCompsOnly_optn: Checkbox { text:'Selected Comps Only', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalItems_optn: Checkbox { text:'All Items', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
globalLayers_optn: Checkbox { text:'All Layers', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
global_optn: Checkbox { text:'Global', alignment:['fill','center'] , helpTip:'Inlcudes selected Layers even in UnActive Comps' },\
|
||||
exec_btn: Button {text:'do It',preferredSize:[150,35],helpTip:'do it'}\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yMultiRenamer_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
*/
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
||||
function yMultiRenamer(){
|
||||
|
||||
recursive_sw = yMultiRenamer_data.window.recursive_optn.value;
|
||||
selectedCompsOnly_sw = yMultiRenamer_data.window.selectedCompsOnly_optn.value;
|
||||
globalItems_sw = yMultiRenamer_data.window.globalItems_optn.value;
|
||||
globalLayers_sw = yMultiRenamer_data.window.globalLayers_optn.value;
|
||||
global_sw = yMultiRenamer_data.window.global_optn.value;
|
||||
|
||||
|
||||
//Gathers all SELECTED items into projectItems,
|
||||
|
||||
var rawItems = app.project.items;
|
||||
var projectItems = [];
|
||||
for(i=1;i<=rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if( (currentItem.selected||(currentItem.parentFolder.selected&recursive_sw))||(globalItems_sw||global_sw) ){
|
||||
projectItems.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
//Gathers all SELECTED layers into projectLayers,
|
||||
var projectComps = [];
|
||||
for(i=1;i<rawItems.length;i++){
|
||||
currentItem = rawItems[i];
|
||||
if(currentItem.typeName=='Composition'){
|
||||
projectComps.push(currentItem)
|
||||
}
|
||||
}
|
||||
var rawLayers = [];
|
||||
for(i=0;i<projectComps.length;i++){
|
||||
for(j=1;j<=projectComps[i].layers.length;j++){
|
||||
rawLayers.push(projectComps[i].layers[j])
|
||||
}
|
||||
}
|
||||
var projectLayers = [];
|
||||
for(i=0;i<rawLayers.length;i++){
|
||||
currentItem = rawLayers[i];
|
||||
if((currentItem.selected&(currentItem.containingComp.selected||!selectedCompsOnly_sw))||(globalLayers_sw||global_sw) ){
|
||||
projectLayers.push(currentItem);
|
||||
}
|
||||
}
|
||||
|
||||
allRenamable = projectItems.concat(projectLayers);
|
||||
//alert(allRenamable);
|
||||
app.beginUndoGroup('Multi Renamer');
|
||||
for(i=0;i<allRenamable.length;i++){
|
||||
writeLn('progress '+(parseInt(((i+1)/allRenamable.length)*100))+'%');
|
||||
n = '';
|
||||
if(i>0){
|
||||
n = ' '+String(i);
|
||||
}
|
||||
if(!allRenamable[i].locked){
|
||||
allRenamable[i].name = yMultiRenamer_data.window.root_str.text+n;
|
||||
//allRenamable[i].name = String(Math.random()); //EVIL LAUGHS
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
*/
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yMultiRenamer_data_UI(){
|
||||
yMultiRenamer_data.window = new Window ( yMultiRenamer_data.res);
|
||||
yMultiRenamer_data.window.tbdpnl = yMultiRenamer_data.window.add("tabbedpanel");
|
||||
yMultiRenamer_data.window.tbdpnl.itemsTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Layers");
|
||||
yMultiRenamer_data.window.tbdpnl.layersTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Items");
|
||||
yMultiRenamer_data.window.tbdpnl.bothTab = yMultiRenamer_data.window.tbdpnl.add("tab",undefined,"Both");
|
||||
yMultiRenamer_data.window.tbdpnl.txt = yMultiRenamer_data.window.add("statictext",undefined,"adsad");
|
||||
yMultiRenamer_data.window.tbdpnl.onChange = update;
|
||||
|
||||
|
||||
|
||||
//yMultiRenamer_data.window.exec_btn.onClick = yMultiRenamer;
|
||||
yMultiRenamer_data.window.show();
|
||||
}
|
||||
function update(){
|
||||
yMultiRenamer_data.window.tbdpnl.txt.text = yMultiRenamer_data.window.tbdpnl.selection.text;
|
||||
}
|
||||
yMultiRenamer_data.activate = build_yMultiRenamer_data_UI ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
|
||||
/*
|
||||
if (typeof(YTB)=='undefined'){
|
||||
*/
|
||||
yMultiRenamer_data.activate();
|
||||
/*}else{
|
||||
}
|
||||
*/
|
||||
|
||||
// a= yMultiRenamer()
|
||||
|
||||
@@ -1,40 +1,40 @@
|
||||
//app.project.renderQueue.render()
|
||||
sl = app.project.activeItem.selectedLayers;
|
||||
//a = app.project.renderQueue.items[1]
|
||||
|
||||
function Marker(time,comment,layer){
|
||||
|
||||
this.time = time;
|
||||
this.comment = comment;
|
||||
this.layer = layer;
|
||||
|
||||
return this
|
||||
}
|
||||
markers = [];
|
||||
|
||||
//alert(new marker(50,'asdads').time);
|
||||
|
||||
for(i=0;i<sl.length;i++){
|
||||
|
||||
for(j=1;j<=sl[i].property("Marker").numKeys;j++){
|
||||
var time = sl[i].property("Marker").keyTime(j);
|
||||
var comment = sl[i].property("Marker").keyValue(j).comment;
|
||||
var layer = sl[i];
|
||||
markers.push(new Marker(time,comment,layer));
|
||||
}
|
||||
}
|
||||
|
||||
function addMarkers(){
|
||||
for(i=0;i<markers.length;i++){
|
||||
var item = app.project.renderQueue.items.add(markers[i].layer.containingComp);
|
||||
item.timeSpanStart = markers[i].time;
|
||||
item.timeSpanDuration = markers[i].layer.containingComp.frameDuration;
|
||||
alert(item.timeSpanStart)
|
||||
}
|
||||
return 'Markers Succesfully added to render Queue.'
|
||||
}
|
||||
addMarkers()
|
||||
//nKeys = app.project.activeItem.lselectedLayers.property(1).numKeys;
|
||||
|
||||
//var myMarker = new MarkerValue("Fade Up");
|
||||
//app.project.activeItem.property("Marker").setValueAtTime(2, myMarker);
|
||||
//app.project.renderQueue.render()
|
||||
sl = app.project.activeItem.selectedLayers;
|
||||
//a = app.project.renderQueue.items[1]
|
||||
|
||||
function Marker(time,comment,layer){
|
||||
|
||||
this.time = time;
|
||||
this.comment = comment;
|
||||
this.layer = layer;
|
||||
|
||||
return this
|
||||
}
|
||||
markers = [];
|
||||
|
||||
//alert(new marker(50,'asdads').time);
|
||||
|
||||
for(i=0;i<sl.length;i++){
|
||||
|
||||
for(j=1;j<=sl[i].property("Marker").numKeys;j++){
|
||||
var time = sl[i].property("Marker").keyTime(j);
|
||||
var comment = sl[i].property("Marker").keyValue(j).comment;
|
||||
var layer = sl[i];
|
||||
markers.push(new Marker(time,comment,layer));
|
||||
}
|
||||
}
|
||||
|
||||
function addMarkers(){
|
||||
for(i=0;i<markers.length;i++){
|
||||
var item = app.project.renderQueue.items.add(markers[i].layer.containingComp);
|
||||
item.timeSpanStart = markers[i].time;
|
||||
item.timeSpanDuration = markers[i].layer.containingComp.frameDuration;
|
||||
alert(item.timeSpanStart)
|
||||
}
|
||||
return 'Markers Succesfully added to render Queue.'
|
||||
}
|
||||
addMarkers()
|
||||
//nKeys = app.project.activeItem.lselectedLayers.property(1).numKeys;
|
||||
|
||||
//var myMarker = new MarkerValue("Fade Up");
|
||||
//app.project.activeItem.property("Marker").setValueAtTime(2, myMarker);
|
||||
|
||||
@@ -1,65 +1,65 @@
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
function yExportPng(comp,time,name,path){
|
||||
var oldResolutionFactor = comp.resolutionFactor;
|
||||
comp.resolutionFactor=[1,1];
|
||||
if(typeof(name)=='undefined'){
|
||||
var name = app.project.activeItem.name;
|
||||
}
|
||||
if(typeof(comp)=='undefined'){
|
||||
var comp = app.project.activeItem;
|
||||
}
|
||||
if(typeof(path)=='undefined'){
|
||||
var path = app.project.file.path;
|
||||
}
|
||||
//alert(path+'/'+name+'.png')
|
||||
var file = new File(path+'/'+name+'.png');
|
||||
comp.saveFrameToPng(time,file);
|
||||
file.close();
|
||||
comp.resolutionFactor=oldResolutionFactor;
|
||||
return 'Exported.'
|
||||
}
|
||||
|
||||
function marker(time,text){
|
||||
this.time = time;
|
||||
this.text = text;
|
||||
return this
|
||||
}
|
||||
|
||||
function exportMartkers(){
|
||||
|
||||
activeItem = app.project.activeItem;
|
||||
myString = 'export_frames';
|
||||
|
||||
if(activeItem.layer(myString)!=null){
|
||||
myLayer =activeItem.layer(myString);
|
||||
frames = [];
|
||||
|
||||
for(i=1;i<=myLayer.property("Marker").numKeys;i++){
|
||||
var time = myLayer.property("Marker").keyTime(i);
|
||||
var text = mergeMultiLine(myLayer.property("Marker").keyValue(i).comment);
|
||||
frames.push(new marker(time,text));
|
||||
}
|
||||
if(frames.length==0){
|
||||
alert('The '+myString+' layer contains no markers.','yRenderMarkers');
|
||||
}
|
||||
|
||||
for(i=0;i<frames.length;i++){
|
||||
var n = activeItem.name+'_'+frames[i].text;
|
||||
yExportPng(activeItem,frames[i].time,n,'/c')
|
||||
}
|
||||
//alert(frames);
|
||||
}else{
|
||||
createNull = confirm('No '+myString+' layer found, do you want to create one?',true,'yRenderMarkers');
|
||||
if(createNull==true){
|
||||
myNull = app.project.activeItem.layers.addNull();
|
||||
myNull.name = myString;
|
||||
}else{
|
||||
alert('A '+myString+' layer is required for the script to work.','yRenderMarkers');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
exportMartkers();
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
function yExportPng(comp,time,name,path){
|
||||
var oldResolutionFactor = comp.resolutionFactor;
|
||||
comp.resolutionFactor=[1,1];
|
||||
if(typeof(name)=='undefined'){
|
||||
var name = app.project.activeItem.name;
|
||||
}
|
||||
if(typeof(comp)=='undefined'){
|
||||
var comp = app.project.activeItem;
|
||||
}
|
||||
if(typeof(path)=='undefined'){
|
||||
var path = app.project.file.path;
|
||||
}
|
||||
//alert(path+'/'+name+'.png')
|
||||
var file = new File(path+'/'+name+'.png');
|
||||
comp.saveFrameToPng(time,file);
|
||||
file.close();
|
||||
comp.resolutionFactor=oldResolutionFactor;
|
||||
return 'Exported.'
|
||||
}
|
||||
|
||||
function marker(time,text){
|
||||
this.time = time;
|
||||
this.text = text;
|
||||
return this
|
||||
}
|
||||
|
||||
function exportMartkers(){
|
||||
|
||||
activeItem = app.project.activeItem;
|
||||
myString = 'export_frames';
|
||||
|
||||
if(activeItem.layer(myString)!=null){
|
||||
myLayer =activeItem.layer(myString);
|
||||
frames = [];
|
||||
|
||||
for(i=1;i<=myLayer.property("Marker").numKeys;i++){
|
||||
var time = myLayer.property("Marker").keyTime(i);
|
||||
var text = mergeMultiLine(myLayer.property("Marker").keyValue(i).comment);
|
||||
frames.push(new marker(time,text));
|
||||
}
|
||||
if(frames.length==0){
|
||||
alert('The '+myString+' layer contains no markers.','yRenderMarkers');
|
||||
}
|
||||
|
||||
for(i=0;i<frames.length;i++){
|
||||
var n = activeItem.name+'_'+frames[i].text;
|
||||
yExportPng(activeItem,frames[i].time,n,'/c')
|
||||
}
|
||||
//alert(frames);
|
||||
}else{
|
||||
createNull = confirm('No '+myString+' layer found, do you want to create one?',true,'yRenderMarkers');
|
||||
if(createNull==true){
|
||||
myNull = app.project.activeItem.layers.addNull();
|
||||
myNull.name = myString;
|
||||
}else{
|
||||
alert('A '+myString+' layer is required for the script to work.','yRenderMarkers');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
exportMartkers();
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
#include "usefulFunctions.jsx"
|
||||
alert(pad(5,10))
|
||||
/*
|
||||
app.project.renderQueue.items.add(app.project.item(1))
|
||||
a = app.project.renderQueue.items[1];
|
||||
a = app.project.activeItem;
|
||||
alert(a)
|
||||
*/
|
||||
|
||||
function rndrPatch(){
|
||||
|
||||
if(String(app.project.activeItem)=='[object CompItem]'){
|
||||
var myComp = app.project.activeItem;
|
||||
var item =app.project.renderQueue.items.add(myComp);
|
||||
item.timeSpanStart = app.project.activeItem.workAreaStart;
|
||||
item.timeSpanDuration = app.project.activeItem.workAreaDuration;
|
||||
return 'Done'
|
||||
}else{
|
||||
return 'Error'
|
||||
}
|
||||
}
|
||||
|
||||
function rndrAddStamp(RQItem){
|
||||
return RQItem
|
||||
}
|
||||
|
||||
function rndrRelocate(){
|
||||
justEnabled = true;
|
||||
var numItems = app.project.renderQueue.items.length;
|
||||
var myFolder = Folder.selectDialog();
|
||||
|
||||
for(i=1;i<=numItems;i++){
|
||||
myItem =app.project.renderQueue.item(i);
|
||||
|
||||
if(!justEnabled||myItem.render){
|
||||
var f =new File(myFolder.absoluteURI+'/'+myItem.outputModule(1).file.name);
|
||||
myItem.outputModule(1).file = f;
|
||||
}
|
||||
}
|
||||
return 'Done.'
|
||||
}
|
||||
|
||||
//rndrRelocate()
|
||||
/*
|
||||
myFolder = Folder.selectDialog();
|
||||
a = new File(myFolder.absoluteURI+'/'+'asdasd_[######].png');
|
||||
app.project.renderQueue.item(1).outputModule(1).file = a;
|
||||
//a = rndrAddStamp(app.project.renderQueue.item(1).outputModule(1).file.name);
|
||||
*/
|
||||
rndrPatch()
|
||||
#include "usefulFunctions.jsx"
|
||||
alert(pad(5,10))
|
||||
/*
|
||||
app.project.renderQueue.items.add(app.project.item(1))
|
||||
a = app.project.renderQueue.items[1];
|
||||
a = app.project.activeItem;
|
||||
alert(a)
|
||||
*/
|
||||
|
||||
function rndrPatch(){
|
||||
|
||||
if(String(app.project.activeItem)=='[object CompItem]'){
|
||||
var myComp = app.project.activeItem;
|
||||
var item =app.project.renderQueue.items.add(myComp);
|
||||
item.timeSpanStart = app.project.activeItem.workAreaStart;
|
||||
item.timeSpanDuration = app.project.activeItem.workAreaDuration;
|
||||
return 'Done'
|
||||
}else{
|
||||
return 'Error'
|
||||
}
|
||||
}
|
||||
|
||||
function rndrAddStamp(RQItem){
|
||||
return RQItem
|
||||
}
|
||||
|
||||
function rndrRelocate(){
|
||||
justEnabled = true;
|
||||
var numItems = app.project.renderQueue.items.length;
|
||||
var myFolder = Folder.selectDialog();
|
||||
|
||||
for(i=1;i<=numItems;i++){
|
||||
myItem =app.project.renderQueue.item(i);
|
||||
|
||||
if(!justEnabled||myItem.render){
|
||||
var f =new File(myFolder.absoluteURI+'/'+myItem.outputModule(1).file.name);
|
||||
myItem.outputModule(1).file = f;
|
||||
}
|
||||
}
|
||||
return 'Done.'
|
||||
}
|
||||
|
||||
//rndrRelocate()
|
||||
/*
|
||||
myFolder = Folder.selectDialog();
|
||||
a = new File(myFolder.absoluteURI+'/'+'asdasd_[######].png');
|
||||
app.project.renderQueue.item(1).outputModule(1).file = a;
|
||||
//a = rndrAddStamp(app.project.renderQueue.item(1).outputModule(1).file.name);
|
||||
*/
|
||||
rndrPatch()
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
if (AVLayer.prototype. getPins==null) AVLayer.prototype. getPins=function(){ //Extends the AVLayer class with the getPinsfunctions which returns the Layer's property groups which are pins.
|
||||
this.selectedPins = [];
|
||||
for(prop=0;prop<this.selectedProperties.length;prop++){
|
||||
p= this.selectedProperties[prop];
|
||||
if(p.matchName=="ADBE FreePin3 PosPin Atom"){
|
||||
this.selectedPins.push(p);
|
||||
}
|
||||
}
|
||||
return this.selectedPins;
|
||||
}
|
||||
|
||||
function yMkUnique(aString){
|
||||
myLayers = app.project.activeItem.layers;
|
||||
uniqueness = 1;
|
||||
for(i=1;i<=myLayers.length;i++){
|
||||
if(aString == myLayers[i].name){
|
||||
uniqueness++;
|
||||
}
|
||||
}
|
||||
return(aString+'_'+uniqueness);
|
||||
}
|
||||
s = 'asdas_1';
|
||||
alert(s.length);
|
||||
alert(yMkUnique('apple'))
|
||||
if (AVLayer.prototype. getPins==null) AVLayer.prototype. getPins=function(){ //Extends the AVLayer class with the getPinsfunctions which returns the Layer's property groups which are pins.
|
||||
this.selectedPins = [];
|
||||
for(prop=0;prop<this.selectedProperties.length;prop++){
|
||||
p= this.selectedProperties[prop];
|
||||
if(p.matchName=="ADBE FreePin3 PosPin Atom"){
|
||||
this.selectedPins.push(p);
|
||||
}
|
||||
}
|
||||
return this.selectedPins;
|
||||
}
|
||||
|
||||
function yMkUnique(aString){
|
||||
myLayers = app.project.activeItem.layers;
|
||||
uniqueness = 1;
|
||||
for(i=1;i<=myLayers.length;i++){
|
||||
if(aString == myLayers[i].name){
|
||||
uniqueness++;
|
||||
}
|
||||
}
|
||||
return(aString+'_'+uniqueness);
|
||||
}
|
||||
s = 'asdas_1';
|
||||
alert(s.length);
|
||||
alert(yMkUnique('apple'))
|
||||
|
||||
+108
-108
@@ -1,108 +1,108 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
|
||||
yOffsetCornerPin_data = new Object();
|
||||
|
||||
yOffsetCornerPin_data.scriptName = 'YCornerPinOffset';
|
||||
yOffsetCornerPin_data.scriptDesc = 'Offsets each corner of a CornerPin Effect';
|
||||
yOffsetCornerPin_data.scriptVer = '0.1a';
|
||||
yOffsetCornerPin_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yOffsetCornerPin_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
/*
|
||||
yOffsetCornerPin_data.buttonWidth=76;
|
||||
yOffsetCornerPin_data.buttonHeight=30;
|
||||
*/
|
||||
yOffsetCornerPin_data.btnLayout = "btn_"+ yOffsetCornerPin_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yOffsetCornerPin_data.scriptName+"', helpTip:'"+yOffsetCornerPin_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yOffsetCornerPin_data.res = "window { \
|
||||
type:'palette' , text:'"+yOffsetCornerPin_data.scriptName+' '+yOffsetCornerPin_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yOffsetCornerPin_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
function getSelectedCornerPins() {
|
||||
/* Function that returns a list of effect objects
|
||||
that match any of the names
|
||||
specified in validCornerPinNames. */
|
||||
validCornerPinNames = ["ADBE Corner Pin","CC Power Pin"]
|
||||
selectedLayers = app.project.activeItem.selectedLayers
|
||||
cornerPins = []
|
||||
for (layer=0;layer<selectedLayers.length;layer++){
|
||||
myLayer = selectedLayers[layer];
|
||||
myEffects = myLayer.property("ADBE Effect Parade");
|
||||
for(effect=1;effect<=myEffects.numProperties;effect++){
|
||||
for(validCornerPinName=0;validCornerPinName<validCornerPinNames.length;validCornerPinName++){
|
||||
if ( myEffects.property(effect).matchName == validCornerPinNames[validCornerPinName] && myEffects.property(effect).selected == true){
|
||||
cornerPins.push(myEffects.property(effect))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return cornerPins
|
||||
}
|
||||
function getLayer(effect){
|
||||
/* If given a layer's effect object
|
||||
this function returns the layer object */
|
||||
layer = effect.parentProperty.parentProperty
|
||||
return layer
|
||||
}
|
||||
function addEffect(layer,effect_string,effect_name){
|
||||
new_effect = layer.property("ADBE Effect Parade").addProperty(effect_string);
|
||||
new_effect.name = effect_name;
|
||||
return new_effect
|
||||
}
|
||||
function addPointControls(effect){
|
||||
/*calling the getLayer(effect) is resetting my effect object to null, and not allowing me to do everything in a single sitting. I think it has to do with variable scopes.*/
|
||||
local = {};
|
||||
local.effect = effect;
|
||||
base_name = local.effect.name;
|
||||
names = ["Upper Left","Upper Right","Lower Left","Lower Right"];
|
||||
|
||||
for (i=1;i<=4;i++){
|
||||
expression = 'try{\
|
||||
effect("'+base_name+'")('+(i)+')+effect("'+base_name+'_'+names[i-1]+'_'+'Offset'+'")("Point")\
|
||||
}catch(err){\
|
||||
[0,0]\
|
||||
}'
|
||||
local.effect.property(i).expression = expression;
|
||||
}
|
||||
layer = getLayer(effect);
|
||||
for(i=0;i<=3;i++){
|
||||
new_effect = addEffect(layer,"Point Control",base_name+"_"+names[i]+"_"+"Offset");
|
||||
new_effect.property("Point").setValue([0,0]);
|
||||
}
|
||||
}
|
||||
function processCornerPins(){
|
||||
app.beginUndoGroup('ySetProject');
|
||||
pins = getSelectedCornerPins();
|
||||
for(pin=0;pin<pins.length;pin++){
|
||||
addPointControls(pins[pin])
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function build_yOffsetCornerPin_data_UI(){
|
||||
yOffsetCornerPin_data.window = new Window ( yOffsetCornerPin_data.res);
|
||||
yOffsetCornerPin_data.window.show();
|
||||
}
|
||||
yOffsetCornerPin_data.activate =processCornerPins ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yOffsetCornerPin_data.activate();
|
||||
}else{
|
||||
}
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
|
||||
yOffsetCornerPin_data = new Object();
|
||||
|
||||
yOffsetCornerPin_data.scriptName = 'YCornerPinOffset';
|
||||
yOffsetCornerPin_data.scriptDesc = 'Offsets each corner of a CornerPin Effect';
|
||||
yOffsetCornerPin_data.scriptVer = '0.1a';
|
||||
yOffsetCornerPin_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yOffsetCornerPin_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
/*
|
||||
yOffsetCornerPin_data.buttonWidth=76;
|
||||
yOffsetCornerPin_data.buttonHeight=30;
|
||||
*/
|
||||
yOffsetCornerPin_data.btnLayout = "btn_"+ yOffsetCornerPin_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yOffsetCornerPin_data.scriptName+"', helpTip:'"+yOffsetCornerPin_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yOffsetCornerPin_data.res = "window { \
|
||||
type:'palette' , text:'"+yOffsetCornerPin_data.scriptName+' '+yOffsetCornerPin_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yOffsetCornerPin_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
function getSelectedCornerPins() {
|
||||
/* Function that returns a list of effect objects
|
||||
that match any of the names
|
||||
specified in validCornerPinNames. */
|
||||
validCornerPinNames = ["ADBE Corner Pin","CC Power Pin"]
|
||||
selectedLayers = app.project.activeItem.selectedLayers
|
||||
cornerPins = []
|
||||
for (layer=0;layer<selectedLayers.length;layer++){
|
||||
myLayer = selectedLayers[layer];
|
||||
myEffects = myLayer.property("ADBE Effect Parade");
|
||||
for(effect=1;effect<=myEffects.numProperties;effect++){
|
||||
for(validCornerPinName=0;validCornerPinName<validCornerPinNames.length;validCornerPinName++){
|
||||
if ( myEffects.property(effect).matchName == validCornerPinNames[validCornerPinName] && myEffects.property(effect).selected == true){
|
||||
cornerPins.push(myEffects.property(effect))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return cornerPins
|
||||
}
|
||||
function getLayer(effect){
|
||||
/* If given a layer's effect object
|
||||
this function returns the layer object */
|
||||
layer = effect.parentProperty.parentProperty
|
||||
return layer
|
||||
}
|
||||
function addEffect(layer,effect_string,effect_name){
|
||||
new_effect = layer.property("ADBE Effect Parade").addProperty(effect_string);
|
||||
new_effect.name = effect_name;
|
||||
return new_effect
|
||||
}
|
||||
function addPointControls(effect){
|
||||
/*calling the getLayer(effect) is resetting my effect object to null, and not allowing me to do everything in a single sitting. I think it has to do with variable scopes.*/
|
||||
local = {};
|
||||
local.effect = effect;
|
||||
base_name = local.effect.name;
|
||||
names = ["Upper Left","Upper Right","Lower Left","Lower Right"];
|
||||
|
||||
for (i=1;i<=4;i++){
|
||||
expression = 'try{\
|
||||
effect("'+base_name+'")('+(i)+')+effect("'+base_name+'_'+names[i-1]+'_'+'Offset'+'")("Point")\
|
||||
}catch(err){\
|
||||
[0,0]\
|
||||
}'
|
||||
local.effect.property(i).expression = expression;
|
||||
}
|
||||
layer = getLayer(effect);
|
||||
for(i=0;i<=3;i++){
|
||||
new_effect = addEffect(layer,"Point Control",base_name+"_"+names[i]+"_"+"Offset");
|
||||
new_effect.property("Point").setValue([0,0]);
|
||||
}
|
||||
}
|
||||
function processCornerPins(){
|
||||
app.beginUndoGroup('ySetProject');
|
||||
pins = getSelectedCornerPins();
|
||||
for(pin=0;pin<pins.length;pin++){
|
||||
addPointControls(pins[pin])
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function build_yOffsetCornerPin_data_UI(){
|
||||
yOffsetCornerPin_data.window = new Window ( yOffsetCornerPin_data.res);
|
||||
yOffsetCornerPin_data.window.show();
|
||||
}
|
||||
yOffsetCornerPin_data.activate =processCornerPins ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yOffsetCornerPin_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
@@ -1,80 +1,89 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YGenericTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yGenericTool",
|
||||
version : 0.0,
|
||||
stage : "development",
|
||||
description : "Generic script to use as a base for new tools.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window ( this.res );
|
||||
this.window.show() ;
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
this.createUI();
|
||||
app.beginUndoGroup( this.info.name );
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.yMainFunction;
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yGenericTool = new YGenericTool();
|
||||
yGenericTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YGenericTool());
|
||||
}
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YGenericTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yGenericTool",
|
||||
version : 0.0,
|
||||
stage : "development",
|
||||
description : "Generic script to use as a base for new tools.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
res =
|
||||
"window {\
|
||||
resizeable : true\
|
||||
closeButton : true\
|
||||
text:'wtf'\
|
||||
}"
|
||||
|
||||
this.window = new Window( res );
|
||||
this.window.layout.layout(true);
|
||||
this.window.center();
|
||||
this.window.show();
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
this.createUI();
|
||||
}
|
||||
this.activate = function activate()
|
||||
{
|
||||
this.yTool.yMainFunction();
|
||||
}
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yGenericTool = new YGenericTool();
|
||||
yGenericTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YGenericTool());
|
||||
}
|
||||
|
||||
+17
-17
@@ -1,17 +1,17 @@
|
||||
if (Array.prototype.getOne==null) Array.prototype.getOne=function(item){ //Extends the Array class with the getOne functions wich
|
||||
var val = -1;
|
||||
for(i=0;i<=this.length;i++){
|
||||
if(this[i]==item){
|
||||
var val = i;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
function yFactor(n,f){
|
||||
if((typeof(n)=='number'&&typeof(f)=='number')&&(n>f)){
|
||||
value = n - (n%f);
|
||||
return(value);
|
||||
}else{
|
||||
alert('error');
|
||||
}
|
||||
}
|
||||
if (Array.prototype.getOne==null) Array.prototype.getOne=function(item){ //Extends the Array class with the getOne functions wich
|
||||
var val = -1;
|
||||
for(i=0;i<=this.length;i++){
|
||||
if(this[i]==item){
|
||||
var val = i;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
function yFactor(n,f){
|
||||
if((typeof(n)=='number'&&typeof(f)=='number')&&(n>f)){
|
||||
value = n - (n%f);
|
||||
return(value);
|
||||
}else{
|
||||
alert('error');
|
||||
}
|
||||
}
|
||||
|
||||
+120
-120
@@ -1,120 +1,120 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
function YColorProbe()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yColorProbe",
|
||||
version : 0.0,
|
||||
stage : "development",
|
||||
description : "Creates a Null that will Sample the selected layer within the specified radius.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.getInfo = function getInfo( )
|
||||
{
|
||||
alert("asdasdasd");
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window ( this.res );
|
||||
this.window.show() ;
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
app.beginUndoGroup(this.yTool.info.name); // yTool is a refernece to the Tool object, because THIS in this context returns the ButtonObject....
|
||||
|
||||
//It works with Sampled layers at a 100% scale only.
|
||||
try
|
||||
{
|
||||
sel = app.project.activeItem.selectedLayers[0];
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
sel = undefined;
|
||||
}
|
||||
|
||||
myNull = app.project.activeItem.layers.addNull();
|
||||
myNull.transform.anchorPoint.setValue([50,50]);
|
||||
myNull.name = yUniStr('colorProbe'); //Generates a Unique Name by adding numbers at the end of the main string.
|
||||
layerCTRL = myNull("Effects").addProperty("Layer Control");
|
||||
layerCTRL.name='sampledLayer';
|
||||
colorCTRL = myNull("Effects").addProperty("Color Control");
|
||||
colorCTRL.name='outColor';
|
||||
radiusCTRL = myNull("Effects").addProperty("Slider Control");
|
||||
radiusCTRL.name ='radius';
|
||||
myNull("Effects")("radius")('Slider').setValue(5);
|
||||
colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\
|
||||
p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\
|
||||
r = thisLayer("Effects")("radius")("Slider");\
|
||||
myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)';
|
||||
myNull("Effects")('outColor')('Color').expression=colExp;
|
||||
myNull.label=2;
|
||||
myNull.source.height=30;
|
||||
myNull.source.width=30;
|
||||
myNull.anchorPoint=(15,15);
|
||||
|
||||
if(sel!==undefined){
|
||||
myNull("Effects")('sampledLayer')(1).setValue(sel.index);
|
||||
}
|
||||
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.yMainFunction;
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yColorProbe = new YColorProbe();
|
||||
yColorProbe.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YColorProbe());
|
||||
}
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
function YColorProbe()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yColorProbe",
|
||||
version : 0.0,
|
||||
stage : "development",
|
||||
description : "Creates a Null that will Sample the selected layer within the specified radius.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.getInfo = function getInfo( )
|
||||
{
|
||||
alert("asdasdasd");
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window ( this.res );
|
||||
this.window.show() ;
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
app.beginUndoGroup(this.yTool.info.name); // yTool is a refernece to the Tool object, because THIS in this context returns the ButtonObject....
|
||||
|
||||
//It works with Sampled layers at a 100% scale only.
|
||||
try
|
||||
{
|
||||
sel = app.project.activeItem.selectedLayers[0];
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
sel = undefined;
|
||||
}
|
||||
|
||||
myNull = app.project.activeItem.layers.addNull();
|
||||
myNull.transform.anchorPoint.setValue([50,50]);
|
||||
myNull.name = yUniStr('colorProbe'); //Generates a Unique Name by adding numbers at the end of the main string.
|
||||
layerCTRL = myNull("Effects").addProperty("Layer Control");
|
||||
layerCTRL.name='sampledLayer';
|
||||
colorCTRL = myNull("Effects").addProperty("Color Control");
|
||||
colorCTRL.name='outColor';
|
||||
radiusCTRL = myNull("Effects").addProperty("Slider Control");
|
||||
radiusCTRL.name ='radius';
|
||||
myNull("Effects")("radius")('Slider').setValue(5);
|
||||
colExp = 'myLayer = thisLayer("Effects")("sampledLayer")("Layer");\
|
||||
p = thisLayer.toWorld(thisLayer.transform.anchorPoint);\
|
||||
r = thisLayer("Effects")("radius")("Slider");\
|
||||
myLayer.sampleImage(p, radius = [r, r], postEffect=true, t=time)';
|
||||
myNull("Effects")('outColor')('Color').expression=colExp;
|
||||
myNull.label=2;
|
||||
myNull.source.height=30;
|
||||
myNull.source.width=30;
|
||||
myNull.anchorPoint=(15,15);
|
||||
|
||||
if(sel!==undefined){
|
||||
myNull("Effects")('sampledLayer')(1).setValue(sel.index);
|
||||
}
|
||||
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.yMainFunction;
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yColorProbe = new YColorProbe();
|
||||
yColorProbe.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YColorProbe());
|
||||
}
|
||||
|
||||
+245
-245
@@ -1,245 +1,245 @@
|
||||
yPuppetRig_data = new Object();
|
||||
|
||||
yPuppetRig_data.scriptName = 'yPuppetRigger';
|
||||
yPuppetRig_data.scriptVer = 'v0.3.3a';
|
||||
yPuppetRig_data.scriptDesc = 'Tools for streamlining puppet-based animation rigs.';
|
||||
yPuppetRig_data.string_info = 'yorchnet.com';
|
||||
yPuppetRig_data.e_000 = 'e_000 : No layers are selected.';
|
||||
yPuppetRig_data.e_001 = 'e_001 : Layer contains no effects.';
|
||||
yPuppetRig_data.e_002 = 'e_002 : Layer contains no Puppet effects.';
|
||||
yPuppetRig_data.string_001 = 'Rig Pins';
|
||||
yPuppetRig_data.string_001x = 'Rigs Selected Pins on Layer';
|
||||
yPuppetRig_data.string_002 = 'Rig Layers';
|
||||
yPuppetRig_data.string_002x = 'Rigs Selected Layers';
|
||||
yPuppetRig_data.string_003 = 'Rig All';
|
||||
yPuppetRig_data.string_003x = 'Rig All Layers in Comp';
|
||||
|
||||
|
||||
//it should be called from toolbox.
|
||||
yPuppetRig_data.buttonWidth=76;
|
||||
yPuppetRig_data.buttonHeight=30;
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yPuppetRig_data);
|
||||
yPuppetRig_data.btnLayout = "btn_"+ yPuppetRig_data.scriptName+": Button { preferredSize: ['"+YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yPuppetRig_data.scriptName+"', helpTip:'"+yPuppetRig_data.scriptDesc+"' }";
|
||||
}
|
||||
|
||||
function build_yPuppetRig_data_UI(){
|
||||
//define custom strings for error messages, names, button names and helpTips. //Defines Layout variables.
|
||||
|
||||
yPuppetRig_data.res = "window { \
|
||||
type:'palette' , text:'"+yPuppetRig_data.scriptName+" "+yPuppetRig_data.scriptVer+"',margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
grp: Group { orientation:'column' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
btn_01: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_001+"', helpTip:'"+yPuppetRig_data.string_001x+"' }, \
|
||||
btn_02: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_002+"', helpTip:'"+yPuppetRig_data.string_002x+"' }, \
|
||||
btn_03: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_003+"', helpTip:'"+yPuppetRig_data.string_003x+"' }, \
|
||||
chk_optn: Checkbox { text:'Enable Options', alignment:['fill','center'] , helpTip:'Enable Advanced Options' },\
|
||||
optn: Panel{ text:'Options' , visible:'false', orientation:'row' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
nullSizeGrp: Group{ \
|
||||
orientation:'column' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
sldr_tit: StaticText { text:'Set Null Size in Pixels.', alignment:['fill','center'] },\
|
||||
sldr: Slider { value:'125' , minvalue:'6' , maxvalue:'250' , text:'alaverga', helpTip:'"+yPuppetRig_data.string_001x+"' }, \
|
||||
sldr_Values_txt: Group{\
|
||||
orientation:'row' , alignment:['fill','fill'] , alignChildren:['center','fill'] , spacing:'2' , margin:'5', \
|
||||
mintxt: StaticText { text:'small', alignment:['left','fill'] },\
|
||||
medtxt: StaticText { text:'medium', alignment:['center','fill'] },\
|
||||
maxtxt: StaticText { text:'big', alignment:['right','fill'] },\
|
||||
}\
|
||||
otherOptionsGrp: Group{ \
|
||||
orientation:'row' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'8' , margin:'5', \
|
||||
chk_box_01: Checkbox { text:'Enable Draft Mode.', alignment:['fill','center'] , helpTip:'Mostly for oldschool pixelated stuff' },\
|
||||
chk_box_02: Checkbox { text:'Lock Layer', alignment:['fill','center'] , helpTip:'Lock layer after rigging.' },\
|
||||
},\
|
||||
}\
|
||||
},\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icn_app: Image {icon:'"+ YTB.icon.path+'/'+ YTB.icon.name+"',preferredSize: [15, 18]},\
|
||||
txt_info: StaticText { text:'"+yPuppetRig_data.string_info+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
}\
|
||||
}";
|
||||
|
||||
//if (typeof(YTB)!=='undefined'){
|
||||
yPuppetRigDialog = new Window (yPuppetRig_data.res); // Creates Window
|
||||
//}
|
||||
//yPuppetRigDialog.onDraw = customColors(yPuppetRigDialog);
|
||||
yPuppetRigDialog.grp.optn.enabled = false;
|
||||
yPuppetRigDialog.show(); //Shows Window.
|
||||
|
||||
|
||||
|
||||
//yPuppetRigDialog.grp.info.icn_app.image = YTB.icon.substring(3,YTB.icon.length);
|
||||
yPuppetRigDialog.grp.btn_01.onClick = runRigPin; //Defines Button Action
|
||||
yPuppetRigDialog.grp.btn_02.onClick = runRigLayer; //Defines Button Action
|
||||
yPuppetRigDialog.grp.btn_03.onClick = runRigAll; //Defines Button Action
|
||||
yPuppetRigDialog.grp.chk_optn.onClick = toggleOptions;
|
||||
}
|
||||
yPuppetRig_data.activate = build_yPuppetRig_data_UI ;
|
||||
|
||||
|
||||
function toggleOptions(){
|
||||
if(yPuppetRigDialog.grp.chk_optn==true){
|
||||
yPuppetRigDialog.grp.chk_optn=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
yPuppetRigDialog.grp.chk_optn=true;
|
||||
}
|
||||
yPuppetRigDialog.grp.optn.enabled = yPuppetRigDialog.grp.chk_optn;
|
||||
}
|
||||
function customColors(rsr){
|
||||
g = rsr.graphics;
|
||||
myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.25, 0.05, 0.25, 1]);
|
||||
g.backgroundColor = yToolBoxPalette.graphics.backgroundColor;
|
||||
}
|
||||
|
||||
function getPuppetEffects(aLayer){
|
||||
puppetEffects = []
|
||||
for(i=1;i<=aLayer('Effects').numProperties;i++){
|
||||
puppetEffects.push(aLayer('Effects')(i));
|
||||
}
|
||||
return puppetEffects;
|
||||
}
|
||||
function getPosPins(aLayer){
|
||||
puppetEffects = getPuppetEffects(aLayer);
|
||||
if(puppetEffects.length>0){
|
||||
posPins = [];
|
||||
for(i=0;i<puppetEffects.length;i++){
|
||||
posPinGroup = puppetEffects[i]('ADBE FreePin3 ARAP Group')('ADBE FreePin3 Mesh Group')('ADBE FreePin3 Mesh Atom')('ADBE FreePin3 PosPins');
|
||||
for(j=1;j<=posPinGroup.numProperties;j++){
|
||||
posPins.push(puppetEffects[i]('ADBE FreePin3 ARAP Group')('ADBE FreePin3 Mesh Group')('ADBE FreePin3 Mesh Atom')('ADBE FreePin3 PosPins')(j));
|
||||
}
|
||||
}
|
||||
return posPins;
|
||||
}
|
||||
else
|
||||
{
|
||||
writeLn('No FreePin3 Effect found on Layer');
|
||||
return []
|
||||
}
|
||||
}
|
||||
function rigPins(aLayer,selectedOnly){
|
||||
pins = getPosPins(aLayer);
|
||||
selectedPins = [];
|
||||
createdNulls =[];
|
||||
for(i=0;i<pins.length;i++){
|
||||
selectedPins.push(pins[i].selected)
|
||||
}
|
||||
setPropsFromUI();
|
||||
|
||||
for(i=0;i<pins.length;i++){
|
||||
if(selectedPins[i]||!selectedOnly){
|
||||
|
||||
createdNulls.push([app.project.activeItem.layers.addNull(),pins[i]]);// populate register of created Nulls, associated with the pin property groups that will be controlled by them.
|
||||
createdNulls[i][0].source.height = createdNulls[i][0].source.width = nullSize;
|
||||
createdNulls[i][0].name = aLayer.name+"_"+createdNulls[i][1].name; //set nulls name to it's parent layer's name + the puppuet point name.
|
||||
createdNulls[i][0].label = aLayer.label; // set nulls label equalt to its parent layer.
|
||||
createdNulls[i][0].transform.anchorPoint.setValue([createdNulls[i][0].source.width/2,createdNulls[i][0].source.height/2]); //center pivot of created nulls
|
||||
createdNulls[i][0].moveBefore(aLayer); //stack created null on top of original layer.
|
||||
pinPosition = createdNulls[i][1]('ADBE FreePin3 PosPin Position').value;
|
||||
aLayerPosition = aLayer('ADBE Transform Group')('ADBE Position').value;
|
||||
aLayerAnchorPoint = aLayer('ADBE Transform Group')('ADBE Anchor Point').value;
|
||||
createdNulls[i][0].transform.position.setValue(pinPosition+aLayerPosition-aLayerAnchorPoint); //needs a toWorld Function
|
||||
txtExpression = 'l = thisComp.layer('+'"'+createdNulls[i][0].name+'"'+');\
|
||||
'+'fromWorld(l.toComp(l.transform.anchorPoint))';
|
||||
createdNulls[i][1]('ADBE FreePin3 PosPin Position').expression = txtExpression;
|
||||
|
||||
//there has to be a way to re select the original layer one had selected.
|
||||
}
|
||||
else{
|
||||
createdNulls.push([null,null])
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//stuff to apply to main layer
|
||||
aLayer.quality = layerQuality;
|
||||
aLayer.locked = layerLock;
|
||||
|
||||
pins = null;
|
||||
selectedPins = null;
|
||||
createdNulls = null;
|
||||
pinPosition = null;
|
||||
aLayerPosition= null;
|
||||
aLayerAnchorPoint = null;
|
||||
txtExpression = null;
|
||||
|
||||
}
|
||||
function runRigPin(){
|
||||
|
||||
/* NOT WORKING YET
|
||||
app.beginUndoGroup(string_001);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
if(allLayers[i].selected){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
*/
|
||||
app.beginUndoGroup(yPuppetRig_data.string_001);
|
||||
sel =app.project.activeItem.selectedLayers;
|
||||
setPropsFromUI();
|
||||
rigPins(sel[0],true);
|
||||
app.endUndoGroup();
|
||||
}
|
||||
function runRigLayer(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_002);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
if(allLayers[i].selected){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
function runRigAll(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_003);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
function setPropsFromUI(){
|
||||
nullSize = yFactor(parseInt(yPuppetRigDialog.grp.optn.nullSizeGrp.sldr.value),5)
|
||||
if(yPuppetRigDialog.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_02.value==true){
|
||||
layerLock =true // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
{
|
||||
layerLock =false // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
|
||||
if(yPuppetRigDialog.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_01.value==true){
|
||||
layerQuality =LayerQuality.DRAFT // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
{
|
||||
layerQuality =LayerQuality.BEST // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
}
|
||||
|
||||
//build_yPuppetRig_UI();
|
||||
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yPuppetRig_data.activate();
|
||||
}else{
|
||||
}
|
||||
yPuppetRig_data = new Object();
|
||||
|
||||
yPuppetRig_data.scriptName = 'yPuppetRigger';
|
||||
yPuppetRig_data.scriptVer = 'v0.3.3a';
|
||||
yPuppetRig_data.scriptDesc = 'Tools for streamlining puppet-based animation rigs.';
|
||||
yPuppetRig_data.string_info = 'yorchnet.com';
|
||||
yPuppetRig_data.e_000 = 'e_000 : No layers are selected.';
|
||||
yPuppetRig_data.e_001 = 'e_001 : Layer contains no effects.';
|
||||
yPuppetRig_data.e_002 = 'e_002 : Layer contains no Puppet effects.';
|
||||
yPuppetRig_data.string_001 = 'Rig Pins';
|
||||
yPuppetRig_data.string_001x = 'Rigs Selected Pins on Layer';
|
||||
yPuppetRig_data.string_002 = 'Rig Layers';
|
||||
yPuppetRig_data.string_002x = 'Rigs Selected Layers';
|
||||
yPuppetRig_data.string_003 = 'Rig All';
|
||||
yPuppetRig_data.string_003x = 'Rig All Layers in Comp';
|
||||
|
||||
|
||||
//it should be called from toolbox.
|
||||
yPuppetRig_data.buttonWidth=76;
|
||||
yPuppetRig_data.buttonHeight=30;
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yPuppetRig_data);
|
||||
yPuppetRig_data.btnLayout = "btn_"+ yPuppetRig_data.scriptName+": Button { preferredSize: ['"+YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yPuppetRig_data.scriptName+"', helpTip:'"+yPuppetRig_data.scriptDesc+"' }";
|
||||
}
|
||||
|
||||
function build_yPuppetRig_data_UI(){
|
||||
//define custom strings for error messages, names, button names and helpTips. //Defines Layout variables.
|
||||
|
||||
yPuppetRig_data.res = "window { \
|
||||
type:'palette' , text:'"+yPuppetRig_data.scriptName+" "+yPuppetRig_data.scriptVer+"',margins:[10,10,10,10],spacing:[5,5,5,5],\
|
||||
grp: Group { orientation:'column' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
btn_01: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_001+"', helpTip:'"+yPuppetRig_data.string_001x+"' }, \
|
||||
btn_02: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_002+"', helpTip:'"+yPuppetRig_data.string_002x+"' }, \
|
||||
btn_03: Button { preferredSize: ['"+yPuppetRig_data.buttonWidth+"','"+yPuppetRig_data.buttonHeight+"'], text:'"+yPuppetRig_data.string_003+"', helpTip:'"+yPuppetRig_data.string_003x+"' }, \
|
||||
chk_optn: Checkbox { text:'Enable Options', alignment:['fill','center'] , helpTip:'Enable Advanced Options' },\
|
||||
optn: Panel{ text:'Options' , visible:'false', orientation:'row' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
nullSizeGrp: Group{ \
|
||||
orientation:'column' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'2' , margin:'5', \
|
||||
sldr_tit: StaticText { text:'Set Null Size in Pixels.', alignment:['fill','center'] },\
|
||||
sldr: Slider { value:'125' , minvalue:'6' , maxvalue:'250' , text:'alaverga', helpTip:'"+yPuppetRig_data.string_001x+"' }, \
|
||||
sldr_Values_txt: Group{\
|
||||
orientation:'row' , alignment:['fill','fill'] , alignChildren:['center','fill'] , spacing:'2' , margin:'5', \
|
||||
mintxt: StaticText { text:'small', alignment:['left','fill'] },\
|
||||
medtxt: StaticText { text:'medium', alignment:['center','fill'] },\
|
||||
maxtxt: StaticText { text:'big', alignment:['right','fill'] },\
|
||||
}\
|
||||
otherOptionsGrp: Group{ \
|
||||
orientation:'row' , alignment:['fill','fill'] , alignChildren:['fill','fill'] , spacing:'8' , margin:'5', \
|
||||
chk_box_01: Checkbox { text:'Enable Draft Mode.', alignment:['fill','center'] , helpTip:'Mostly for oldschool pixelated stuff' },\
|
||||
chk_box_02: Checkbox { text:'Lock Layer', alignment:['fill','center'] , helpTip:'Lock layer after rigging.' },\
|
||||
},\
|
||||
}\
|
||||
},\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icn_app: Image {icon:'"+ YTB.icon.path+'/'+ YTB.icon.name+"',preferredSize: [15, 18]},\
|
||||
txt_info: StaticText { text:'"+yPuppetRig_data.string_info+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
}\
|
||||
}";
|
||||
|
||||
//if (typeof(YTB)!=='undefined'){
|
||||
yPuppetRigDialog = new Window (yPuppetRig_data.res); // Creates Window
|
||||
//}
|
||||
//yPuppetRigDialog.onDraw = customColors(yPuppetRigDialog);
|
||||
yPuppetRigDialog.grp.optn.enabled = false;
|
||||
yPuppetRigDialog.show(); //Shows Window.
|
||||
|
||||
|
||||
|
||||
//yPuppetRigDialog.grp.info.icn_app.image = YTB.icon.substring(3,YTB.icon.length);
|
||||
yPuppetRigDialog.grp.btn_01.onClick = runRigPin; //Defines Button Action
|
||||
yPuppetRigDialog.grp.btn_02.onClick = runRigLayer; //Defines Button Action
|
||||
yPuppetRigDialog.grp.btn_03.onClick = runRigAll; //Defines Button Action
|
||||
yPuppetRigDialog.grp.chk_optn.onClick = toggleOptions;
|
||||
}
|
||||
yPuppetRig_data.activate = build_yPuppetRig_data_UI ;
|
||||
|
||||
|
||||
function toggleOptions(){
|
||||
if(yPuppetRigDialog.grp.chk_optn==true){
|
||||
yPuppetRigDialog.grp.chk_optn=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
yPuppetRigDialog.grp.chk_optn=true;
|
||||
}
|
||||
yPuppetRigDialog.grp.optn.enabled = yPuppetRigDialog.grp.chk_optn;
|
||||
}
|
||||
function customColors(rsr){
|
||||
g = rsr.graphics;
|
||||
myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.25, 0.05, 0.25, 1]);
|
||||
g.backgroundColor = yToolBoxPalette.graphics.backgroundColor;
|
||||
}
|
||||
|
||||
function getPuppetEffects(aLayer){
|
||||
puppetEffects = []
|
||||
for(i=1;i<=aLayer('Effects').numProperties;i++){
|
||||
puppetEffects.push(aLayer('Effects')(i));
|
||||
}
|
||||
return puppetEffects;
|
||||
}
|
||||
function getPosPins(aLayer){
|
||||
puppetEffects = getPuppetEffects(aLayer);
|
||||
if(puppetEffects.length>0){
|
||||
posPins = [];
|
||||
for(i=0;i<puppetEffects.length;i++){
|
||||
posPinGroup = puppetEffects[i]('ADBE FreePin3 ARAP Group')('ADBE FreePin3 Mesh Group')('ADBE FreePin3 Mesh Atom')('ADBE FreePin3 PosPins');
|
||||
for(j=1;j<=posPinGroup.numProperties;j++){
|
||||
posPins.push(puppetEffects[i]('ADBE FreePin3 ARAP Group')('ADBE FreePin3 Mesh Group')('ADBE FreePin3 Mesh Atom')('ADBE FreePin3 PosPins')(j));
|
||||
}
|
||||
}
|
||||
return posPins;
|
||||
}
|
||||
else
|
||||
{
|
||||
writeLn('No FreePin3 Effect found on Layer');
|
||||
return []
|
||||
}
|
||||
}
|
||||
function rigPins(aLayer,selectedOnly){
|
||||
pins = getPosPins(aLayer);
|
||||
selectedPins = [];
|
||||
createdNulls =[];
|
||||
for(i=0;i<pins.length;i++){
|
||||
selectedPins.push(pins[i].selected)
|
||||
}
|
||||
setPropsFromUI();
|
||||
|
||||
for(i=0;i<pins.length;i++){
|
||||
if(selectedPins[i]||!selectedOnly){
|
||||
|
||||
createdNulls.push([app.project.activeItem.layers.addNull(),pins[i]]);// populate register of created Nulls, associated with the pin property groups that will be controlled by them.
|
||||
createdNulls[i][0].source.height = createdNulls[i][0].source.width = nullSize;
|
||||
createdNulls[i][0].name = aLayer.name+"_"+createdNulls[i][1].name; //set nulls name to it's parent layer's name + the puppuet point name.
|
||||
createdNulls[i][0].label = aLayer.label; // set nulls label equalt to its parent layer.
|
||||
createdNulls[i][0].transform.anchorPoint.setValue([createdNulls[i][0].source.width/2,createdNulls[i][0].source.height/2]); //center pivot of created nulls
|
||||
createdNulls[i][0].moveBefore(aLayer); //stack created null on top of original layer.
|
||||
pinPosition = createdNulls[i][1]('ADBE FreePin3 PosPin Position').value;
|
||||
aLayerPosition = aLayer('ADBE Transform Group')('ADBE Position').value;
|
||||
aLayerAnchorPoint = aLayer('ADBE Transform Group')('ADBE Anchor Point').value;
|
||||
createdNulls[i][0].transform.position.setValue(pinPosition+aLayerPosition-aLayerAnchorPoint); //needs a toWorld Function
|
||||
txtExpression = 'l = thisComp.layer('+'"'+createdNulls[i][0].name+'"'+');\
|
||||
'+'fromWorld(l.toComp(l.transform.anchorPoint))';
|
||||
createdNulls[i][1]('ADBE FreePin3 PosPin Position').expression = txtExpression;
|
||||
|
||||
//there has to be a way to re select the original layer one had selected.
|
||||
}
|
||||
else{
|
||||
createdNulls.push([null,null])
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//stuff to apply to main layer
|
||||
aLayer.quality = layerQuality;
|
||||
aLayer.locked = layerLock;
|
||||
|
||||
pins = null;
|
||||
selectedPins = null;
|
||||
createdNulls = null;
|
||||
pinPosition = null;
|
||||
aLayerPosition= null;
|
||||
aLayerAnchorPoint = null;
|
||||
txtExpression = null;
|
||||
|
||||
}
|
||||
function runRigPin(){
|
||||
|
||||
/* NOT WORKING YET
|
||||
app.beginUndoGroup(string_001);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
if(allLayers[i].selected){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
*/
|
||||
app.beginUndoGroup(yPuppetRig_data.string_001);
|
||||
sel =app.project.activeItem.selectedLayers;
|
||||
setPropsFromUI();
|
||||
rigPins(sel[0],true);
|
||||
app.endUndoGroup();
|
||||
}
|
||||
function runRigLayer(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_002);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
if(allLayers[i].selected){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
function runRigAll(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_003);
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
workLayers.push(allLayers[i]);
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
function setPropsFromUI(){
|
||||
nullSize = yFactor(parseInt(yPuppetRigDialog.grp.optn.nullSizeGrp.sldr.value),5)
|
||||
if(yPuppetRigDialog.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_02.value==true){
|
||||
layerLock =true // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
{
|
||||
layerLock =false // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
|
||||
if(yPuppetRigDialog.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_01.value==true){
|
||||
layerQuality =LayerQuality.DRAFT // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
{
|
||||
layerQuality =LayerQuality.BEST // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
}
|
||||
|
||||
//build_yPuppetRig_UI();
|
||||
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yPuppetRig_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
+121
-121
@@ -1,121 +1,121 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YSetProjectTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "YSetStructure",
|
||||
version : 0.11,
|
||||
stage : "alpha",
|
||||
description : "Set the Folder Structure for a new Project",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
//alert("my name is:" + this.info.name);
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window ( this.res );
|
||||
this.window.show() ;
|
||||
}
|
||||
this.ySetProject = function ySetProject()
|
||||
{
|
||||
//alert("is this working");
|
||||
app.beginUndoGroup('ySetProject');
|
||||
var preStruct = ["01 MAIN","02 PComp","03 Source Layers" ,"04 Movies","05 Other Projects","06 Audio" , "07 Reference"];
|
||||
var newStruct = [];
|
||||
var projectItems = [];
|
||||
|
||||
for(i=1;i<=app.project.items.length;i++)
|
||||
{
|
||||
if(app.project.items[i].parentFolder.name=='Root')
|
||||
{
|
||||
projectItems.push(app.project.items[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
//to start a new organized project since the beginning
|
||||
|
||||
if (projectItems.length == 0)
|
||||
{
|
||||
newStruct = preStruct;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(a=0;a<preStruct.length;a++)
|
||||
{
|
||||
if ((projectItems.getOne(preStruct[a]))==-1)
|
||||
{
|
||||
newStruct.push(preStruct[a]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(i = 0;i<newStruct.length;i++)
|
||||
{
|
||||
app.project.items.addFolder(newStruct[i]);
|
||||
}
|
||||
|
||||
saveNow = confirm("Project Succesfully Set, Save Project?",true,"ySetProject");
|
||||
|
||||
if(saveNow==true){
|
||||
app.project.save()
|
||||
}else{
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.ySetProject;
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
ySetProjectTool = new YSetProjectTool();
|
||||
ySetProjectTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YSetProjectTool());
|
||||
}
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YSetProjectTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "YSetStructure",
|
||||
version : 0.11,
|
||||
stage : "alpha",
|
||||
description : "Set the Folder Structure for a new Project",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
//alert("my name is:" + this.info.name);
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
this. res =
|
||||
"window\
|
||||
{\
|
||||
type:'palette',\
|
||||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||||
info: Group \
|
||||
{\
|
||||
alignment:['center','bottom'],\
|
||||
icon: Image \
|
||||
{\
|
||||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||||
preferredSize: [15, 18]\
|
||||
},\
|
||||
website: StaticText\
|
||||
{\
|
||||
text:'" + this.info.url + "',\
|
||||
alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window ( this.res );
|
||||
this.window.show() ;
|
||||
}
|
||||
this.ySetProject = function ySetProject()
|
||||
{
|
||||
//alert("is this working");
|
||||
app.beginUndoGroup('ySetProject');
|
||||
var preStruct = ["01 MAIN","02 PComp","03 Source Layers" ,"04 Movies","05 Other Projects","06 Audio" , "07 Reference"];
|
||||
var newStruct = [];
|
||||
var projectItems = [];
|
||||
|
||||
for(i=1;i<=app.project.items.length;i++)
|
||||
{
|
||||
if(app.project.items[i].parentFolder.name=='Root')
|
||||
{
|
||||
projectItems.push(app.project.items[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
//to start a new organized project since the beginning
|
||||
|
||||
if (projectItems.length == 0)
|
||||
{
|
||||
newStruct = preStruct;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(a=0;a<preStruct.length;a++)
|
||||
{
|
||||
if ((projectItems.getOne(preStruct[a]))==-1)
|
||||
{
|
||||
newStruct.push(preStruct[a]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(i = 0;i<newStruct.length;i++)
|
||||
{
|
||||
app.project.items.addFolder(newStruct[i]);
|
||||
}
|
||||
|
||||
saveNow = confirm("Project Succesfully Set, Save Project?",true,"ySetProject");
|
||||
|
||||
if(saveNow==true){
|
||||
app.project.save()
|
||||
}else{
|
||||
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.activate = this.ySetProject;
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
ySetProjectTool = new YSetProjectTool();
|
||||
ySetProjectTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YSetProjectTool());
|
||||
}
|
||||
|
||||
+101
-101
@@ -1,101 +1,101 @@
|
||||
yStopMotion_data = new Object();
|
||||
|
||||
yStopMotion_data.scriptName = 'yStopMotion';
|
||||
yStopMotion_data.scriptDesc = 'Dynamically change layer sequence opacity from a slider in pComp';
|
||||
yStopMotion_data.scriptVer = '0.1a';
|
||||
yStopMotion_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yStopMotion_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
/* yStopMotion_data.buttonWidth=76;
|
||||
yStopMotion_data.buttonHeight=30;
|
||||
*/
|
||||
yStopMotion_data.btnLayout = "btn_"+yStopMotion_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yStopMotion_data.scriptName+"', helpTip:'"+yStopMotion_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yStopMotion_data.res = "window { \
|
||||
type:'palette' , text:'"+yStopMotion_data.scriptName+' '+yStopMotion_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yStopMotion_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
e_0000 = "There are no comps in project."
|
||||
e_0001 = "No Comps selected."
|
||||
|
||||
function yStopMotionLayer(){
|
||||
myName = "yStopMotionLayer";
|
||||
myVer = "0.2a";
|
||||
nComps = app.project.items.length;
|
||||
app.beginUndoGroup(myName);
|
||||
if(nComps>0){
|
||||
sel = app.project.activeItem.selectedLayers; //array containing selection;
|
||||
if(sel.length == 1&&sel[0].source!= null){
|
||||
|
||||
myItem = sel[0].source;
|
||||
myItemType = myItem.typeName;
|
||||
|
||||
if(myItemType!="Composition"){
|
||||
alert(e_0001,myName+' '+myVer);
|
||||
}else{
|
||||
|
||||
sliderCtrl = sel[0]("Effects").addProperty("Slider Control");
|
||||
sliderCtrl.name = "Animation State"; //should check for previously created sliders named the same and name uniquely accordingly.
|
||||
txtExpression = 'myLayer = thisLayer;myComp =comp(myLayer.name);\
|
||||
max = myComp.numLayers;\
|
||||
myValue = effect("'+sliderCtrl.name+'")("'+sliderCtrl("Slider").name+'");\
|
||||
if(myValue<=max&&myValue>1){\
|
||||
parseInt(myValue)\
|
||||
}else if (myValue>max){\
|
||||
max\
|
||||
}else if(myValue<1){1}';
|
||||
//'l = thisComp.layer('+'"'+app.project.activeItem.selectedLayers[0].name+'"'+');'+'fromWorld(l.toComp(l.transform.anchorPoint))';
|
||||
sliderCtrl("Slider").expression = txtExpression;
|
||||
sliderCtrl("Slider").setValue(1);
|
||||
txtExpression = null;
|
||||
nLayers =myItem.numLayers;
|
||||
txtExpression = 'extValue = comp("'+sel[0].containingComp.name+'").layer("'+myItem.name+'").effect("'+sliderCtrl.name+'")("'+sliderCtrl("Slider").name+'");if(extValue == thisLayer.index){100}else{0}';
|
||||
for (z=1;z<=nLayers;z++){
|
||||
myItem.layer(z).opacity.expression=txtExpression;
|
||||
}
|
||||
txtExpression = null;
|
||||
}
|
||||
}else{
|
||||
alert(e_0001,myName+' '+myVer);
|
||||
}
|
||||
}else{
|
||||
alert(e_0000,myName+' '+myVer+" : Error");
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yStopMotion_data_UI(){
|
||||
yStopMotion_data.window = new Window ( yStopMotion_data.res);
|
||||
yStopMotion_data.window.show();
|
||||
}
|
||||
yStopMotion_data.activate = yStopMotionLayer ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yStopMotion_data.activate();
|
||||
}else{
|
||||
}
|
||||
yStopMotion_data = new Object();
|
||||
|
||||
yStopMotion_data.scriptName = 'yStopMotion';
|
||||
yStopMotion_data.scriptDesc = 'Dynamically change layer sequence opacity from a slider in pComp';
|
||||
yStopMotion_data.scriptVer = '0.1a';
|
||||
yStopMotion_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
YTB.tools.push(yStopMotion_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
/* yStopMotion_data.buttonWidth=76;
|
||||
yStopMotion_data.buttonHeight=30;
|
||||
*/
|
||||
yStopMotion_data.btnLayout = "btn_"+yStopMotion_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yStopMotion_data.scriptName+"', helpTip:'"+yStopMotion_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
yStopMotion_data.res = "window { \
|
||||
type:'palette' , text:'"+yStopMotion_data.scriptName+' '+yStopMotion_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+yStopMotion_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
|
||||
e_0000 = "There are no comps in project."
|
||||
e_0001 = "No Comps selected."
|
||||
|
||||
function yStopMotionLayer(){
|
||||
myName = "yStopMotionLayer";
|
||||
myVer = "0.2a";
|
||||
nComps = app.project.items.length;
|
||||
app.beginUndoGroup(myName);
|
||||
if(nComps>0){
|
||||
sel = app.project.activeItem.selectedLayers; //array containing selection;
|
||||
if(sel.length == 1&&sel[0].source!= null){
|
||||
|
||||
myItem = sel[0].source;
|
||||
myItemType = myItem.typeName;
|
||||
|
||||
if(myItemType!="Composition"){
|
||||
alert(e_0001,myName+' '+myVer);
|
||||
}else{
|
||||
|
||||
sliderCtrl = sel[0]("Effects").addProperty("Slider Control");
|
||||
sliderCtrl.name = "Animation State"; //should check for previously created sliders named the same and name uniquely accordingly.
|
||||
txtExpression = 'myLayer = thisLayer;myComp =comp(myLayer.name);\
|
||||
max = myComp.numLayers;\
|
||||
myValue = effect("'+sliderCtrl.name+'")("'+sliderCtrl("Slider").name+'");\
|
||||
if(myValue<=max&&myValue>1){\
|
||||
parseInt(myValue)\
|
||||
}else if (myValue>max){\
|
||||
max\
|
||||
}else if(myValue<1){1}';
|
||||
//'l = thisComp.layer('+'"'+app.project.activeItem.selectedLayers[0].name+'"'+');'+'fromWorld(l.toComp(l.transform.anchorPoint))';
|
||||
sliderCtrl("Slider").expression = txtExpression;
|
||||
sliderCtrl("Slider").setValue(1);
|
||||
txtExpression = null;
|
||||
nLayers =myItem.numLayers;
|
||||
txtExpression = 'extValue = comp("'+sel[0].containingComp.name+'").layer("'+myItem.name+'").effect("'+sliderCtrl.name+'")("'+sliderCtrl("Slider").name+'");if(extValue == thisLayer.index){100}else{0}';
|
||||
for (z=1;z<=nLayers;z++){
|
||||
myItem.layer(z).opacity.expression=txtExpression;
|
||||
}
|
||||
txtExpression = null;
|
||||
}
|
||||
}else{
|
||||
alert(e_0001,myName+' '+myVer);
|
||||
}
|
||||
}else{
|
||||
alert(e_0000,myName+' '+myVer+" : Error");
|
||||
}
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
function build_yStopMotion_data_UI(){
|
||||
yStopMotion_data.window = new Window ( yStopMotion_data.res);
|
||||
yStopMotion_data.window.show();
|
||||
}
|
||||
yStopMotion_data.activate = yStopMotionLayer ;
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yStopMotion_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user