From 0bfe359e55bff97e3491099a06b9b5a1aa811767 Mon Sep 17 00:00:00 2001 From: yorch Date: Wed, 3 Dec 2014 17:11:38 -0800 Subject: [PATCH] Got the old tools into git --- ScriptUI Panels/yToolBox_0.4.2.1a.jsx | 1 + yScripts/header.png | Bin 0 -> 9332 bytes yScripts/replaceLogos.jsx | 85 +++++++++ yScripts/usefulFunctions.jsx | 130 ++++++++++++++ yScripts/yNet.png | Bin 0 -> 2967 bytes yScripts/y_AFXExtensions.jsx | 24 +++ yScripts/y_CornerPin_0.11a.jsx | 108 ++++++++++++ yScripts/y_CornerPin_0.1a.jsx | 100 +++++++++++ yScripts/y_GenericNewScript_0.1a.jsx | 52 ++++++ yScripts/y_JSExtensions.jsx | 17 ++ yScripts/y_MultiRenamer_0.1a.jsx | 176 ++++++++++++++++++ yScripts/y_MultiRenamer_0.2a.jsx | 151 ++++++++++++++++ yScripts/y_colorProbe_0.2a.jsx | 72 ++++++++ yScripts/y_puppetRig_0.3.7a.jsx | 245 ++++++++++++++++++++++++++ yScripts/y_renderMarkers.jsx | 40 +++++ yScripts/y_renderMarkers_0.1a.jsx | 65 +++++++ yScripts/y_rndrTools.jsx | 50 ++++++ yScripts/y_setStructure_0.1a.jsx | 83 +++++++++ yScripts/y_stopMotionLayer_0.3a.jsx | 101 +++++++++++ yScripts/y_yBindBetween2_0.12_old.jsx | 182 +++++++++++++++++++ yScripts/y_yBindBetween2_0.12a.jsx | 186 +++++++++++++++++++ yScripts/y_yBindBetween2_0.12b.jsx | 1 + 22 files changed, 1869 insertions(+) create mode 100644 ScriptUI Panels/yToolBox_0.4.2.1a.jsx create mode 100755 yScripts/header.png create mode 100755 yScripts/replaceLogos.jsx create mode 100755 yScripts/usefulFunctions.jsx create mode 100755 yScripts/yNet.png create mode 100755 yScripts/y_AFXExtensions.jsx create mode 100755 yScripts/y_CornerPin_0.11a.jsx create mode 100755 yScripts/y_CornerPin_0.1a.jsx create mode 100755 yScripts/y_GenericNewScript_0.1a.jsx create mode 100755 yScripts/y_JSExtensions.jsx create mode 100755 yScripts/y_MultiRenamer_0.1a.jsx create mode 100755 yScripts/y_MultiRenamer_0.2a.jsx create mode 100755 yScripts/y_colorProbe_0.2a.jsx create mode 100755 yScripts/y_puppetRig_0.3.7a.jsx create mode 100755 yScripts/y_renderMarkers.jsx create mode 100755 yScripts/y_renderMarkers_0.1a.jsx create mode 100755 yScripts/y_rndrTools.jsx create mode 100755 yScripts/y_setStructure_0.1a.jsx create mode 100755 yScripts/y_stopMotionLayer_0.3a.jsx create mode 100755 yScripts/y_yBindBetween2_0.12_old.jsx create mode 100755 yScripts/y_yBindBetween2_0.12a.jsx create mode 100644 yScripts/y_yBindBetween2_0.12b.jsx diff --git a/ScriptUI Panels/yToolBox_0.4.2.1a.jsx b/ScriptUI Panels/yToolBox_0.4.2.1a.jsx new file mode 100644 index 0000000..a14abca --- /dev/null +++ b/ScriptUI Panels/yToolBox_0.4.2.1a.jsx @@ -0,0 +1 @@ +function yToolBox(thisObj){ yToolBox_data = new Object(); yToolBox_data.icon = new File('../yScripts/yNet.png'); yToolBox_data.header = new File('../yScripts/header.png'); yToolBox_data.info = 'yorchnet.com'; yToolBox_data.name ='yToolBox'; yToolBox_data.ver ='0.4.2.1 alpha'; yToolBox_data.desc='Working tools so far...'; yToolBox_data.buttonWidth=126; yToolBox_data.buttonHeight=30; yToolBox_data.tools = []; #include "../yScripts/y_JSExtensions.jsx"; //INCLUDED TOOLS #include "../yScripts/y_setStructure_0.1a.jsx"; #include "../yScripts/y_puppetRig_0.3.7a.jsx"; #include "../yScripts/y_colorProbe_0.2a.jsx"; #include "../yScripts/y_yBindBetween2_0.12b.jsx"; #include "../yScripts/y_stopMotionLayer_0.3a.jsx"; #include "../yScripts/y_CornerPin_0.11a.jsx"; yToolBox_data.window = (thisObj instanceof Panel) ? thisObj : new Window("palette", yToolBox_data.info , undefined, {resizeable:true}); //MAIN WINDOW STRUCTURE. var res_header ="group { orientation:'column', alignment:['fill','fill'],margins:[0,0,0,0] \ header: Group { orientation:'column', alignment:['center','top'],margins:[0,0,0,0]\ title: Image {icon:'"+yToolBox_data.header.path+'/'+yToolBox_data.header.name+"',preferredSize: [175, 35]},\ ver: StaticText { text:'"+yToolBox_data.ver+"', alignment:['center','center']}\ desc: StaticText { text:'"+yToolBox_data.desc+"', alignment:['center','center']}, \ }, \ main: Group { orientation:'column',alignment:['fill','fill'], alignChildren:['center','center']," var res = ""; //To be populated with the included Tools var res_footer ="}, \ cmds: Group { alignment:['center','bottom'], \ icn_app: Image {icon:'"+ yToolBox_data.icon.path+'/'+ yToolBox_data.icon.name+"',preferredSize: [15, 18]},\ txt_info: StaticText { text:'"+yToolBox_data.info+"', alignment:['fill','center'] },\ }, \ }"; //POPULATE res with included tools. for (i=0;ipvf8cyfJyj&0|7tN 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 YWki~n1cw$Pe(L~oQp(Ws4@O`92OrJlfdBvi literal 0 HcmV?d00001 diff --git a/yScripts/replaceLogos.jsx b/yScripts/replaceLogos.jsx new file mode 100755 index 0000000..84f973e --- /dev/null +++ b/yScripts/replaceLogos.jsx @@ -0,0 +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() + +*/ \ No newline at end of file diff --git a/yScripts/usefulFunctions.jsx b/yScripts/usefulFunctions.jsx new file mode 100755 index 0000000..17a75d8 --- /dev/null +++ b/yScripts/usefulFunctions.jsx @@ -0,0 +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;p1){ + 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; +} \ No newline at end of file diff --git a/yScripts/yNet.png b/yScripts/yNet.png new file mode 100755 index 0000000000000000000000000000000000000000..31c927e6d7ef53af5ac57ed0cb3ac18486cbc361 GIT binary patch literal 2967 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 + value = n - (n%f); + return(value); + }else{ + alert('error'); + } +} diff --git a/yScripts/y_MultiRenamer_0.1a.jsx b/yScripts/y_MultiRenamer_0.1a.jsx new file mode 100755 index 0000000..dfed917 --- /dev/null +++ b/yScripts/y_MultiRenamer_0.1a.jsx @@ -0,0 +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(yToolBox_data)!=='undefined'){ + yToolBox_data.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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.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;i0)&(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;i0){ + 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(yToolBox_data)=='undefined'){ + yMultiRenamer_data.activate(); + }else{ + } + + +// a= yMultiRenamer() \ No newline at end of file diff --git a/yScripts/y_MultiRenamer_0.2a.jsx b/yScripts/y_MultiRenamer_0.2a.jsx new file mode 100755 index 0000000..1cddc3f --- /dev/null +++ b/yScripts/y_MultiRenamer_0.2a.jsx @@ -0,0 +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(yToolBox_data)!=='undefined'){ + yToolBox_data.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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.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;i0){ + 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(yToolBox_data)=='undefined'){ + */ + yMultiRenamer_data.activate(); + /*}else{ + } +*/ + +// a= yMultiRenamer() \ No newline at end of file diff --git a/yScripts/y_colorProbe_0.2a.jsx b/yScripts/y_colorProbe_0.2a.jsx new file mode 100755 index 0000000..c0b6911 --- /dev/null +++ b/yScripts/y_colorProbe_0.2a.jsx @@ -0,0 +1,72 @@ +yColorProbe_data = new Object(); + +yColorProbe_data.scriptName = 'yColorProbe'; +yColorProbe_data.scriptDesc = 'Creates a Null that will Sample the selected layer within the specified radius.'; +yColorProbe_data.scriptVer = '0.2a'; +yColorProbe_data.webLink = 'yorchnet.com'; + +//if yToolBox Exists add it to its tool list. +if (typeof(yToolBox_data)!=='undefined'){ + yToolBox_data.tools.push(yColorProbe_data); + + //it should be called from toolbox. + /* yColorProbe_data.buttonWidth=76; + yColorProbe_data.buttonHeight=30; +*/ + yColorProbe_data.btnLayout = "btn_"+yColorProbe_data.scriptName+": Button { preferredSize: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+yColorProbe_data.scriptName+"', helpTip:'"+yColorProbe_data.scriptDesc+"' }"; + + } + +yColorProbe_data.res = "window { \ + type:'palette' , text:'"+yColorProbe_data.scriptName+' '+yColorProbe_data.scriptVer+"',\ + \ + \ + info: Group { \ + alignment:['center','bottom'], \ + icon: Image {preferredSize: [15, 18]},\ + website: StaticText { text:'"+yColorProbe_data.webLink+"', alignment:['fill','center'] },\ + }\ + \ + }"; + + //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//-------- + // MAIN SCRIPT GOES HERE. + + #include "usefulFunctions.jsx"; + +function yColorProbe(){ + app.beginUndoGroup('Create ColorProbe'); + + 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(0.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; + + app.endUndoGroup(); + return 'ok' + } + + //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//-------- + +function build_yColorProbe_data_UI(){ + yColorProbe_data.window = new Window ( yColorProbe_data.res); + yColorProbe_data.window.show(); + } +yColorProbe_data.activate =yColorProbe ; + +//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own. +if (typeof(yToolBox_data)=='undefined'){ + yColorProbe_data.activate(); + }else{ + } diff --git a/yScripts/y_puppetRig_0.3.7a.jsx b/yScripts/y_puppetRig_0.3.7a.jsx new file mode 100755 index 0000000..189226d --- /dev/null +++ b/yScripts/y_puppetRig_0.3.7a.jsx @@ -0,0 +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(yToolBox_data)!=='undefined'){ + yToolBox_data.tools.push(yPuppetRig_data); + yPuppetRig_data.btnLayout = "btn_"+ yPuppetRig_data.scriptName+": Button { preferredSize: ['"+yToolBox_data.buttonWidth+"','"+ yToolBox_data.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:'"+ yToolBox_data.icon.path+'/'+ yToolBox_data.icon.name+"',preferredSize: [15, 18]},\ + txt_info: StaticText { text:'"+yPuppetRig_data.string_info+"', alignment:['fill','center'] },\ + }\ + }\ + }"; + + //if (typeof(yToolBox_data)!=='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 = yToolBox_data.icon.substring(3,yToolBox_data.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;i0){ + 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(yToolBox_data)=='undefined'){ + yStopMotion_data.activate(); + }else{ + } diff --git a/yScripts/y_yBindBetween2_0.12_old.jsx b/yScripts/y_yBindBetween2_0.12_old.jsx new file mode 100755 index 0000000..a2487a6 --- /dev/null +++ b/yScripts/y_yBindBetween2_0.12_old.jsx @@ -0,0 +1,182 @@ +yEntreDeux_data = new Object(); + +yEntreDeux_data.scriptName = 'yBindBetween2'; +yEntreDeux_data.scriptDesc = 'Constraints a layer between two others, position and rotation-wise'; + +yEntreDeux_data.scriptVer = '0.12a'; +yEntreDeux_data.webLink = 'yorchnet.com'; + +//if yToolBox Exists add it to its tool list. +if (typeof(yToolBox_data)!=='undefined'){ + yToolBox_data.tools.push(yEntreDeux_data); + + //it should be called from toolbox. + /* yEntreDeux_data.buttonWidth=76; + yEntreDeux_data.buttonHeight=30; +*/ + yEntreDeux_data.btnLayout = "btn_"+yEntreDeux_data.scriptName+": Button { preferredSize: ['"+yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+yEntreDeux_data.scriptName+"', helpTip:'"+yEntreDeux_data.scriptDesc+"' }"; + + } + + //--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//-------- + // MAIN SCRIPT GOES HERE. + + function build_yEntreDeux_data_UI(){ + //script info + yEntreDeux_data = new Object(); + yEntreDeux_data.scriptName = 'yEntreDeux'; + yEntreDeux_data.scriptVer = '0.1a'; + yEntreDeux_data.webLink = 'yorchnet.com'; + + + // GUI + yEntreDeux_data.res= "window { \ + type:'palette' , text:'"+yEntreDeux_data.scriptName+' '+yEntreDeux_data.scriptVer+"',margins:[10,10,10,10],spacing:[5,5,5,5]\ + \ + lst_layer: DropDownList {title:'layer to constrain',preferredSize:[150,35],textSelection:'Escoge',helpTip:'Select the layer you wish to constrain'}\ + lst_pa: DropDownList {title:'parent a',preferredSize:[150,35],textSelection:'Escoge',helpTip:'Select the first parent'}\ + lst_pb: DropDownList {title:'parent b',preferredSize:[150,35],textSelection:'Escoge',helpTip:'Select the second parent'}\ + 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:'"+yEntreDeux_data.webLink+"', alignment:['fill','center'] },\ + }\ + \ + }"; + + + yEntreDeux_data.window = new Window (yEntreDeux_data.res); + //never got around of assigning the icon any other way, but it works. + yEntreDeux_data.window.info.icon.image = yToolBox_data.icon; + + refresh(); // reloads the possible layers in the gui. + + yEntreDeux_data.window.exec_btn.onClick = run; + + + yEntreDeux_data.window.show(); + } + +function run(){ + app.beginUndoGroup('Bind Between Two'); + + selectedLayerName=String(yEntreDeux_data.window.lst_layer.selection); + parentALayerName=String(yEntreDeux_data.window.lst_pa.selection); + parentBLayerName=String(yEntreDeux_data.window.lst_pb.selection); + layerN = selectedLayerName.substr(0, selectedLayerName.indexOf('.')); + paN = parentALayerName.substr(0, parentALayerName.indexOf('.')); + pbN = parentBLayerName.substr(0, parentBLayerName.indexOf('.')); + layer = app.project.activeItem.layers[layerN]; + pa = app.project.activeItem.layers[paN]; + pb = app.project.activeItem.layers[pbN]; + layer("Effects").addProperty("Layer Control"); + layer("Effects")("Layer Control").name = 'ctrl01'; + layer("Effects")("ctrl01")("Layer").setValue(pa.index); + layer("Effects").addProperty("Layer Control"); + layer("Effects")("Layer Control").name = 'ctrl02'; + layer("Effects")("ctrl02")("Layer").setValue(pb.index); + layer("Effects").addProperty("Angle Control"); + layer("Effects")("Angle Control").name = 'offset'; + layer("Effects")("offset")("Angle").setValue(90); + posExp ='a = effect("ctrl01")("Layer");\ +b = effect("ctrl02")("Layer");\ +aPos = a.toComp(a.anchorPoint);\ +bPos = b.toComp(b.anchorPoint);\ +(aPos+bPos)/2' + rotExp ='a =effect("ctrl01")("Layer");\ +b = effect("ctrl02")("Layer");\ +aPos = a.toComp(a.anchorPoint);\ +bPos = b.toComp(b.anchorPoint);\ +rx = lookAt(aPos,bPos)[0];\ +ry = lookAt(aPos,bPos)[1];\ +offset = effect("offset")("Angle");\ +if (aPos[1] > bPos[1]){\ +(ry) -90 + offset\ +}else{\ +90 - (ry) + offset\ +}' + layer.transform.position.expression = posExp; + layer.transform.rotation.expression= rotExp; + + + /* + 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(0.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; + */ + + app.endUndoGroup(); + } + +function refresh(){ + //alert('going'); + lists=[yEntreDeux_data.window.lst_pa,yEntreDeux_data.window.lst_layer,yEntreDeux_data.window.lst_pb]//they should be in this order for the assignment of the selection index works right/ + for(i=0;i