mirror of
https://github.com/jorgevasquezp/AFX_yTools.git
synced 2026-09-16 19:22:42 +00:00
Compare commits
24
Commits
sewer_rat
...
renaissance
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5c30efe7d | ||
|
|
816d566df4 | ||
|
|
1e932c7a2d | ||
|
|
84e17ede95 | ||
|
|
8414847715 | ||
|
|
a879c2190d | ||
|
|
550a55e444 | ||
|
|
df5ea0ac01 | ||
|
|
f4c74abe46 | ||
|
|
e4b0a98471 | ||
|
|
58fe19cacd | ||
|
|
868c1cb141 | ||
|
|
e07df6d9d4 | ||
|
|
2d6983e014 | ||
|
|
3c12bdfb2d | ||
|
|
bb5336a612 | ||
|
|
75b0091c1d | ||
|
|
300d3c98fc | ||
|
|
cc91c4a6ce | ||
|
|
994772be8d | ||
|
|
2c49d99929 | ||
|
|
992891bf28 | ||
|
|
6d01d35cd0 | ||
|
|
1238e7949e |
@@ -1 +1,127 @@
|
||||
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.jsx";␍ #include "../yScripts/y_puppetRig.jsx";␍ #include "../yScripts/y_colorProbe.jsx";␍ #include "../yScripts/y_yBindBetween2.jsx";␍ #include "../yScripts/y_stopMotionLayer.jsx";␍ #include "../yScripts/y_CornerPin.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;i<yToolBox_data.tools.length;i++){␍ res = res + yToolBox_data.tools [i].btnLayout;␍ }␍␍ //LAYOUT Stuff␍ yToolBox_data.window.grp = yToolBox_data.window.add(res_header+res+res_footer);␍ yToolBox_data.window.layout.layout(true);␍ yToolBox_data.window.onResize = resize;␍ yToolBox_data.window.onClose = function () {delete yToolBox_data;};␍ ␍ //ASSIGN buttons to the activate function of each tool;␍ var toolBtns = yToolBox_data.window.grp.main.children;␍ for(n=0;n<toolBtns.length;n++){␍ toolBtns[n].onClick=yToolBox_data.tools[n].activate;␍ }␍ ␍ return yToolBox_data.window␍}␍␍function resize(){␍ this.layout.resize();␍ customize;␍ }␍␍function customize(){␍ g = yToolBox_data.window.grp.main.graphics;␍ ␍ myFont = ScriptUI.newFont('Cooper Std Black',ScriptUI.FontStyle.REGULAR ,14 ); ␍ myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [1, .45, 0, 1]); ␍ ␍ ␍ g.backgroundColor = myBrush;␍ /*g = yToolBox_data.window.grp.header.title.graphics;␍ g.font = myFont;␍␍ g =yToolBox_data.window.grp.header.graphics;␍ g.backgroundColor = myBrush;␍ */␍ ␍ }␍␍yToolBox(this);␍␍yToolBox_data.window.grp.onDraw = resize;␍yToolBox_data.window.grp.onDraw = customize;␍␍
|
||||
var scriptUIPanel = this;␍YTB =␍{ ␍ info :␍ {␍ name : "yToolBox",␍ ver : 0.5,␍ status : "alpha",␍ url : "yorchnet.com",␍ description : "My mixed bag of tools"␍ },␍ resources :␍ {␍ icon : new File('../yScripts/yNet.png'),␍ header : new File('../yScripts/header.png')␍ },␍ appearence :␍ {␍ buttonHeight : 30,␍ buttonWidth : 126 ␍ },␍ tools : [],␍ createUI : function createUI()␍ {␍ var res ="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:'" + this.resources.header.path + '/' + this.resources.header.name + "',\␍ preferredSize: [175, 35]},\␍ ver: StaticText\␍ {\␍ text:'" + this.info.ver + "',\␍ alignment:['center','center']\␍ }\␍ desc: StaticText\␍ {\␍ text:'" + this.info.description + "',\␍ alignment:['center','center']\␍ },\␍ },\␍ main: Group\␍ {\␍ orientation:'column',\␍ alignment:['fill','fill'],\␍ alignChildren:['center','center'],\␍ },\␍ footer: Group\␍ {\␍ alignment:['center','bottom'], \␍ icn_app: Image {icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',preferredSize: [15, 18]},\␍ txt_info: StaticText { text:'"+ this.info.url + "', alignment:['fill','center'] },\␍ }, \␍ }";␍ this.window.grp = this.window.add( res );␍ ␍ this.window.layout.layout(true);␍ this.customizeUI();␍ ␍ //EventHandlerAssignment␍ this.window.onResize = this.resize;␍ this.window.onClose = this.close;␍ this.window.onDraw = this.autoLayout;␍ },␍ customizeUI : function customizeUI()␍ {␍ var g = this.window.graphics; ␍ var orange = g.newBrush(g.BrushType.SOLID_COLOR, [1, .45, 0, 1]); ␍ this.window.grp.main.graphics.backgroundColor = orange;␍ },␍ addTool : function addTool( aTool )␍ {␍ /**** TO DO ****/␍ // Check that the tool object is unique.␍ // Call for a window resize so it refreshes propperly.␍ ␍ this.tools.push( aTool );␍␍ var btn = this.window.grp.main.add( aTool.btnLauyout );␍ ␍ btn.onClick = aTool.activate;␍ btn.yTool = aTool; // add a reference to the tool so I can access info on it later...␍ ␍ //alert(btn.onClick);␍␍ this.window.layout.layout(true);␍ ␍ },␍ //EVENT HANDLERS␍ resize : function resize()␍ {␍ this.layout.resize();␍ },␍ close : function close()␍ {␍ YTB = null;␍ delete this;␍ },␍ init : function init()␍ {␍ this.window = ( scriptUIPanel instanceof Panel ) ? scriptUIPanel: new Window( "palette" , this.info.name , undefined, { resizeable : true } );␍ this.createUI();␍ }␍ ␍};␍␍YTB.init();␍␍#include "../yScripts/y_setStructure.jsx";␍#include "../yScripts/y_colorProbe.jsx";␍#include "../yScripts/y_BindBetween2.jsx";␍#include "../yScripts/y_CPOffset.jsx";␍#include "../yScripts/y_puppetRig.jsx";␍#include "../yScripts/y_GenericNewScript.jsx";
|
||||
=======
|
||||
var scriptUIPanel = this;
|
||||
YTB =
|
||||
{
|
||||
info :
|
||||
{
|
||||
name : "yToolBox",
|
||||
ver : 0.51,
|
||||
status : "alpha",
|
||||
url : "yorchnet.com",
|
||||
description : "My mixed bag of tools"
|
||||
},
|
||||
resources :
|
||||
{
|
||||
icon : new File('../yScripts/yNet.png'),
|
||||
header : new File('../yScripts/header.png')
|
||||
},
|
||||
appearence :
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
},
|
||||
tools : [],
|
||||
createUI : function createUI()
|
||||
{
|
||||
var res ="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:'" + this.resources.header.path + '/' + this.resources.header.name + "',\
|
||||
preferredSize: [175, 35]},\
|
||||
ver: StaticText\
|
||||
{\
|
||||
text:'" + this.info.ver + "',\
|
||||
alignment:['center','center']\
|
||||
}\
|
||||
desc: StaticText\
|
||||
{\
|
||||
text:'" + this.info.description + "',\
|
||||
alignment:['center','center']\
|
||||
},\
|
||||
},\
|
||||
main: Group\
|
||||
{\
|
||||
orientation:'column',\
|
||||
alignment:['fill','fill'],\
|
||||
alignChildren:['center','center'],\
|
||||
},\
|
||||
footer: Group\
|
||||
{\
|
||||
alignment:['center','bottom'], \
|
||||
icn_app: Image {icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',preferredSize: [15, 18]},\
|
||||
txt_info: StaticText { text:'"+ this.info.url + "', alignment:['fill','center'] },\
|
||||
}, \
|
||||
}";
|
||||
this.window.grp = this.window.add( res );
|
||||
|
||||
this.window.layout.layout(true);
|
||||
this.customizeUI();
|
||||
|
||||
//EventHandlerAssignment
|
||||
this.window.onResize = this.resize;
|
||||
this.window.onClose = this.close;
|
||||
this.window.onDraw = this.autoLayout;
|
||||
},
|
||||
customizeUI : function customizeUI()
|
||||
{
|
||||
var g = this.window.graphics;
|
||||
var orange = g.newBrush(g.BrushType.SOLID_COLOR, [1, .45, 0, 1]);
|
||||
this.window.grp.main.graphics.backgroundColor = orange;
|
||||
},
|
||||
addTool : function addTool( aTool )
|
||||
{
|
||||
/**** TO DO ****/
|
||||
// Check that the tool object is unique.
|
||||
// Call for a window resize so it refreshes propperly.
|
||||
|
||||
this.tools.push( aTool );
|
||||
|
||||
var btn = this.window.grp.main.add( aTool.btnLauyout );
|
||||
|
||||
btn.onClick = aTool.activate;
|
||||
btn.yTool = aTool; // add a reference to the tool so I can access info on it later...
|
||||
|
||||
//alert(btn.onClick);
|
||||
|
||||
this.window.layout.layout(true);
|
||||
|
||||
return aTool;
|
||||
|
||||
},
|
||||
//EVENT HANDLERS
|
||||
resize : function resize()
|
||||
{
|
||||
this.layout.resize();
|
||||
},
|
||||
close : function close()
|
||||
{
|
||||
YTB = null;
|
||||
delete this;
|
||||
},
|
||||
init : function init()
|
||||
{
|
||||
this.window = ( scriptUIPanel instanceof Panel ) ? scriptUIPanel: new Window( "palette" , this.info.name , undefined, { resizeable : true } );
|
||||
this.createUI();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
YTB.init();
|
||||
|
||||
#include "../yScripts/y_setStructure.jsx";
|
||||
#include "../yScripts/y_colorProbe.jsx";
|
||||
#include "../yScripts/y_BindBetween2.jsx";
|
||||
#include "../yScripts/y_CPOffset.jsx";
|
||||
#include "../yScripts/y_puppetRig.jsx";
|
||||
#include "../yScripts/y_stopMotionLayer.jsx";
|
||||
|
||||
|
||||
@@ -0,0 +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();
|
||||
@@ -4,10 +4,10 @@ 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 = yToolBox_data.icon;
|
||||
yGeneric_data.img = YTB.icon;
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(yToolBox_data)!=='undefined'){
|
||||
if (typeof(YTB)!=='undefined'){
|
||||
|
||||
//it should be called from toolbox.
|
||||
yGeneric_data.buttonWidth=76;
|
||||
@@ -46,7 +46,7 @@ function build_yGeneric_data_UI(){
|
||||
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(yToolBox_data)=='undefined'){
|
||||
//if (typeof(YTB)=='undefined'){
|
||||
yGeneric_data.activate();
|
||||
//}else{
|
||||
//}
|
||||
|
||||
@@ -6,15 +6,15 @@ 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);
|
||||
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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ function build_yMultiRenamer_data_UI(){
|
||||
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'){
|
||||
if (typeof(YTB)=='undefined'){
|
||||
yMultiRenamer_data.activate();
|
||||
}else{
|
||||
}
|
||||
|
||||
@@ -6,15 +6,15 @@ 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);
|
||||
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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
yMultiRenamer_data.btnLayout = "btn_"+yMultiRenamer_data.scriptName+": Button { preferredSize: ['"+ YTB.buttonWidth+"','"+ YTB.buttonHeight+"'], text:'"+yMultiRenamer_data.scriptName+"', helpTip:'"+yMultiRenamer_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ 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'){
|
||||
if (typeof(YTB)=='undefined'){
|
||||
*/
|
||||
yMultiRenamer_data.activate();
|
||||
/*}else{
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YBindBetween2()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yBindBetween2",
|
||||
version : 0.13,
|
||||
stage : "development",
|
||||
description : "Constraints a layer between two others, position and rotation-wise",
|
||||
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.version + "',\
|
||||
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:'" + this.info.url + "', alignment:['fill','center']\
|
||||
},\
|
||||
}\
|
||||
}";
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
|
||||
this.window = new Window( this.res );
|
||||
this.refresh();
|
||||
this.window.exec_btn.onClick = this.run;
|
||||
this.window.layout.layout(true);
|
||||
this.window.center();
|
||||
this.window.show();
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
this.createUI();
|
||||
}
|
||||
this.activate = function activate()
|
||||
{
|
||||
yBindBetween2.yMainFunction();
|
||||
}
|
||||
this.run = function run()
|
||||
{
|
||||
app.beginUndoGroup('Bind Between Two');
|
||||
|
||||
selectedLayerName=String(this.window.lst_layer.selection);
|
||||
parentALayerName=String(this.window.lst_pa.selection);
|
||||
parentBLayerName=String(this.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(0);
|
||||
layer("Effects").addProperty("Slider Control");
|
||||
layer("Effects")("Slider Control").name = 'weight';
|
||||
layer("Effects")("weight")(1).setValue(50);
|
||||
layer("Effects").addProperty("Checkbox Control");
|
||||
layer("Effects")("Checkbox Control").name = 'stretch';
|
||||
posExp ='\
|
||||
a = effect("ctrl01")("Layer");\
|
||||
b = effect("ctrl02")("Layer");\
|
||||
aPos = a.toComp(a.anchorPoint);\
|
||||
bPos = b.toComp(b.anchorPoint);\
|
||||
w= effect("weight")(1)/100;\
|
||||
(aPos*(1-w)+bPos*(w))'
|
||||
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\
|
||||
}'
|
||||
scaleExp ='\
|
||||
a = effect("ctrl01")("Layer");\
|
||||
b = effect("ctrl02")("Layer");\
|
||||
aPos = a.toComp(a.anchorPoint);\
|
||||
bPos = b.toComp(b.anchorPoint);\
|
||||
d = Math.sqrt(Math.pow((aPos[0]-bPos[0]),2)+Math.pow((aPos[1]-bPos[1]),2));\
|
||||
x = transform.scale[0];\
|
||||
y = transform.scale[1];\
|
||||
sx = ((d*100)/this.width)/100;\
|
||||
stretch = effect("stretch")("Checkbox");\
|
||||
if(stretch==true){\
|
||||
[x*sx,y]\
|
||||
}else{\
|
||||
[x,y]\
|
||||
}'
|
||||
|
||||
layer.transform.position.expression = posExp;
|
||||
layer.transform.rotation.expression= rotExp;
|
||||
layer.transform.scale.expression= scaleExp;
|
||||
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
this.refresh = function refresh()
|
||||
{
|
||||
|
||||
var lists = [ this.window.lst_pa , this.window.lst_layer , this.window.lst_pb ]//they should be in this order for the assignment of the selection index works right/
|
||||
|
||||
for(i=0;i<lists.length;i++)
|
||||
{
|
||||
lists[i].removeAll();
|
||||
}
|
||||
|
||||
var sel = app.project.activeItem.selectedLayers;
|
||||
var compLayers = app.project.activeItem.layers;
|
||||
var selectableLayers = [];
|
||||
for ( var i = 1 ; i <= compLayers.length ; i++ )
|
||||
{
|
||||
selectableLayers.push(compLayers[i]);
|
||||
}
|
||||
|
||||
var lst_layer = this.window.lst_layer;
|
||||
var lst_pa = this.window.lst_pa;
|
||||
var lst_pb = this.window.lst_pb;
|
||||
|
||||
for( var i = 0 ; i < lists.length ; i++ )
|
||||
{
|
||||
for( j = 0 ; j < selectableLayers.length ; j++ )
|
||||
{
|
||||
lists[i].add('item',selectableLayers[j].index+"."+selectableLayers[j].name);
|
||||
}
|
||||
}
|
||||
|
||||
lst_layer.selection = 0;
|
||||
lst_pa.selection = 0;
|
||||
lst_pb.selection = 0;
|
||||
}
|
||||
|
||||
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')
|
||||
{
|
||||
yBindBetween2 = new YBindBetween2();
|
||||
yBindBetween2.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
yBindBetween2 = YTB.addTool(new YBindBetween2());
|
||||
}
|
||||
@@ -0,0 +1,173 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YCPOffset()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "YCornerPinOffset",
|
||||
version : 0.12,
|
||||
stage : "development",
|
||||
description : "Offsets each corner of a CornerPin Effect.",
|
||||
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()
|
||||
{
|
||||
//if called from the button as opposed as from the script.
|
||||
if ( String(this) == "[object Button]" )
|
||||
{
|
||||
this.yTool.processCornerPins();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.processCornerPins();
|
||||
}
|
||||
|
||||
}
|
||||
this.getSelectedCornerPins = 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] )
|
||||
{
|
||||
cornerPins.push(myEffects.property(effect));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return cornerPins;
|
||||
}
|
||||
this.getLayer = function getLayer(effect)
|
||||
{
|
||||
/* If given a layer's effect object
|
||||
this function returns the layer object */
|
||||
layer = effect.parentProperty.parentProperty;
|
||||
return layer;
|
||||
}
|
||||
this.addEffect = 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;
|
||||
}
|
||||
this.addPointControls = 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 = this.getLayer(effect);
|
||||
for(i=0;i<=3;i++)
|
||||
{
|
||||
new_effect = this.addEffect(layer,"Point Control",base_name+"_"+names[i]+"_"+"Offset");
|
||||
new_effect.property("Point").setValue([0,0]);
|
||||
}
|
||||
}
|
||||
this.processCornerPins = function processCornerPins(){
|
||||
|
||||
app.beginUndoGroup('ySetProject');
|
||||
pins = this.getSelectedCornerPins();
|
||||
|
||||
for(pin=0;pin<pins.length;pin++)
|
||||
{
|
||||
this.addPointControls(pins[pin])
|
||||
}
|
||||
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')
|
||||
{
|
||||
yCPOffset = new YCPOffset();
|
||||
yCPOffset.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
yCPOffset = YTB.addTool(new YCPOffset());
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
#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(yToolBox_data)!=='undefined'){
|
||||
yToolBox_data.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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.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(yToolBox_data)=='undefined'){
|
||||
yOffsetCornerPin_data.activate();
|
||||
}else{
|
||||
}
|
||||
Executable
+89
@@ -0,0 +1,89 @@
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YGenericTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yGenericTool",
|
||||
version : 0.1,
|
||||
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());
|
||||
}
|
||||
+85
-46
@@ -1,43 +1,71 @@
|
||||
yColorProbe_data = new Object();
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
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';
|
||||
function YColorProbe()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yColorProbe",
|
||||
version : 0.1,
|
||||
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()
|
||||
{
|
||||
|
||||
//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'] },\
|
||||
}\
|
||||
\
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
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( yColorProbe.info.name ); // yTool is a refernece to the Tool object, because THIS in this context returns the ButtonObject....
|
||||
|
||||
#include "usefulFunctions.jsx";
|
||||
|
||||
function yColorProbe(){
|
||||
//It works with Sampled layers at a 100% scale only.
|
||||
app.beginUndoGroup('Create ColorProbe');
|
||||
|
||||
try
|
||||
{
|
||||
sel = app.project.activeItem.selectedLayers[0];
|
||||
@@ -47,6 +75,7 @@ function yColorProbe(){
|
||||
sel = undefined;
|
||||
}
|
||||
|
||||
if(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.
|
||||
@@ -67,23 +96,33 @@ function yColorProbe(){
|
||||
myNull.source.width=30;
|
||||
myNull.anchorPoint=(15,15);
|
||||
|
||||
if(sel!==undefined){
|
||||
myNull("Effects")('sampledLayer')(1).setValue(sel.index);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Error : No layer selected.")
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
app.endUndoGroup();
|
||||
return 'ok'
|
||||
}
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
this.activate = this.yMainFunction;
|
||||
|
||||
function build_yColorProbe_data_UI(){
|
||||
yColorProbe_data.window = new Window ( yColorProbe_data.res);
|
||||
yColorProbe_data.window.show();
|
||||
}
|
||||
yColorProbe_data.activate =yColorProbe ;
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//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{
|
||||
}
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yColorProbe = new YColorProbe();
|
||||
yColorProbe.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
yColorProbe = YTB.addTool(new YColorProbe());
|
||||
}
|
||||
|
||||
+125
-109
@@ -1,45 +1,59 @@
|
||||
yPuppetRig_data = new Object();
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YPuppetRigTool()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "yPuppetRig",
|
||||
version : 0.34,
|
||||
stage : "development",
|
||||
description : "Tools for streamlining puppet-based animation rigs.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
scriptName : 'yPuppetRigger',
|
||||
scriptVer : 'v0.3.3a',
|
||||
scriptDesc : 'Tools for streamlining puppet-based animation rigs.',
|
||||
string_info : 'yorchnet.com',
|
||||
e_000 : 'e_000 : No layers are selected.',
|
||||
e_001 : 'e_001 : Layer contains no effects.',
|
||||
e_002 : 'e_002 : Layer contains no Puppet effects.',
|
||||
string_001 : 'Rig Pins',
|
||||
string_001x : 'Rigs Selected Pins on Layer',
|
||||
string_002 : 'Rig Layers',
|
||||
string_002x : 'Rigs Selected Layers',
|
||||
string_003 : 'Rig All',
|
||||
string_003x : 'Rig All Layers in Comp'
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
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],\
|
||||
this. res =
|
||||
"window { \
|
||||
type:'palette' , text:'" + this.resources.scriptName + " " + this.resources.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+"' }, \
|
||||
btn_01: Button { preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'], text:'" + this.resources.string_001 + "', helpTip:'" + this.resources.string_001x + "' }, \
|
||||
btn_02: Button { preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'], text:'" + this.resources.string_002 + "', helpTip:'" + this.resources.string_002x + "' }, \
|
||||
btn_03: Button { preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'], text:'" + this.resources.string_003 + "', helpTip:'" + this.resources.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: Slider { value:'125' , minvalue:'6' , maxvalue:'250' , text:'alaverga', helpTip:'" + this.resources.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'] },\
|
||||
@@ -55,55 +69,63 @@ yPuppetRig_data.res = "window { \
|
||||
},\
|
||||
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'] },\
|
||||
txt_info: StaticText { text:'" + this.resources.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 ;
|
||||
}
|
||||
this.createUI = function createUI()
|
||||
{
|
||||
this.window = new Window( this.res );
|
||||
this.window.layout.layout(true);
|
||||
this.window.center();
|
||||
this.window.show();
|
||||
|
||||
this.window.grp.optn.enabled = false;
|
||||
|
||||
function toggleOptions(){
|
||||
if(yPuppetRigDialog.grp.chk_optn==true){
|
||||
yPuppetRigDialog.grp.chk_optn=false;
|
||||
this.window.grp.btn_01.onClick = yPuppetRigTool.runRigPin; //Defines Button Action
|
||||
this.window.grp.btn_02.onClick = yPuppetRigTool.runRigLayer; //Defines Button Action
|
||||
this.window.grp.btn_03.onClick = yPuppetRigTool.runRigAll; //Defines Button Action
|
||||
this.window.grp.chk_optn.onClick = yPuppetRigTool.toggleOptions;
|
||||
}
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
this.createUI();
|
||||
}
|
||||
this.activate = function activate()
|
||||
{
|
||||
yPuppetRigTool.yMainFunction();
|
||||
}
|
||||
|
||||
/**/
|
||||
this.toggleOptions = function toggleOptions(){
|
||||
if(this.window.grp.chk_optn==true){
|
||||
this.window.grp.chk_optn=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
yPuppetRigDialog.grp.chk_optn=true;
|
||||
this.window.grp.chk_optn=true;
|
||||
}
|
||||
yPuppetRigDialog.grp.optn.enabled = yPuppetRigDialog.grp.chk_optn;
|
||||
}
|
||||
function customColors(rsr){
|
||||
this.window.grp.optn.enabled = this.window.grp.chk_optn;
|
||||
}
|
||||
this.customColors = 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){
|
||||
this.getPuppetEffects = 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);
|
||||
this.getPosPins = function getPosPins(aLayer){
|
||||
puppetEffects = this.getPuppetEffects(aLayer);
|
||||
if(puppetEffects.length>0){
|
||||
posPins = [];
|
||||
for(i=0;i<puppetEffects.length;i++){
|
||||
@@ -120,14 +142,14 @@ function getPosPins(aLayer){
|
||||
return []
|
||||
}
|
||||
}
|
||||
function rigPins(aLayer,selectedOnly){
|
||||
pins = getPosPins(aLayer);
|
||||
this.rigPins = function rigPins(aLayer,selectedOnly){
|
||||
pins = this.getPosPins(aLayer);
|
||||
selectedPins = [];
|
||||
createdNulls =[];
|
||||
for(i=0;i<pins.length;i++){
|
||||
selectedPins.push(pins[i].selected)
|
||||
}
|
||||
setPropsFromUI();
|
||||
this.setPropsFromUI();
|
||||
|
||||
for(i=0;i<pins.length;i++){
|
||||
if(selectedPins[i]||!selectedOnly){
|
||||
@@ -154,43 +176,29 @@ function rigPins(aLayer,selectedOnly){
|
||||
|
||||
}
|
||||
|
||||
//stuff to apply to main layer
|
||||
aLayer.quality = layerQuality;
|
||||
aLayer.locked = layerLock;
|
||||
//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;
|
||||
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);
|
||||
this.runRigPin = function runRigPin(){
|
||||
app.beginUndoGroup( yPuppetRigTool.resources.string_001 );
|
||||
sel =app.project.activeItem.selectedLayers;
|
||||
setPropsFromUI();
|
||||
rigPins(sel[0],true);
|
||||
yPuppetRigTool.setPropsFromUI();
|
||||
yPuppetRigTool.rigPins(sel[0],true);
|
||||
app.endUndoGroup();
|
||||
}
|
||||
function runRigLayer(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_002);
|
||||
this.runRigLayer = function runRigLayer(){
|
||||
//alert( yPuppetRigTool.resources.string_002 );
|
||||
app.beginUndoGroup( yPuppetRigTool.resources.string_002 );
|
||||
allLayers = app.project.activeItem.layers;
|
||||
workLayers = [];
|
||||
for(i=1;i<=allLayers.length;i++){
|
||||
@@ -199,26 +207,27 @@ function runRigLayer(){
|
||||
}
|
||||
}
|
||||
for(x=0;x<workLayers.length;x++){
|
||||
rigPins(workLayers[x],false);
|
||||
//alert( yPuppetRigTool.info );
|
||||
yPuppetRigTool.rigPins(workLayers[x],false);
|
||||
}
|
||||
app.endUndoGroup();
|
||||
|
||||
}
|
||||
function runRigAll(){
|
||||
app.beginUndoGroup(yPuppetRig_data.string_003);
|
||||
this.runRigAll = function runRigAll(){
|
||||
app.beginUndoGroup( yPuppetRigTool.resources.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);
|
||||
yPuppetRigTool.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){
|
||||
this.setPropsFromUI = function setPropsFromUI(){
|
||||
nullSize = yFactor(parseInt(this.window.grp.optn.nullSizeGrp.sldr.value),5)
|
||||
if(this.window.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_02.value==true){
|
||||
layerLock =true // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
@@ -226,7 +235,7 @@ function setPropsFromUI(){
|
||||
layerLock =false // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
|
||||
if(yPuppetRigDialog.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_01.value==true){
|
||||
if(this.window.grp.optn.nullSizeGrp.otherOptionsGrp.chk_box_01.value==true){
|
||||
layerQuality =LayerQuality.DRAFT // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
else
|
||||
@@ -234,12 +243,19 @@ function setPropsFromUI(){
|
||||
layerQuality =LayerQuality.BEST // solo si vamos a hacer vainas pixeladas.
|
||||
}
|
||||
}
|
||||
/**/
|
||||
|
||||
//build_yPuppetRig_UI();
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||||
if (typeof(yToolBox_data)=='undefined'){
|
||||
yPuppetRig_data.activate();
|
||||
}else{
|
||||
}
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yPuppetRigTool = new YPuppetRigTool();
|
||||
yPuppetRigTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
yPuppetRigTool = YTB.addTool(new YPuppetRigTool());
|
||||
}
|
||||
|
||||
+115
-67
@@ -1,83 +1,131 @@
|
||||
<<<<<<< HEAD
|
||||
#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 = 1;i<=newStruct.length;i++)␍ {␍ app.project.items.addFolder(newStruct[i-1]);␍ if ( app.project.items[i].name == "01 MAIN" )␍ {␍ //alert("yes");␍ app.project.items[i].items.addComp("JOBCODE_TYPE_[Scene_name]_vA_r000",1920,1080,1,30,23.976);␍ } ␍ ␍ }␍ ␍ 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␍{␍ ySetProjectTool = YTB.addTool(new YSetProjectTool());␍}
|
||||
=======
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
|
||||
ySetProject_data = new Object();
|
||||
|
||||
ySetProject_data.scriptName = 'YSetStructure';
|
||||
ySetProject_data.scriptDesc = 'Set the Folder Structure for a new Project';
|
||||
ySetProject_data.scriptVer = '0.1a';
|
||||
ySetProject_data.webLink = 'yorchnet.com';
|
||||
|
||||
//if yToolBox Exists add it to its tool list.
|
||||
if (typeof(yToolBox_data)!=='undefined'){
|
||||
yToolBox_data.tools.push(ySetProject_data);
|
||||
|
||||
//it should be called from toolbox.
|
||||
/*
|
||||
ySetProject_data.buttonWidth=76;
|
||||
ySetProject_data.buttonHeight=30;
|
||||
*/
|
||||
ySetProject_data.btnLayout = "btn_"+ ySetProject_data.scriptName+": Button { preferredSize: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.buttonHeight+"'], text:'"+ySetProject_data.scriptName+"', helpTip:'"+ySetProject_data.scriptDesc+"' }";
|
||||
|
||||
}
|
||||
|
||||
ySetProject_data.res = "window { \
|
||||
type:'palette' , text:'"+ySetProject_data.scriptName+' '+ySetProject_data.scriptVer+"',\
|
||||
\
|
||||
\
|
||||
info: Group { \
|
||||
alignment:['center','bottom'], \
|
||||
icon: Image {preferredSize: [15, 18]},\
|
||||
website: StaticText { text:'"+ySetProject_data.webLink+"', alignment:['fill','center'] },\
|
||||
}\
|
||||
\
|
||||
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 + "'\
|
||||
}";
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
function ySetProject(){
|
||||
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 = [];
|
||||
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'){
|
||||
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
|
||||
//to start a new organized project since the beginning
|
||||
|
||||
if (projectItems.length == 0){
|
||||
if (projectItems.length == 0)
|
||||
{
|
||||
newStruct = preStruct;
|
||||
}else{
|
||||
for(a=0;a<preStruct.length;a++){
|
||||
if ((projectItems.getOne(preStruct[a]))==-1){
|
||||
}
|
||||
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();
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function build_ySetProject_data_UI(){
|
||||
ySetProject_data.window = new Window ( ySetProject_data.res);
|
||||
ySetProject_data.window.show();
|
||||
}
|
||||
ySetProject_data.activate = ySetProject ;
|
||||
}
|
||||
|
||||
for(i = 1;i<=newStruct.length;i++)
|
||||
{
|
||||
app.project.items.addFolder(newStruct[i-1]);
|
||||
if ( app.project.items[i].name == "01 MAIN" )
|
||||
{
|
||||
//alert("yes");
|
||||
app.project.items[i].items.addComp("JOBCODE_TYPE_[Scene_name]_vA_r000",1920,1080,1,30,23.976);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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(yToolBox_data)=='undefined'){
|
||||
ySetProject_data.activate();
|
||||
}else{
|
||||
}
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
ySetProjectTool = new YSetProjectTool();
|
||||
ySetProjectTool.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
YTB.addTool(new YSetProjectTool());
|
||||
}
|
||||
>>>>>>> 841484771586f75c140288b329d54c96d3cb3925
|
||||
|
||||
+110
-60
@@ -1,41 +1,78 @@
|
||||
yStopMotion_data = new Object();
|
||||
#include "../yScripts/y_JSExtensions.jsx";
|
||||
function YStopMotionLayer()
|
||||
{
|
||||
this.info =
|
||||
{
|
||||
name : "YStopMotionLayer",
|
||||
version : 0.11,
|
||||
stage : "development",
|
||||
description : "Tool to create a sprite-like behaviour with a composition.",
|
||||
url : "yorchnet.com"
|
||||
};
|
||||
this.appearence =
|
||||
{
|
||||
buttonHeight : 30,
|
||||
buttonWidth : 126
|
||||
};
|
||||
this.resources =
|
||||
{
|
||||
icon : new File('yNet.png'),
|
||||
e_0000 : "There are no comps in project.",
|
||||
e_0001 : "No Comps selected."
|
||||
};
|
||||
this.init = function init()
|
||||
{
|
||||
|
||||
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(yToolBox_data)!=='undefined'){
|
||||
yToolBox_data.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: ['"+ yToolBox_data.buttonWidth+"','"+ yToolBox_data.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'] },\
|
||||
}\
|
||||
\
|
||||
this.btnLauyout =
|
||||
"button\
|
||||
{\
|
||||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||||
text:'" + this.info.name + "',\
|
||||
helpTip:'" + this.info.description + "'\
|
||||
}";
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
// MAIN SCRIPT GOES HERE.
|
||||
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'\
|
||||
}"
|
||||
|
||||
e_0000 = "There are no comps in project."
|
||||
e_0001 = "No Comps selected."
|
||||
this.window = new Window( res );
|
||||
this.window.layout.layout(true);
|
||||
this.window.center();
|
||||
this.window.show();
|
||||
}
|
||||
|
||||
|
||||
/** MEAT **/
|
||||
|
||||
|
||||
this.yApplyStopMotionLayer = function yApplyStopMotionLayer(){
|
||||
|
||||
function yStopMotionLayer(){
|
||||
myName = "yStopMotionLayer";
|
||||
myVer = "0.2a";
|
||||
nComps = app.project.items.length;
|
||||
@@ -54,13 +91,13 @@ function yStopMotionLayer(){
|
||||
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}';
|
||||
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);
|
||||
@@ -73,29 +110,42 @@ max\
|
||||
txtExpression = null;
|
||||
}
|
||||
}else{
|
||||
alert(e_0001,myName+' '+myVer);
|
||||
alert( this.resources.e_0001,myName+' '+myVer);
|
||||
}
|
||||
}else{
|
||||
alert(e_0000,myName+' '+myVer+" : Error");
|
||||
alert(this.resources.e_0000,myName+' '+myVer+" : Error");
|
||||
}
|
||||
app.endUndoGroup();
|
||||
app.endUndoGroup();
|
||||
}
|
||||
|
||||
|
||||
/**/
|
||||
|
||||
|
||||
this.yMainFunction = function yMainFunction()
|
||||
{
|
||||
//this.createUI();
|
||||
this.YStopMotionLayer();
|
||||
}
|
||||
this.activate = function activate()
|
||||
{
|
||||
yStopMotionLayer.yApplyStopMotionLayer();
|
||||
//this.yMainFunction();
|
||||
}
|
||||
|
||||
|
||||
|
||||
this.init();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------//--------
|
||||
|
||||
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{
|
||||
}
|
||||
if (typeof(YTB)=='undefined')
|
||||
{
|
||||
yStopMotionLayer = new YStopMotionLayer();
|
||||
yStopMotionLayer.activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
yStopMotionLayer = YTB.addTool(new YStopMotionLayer());
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user