From 345327e92610f5e638647e273a2f32026a5fdc14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1ssquez=20P=C3=A9rez?= Date: Fri, 13 Jan 2017 12:27:39 -0800 Subject: [PATCH 01/24] Added a blender operator to replace objects for empties, matching the orientation of the objects --- python/blender.op.emptify.py | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 python/blender.op.emptify.py diff --git a/python/blender.op.emptify.py b/python/blender.op.emptify.py new file mode 100644 index 0000000..6240ce3 --- /dev/null +++ b/python/blender.op.emptify.py @@ -0,0 +1,45 @@ +import bpy + +def main(context): + obs = list(context.selected_objects) + for ob in obs: + empty = bpy.data.objects.new(ob.name+"_empty", None) + scene = bpy.context.scene + scene.objects.link(empty) + bpy.ops.object.select_pattern(pattern=empty.name,extend=False) + bpy.ops.object.select_pattern(pattern=ob.name,extend=True) + bpy.ops.object.parent_no_inverse_set() + bpy.ops.object.select_pattern(pattern=empty.name,extend=False) + bpy.ops.object.parent_clear(type='CLEAR_KEEP_TRANSFORM') + bpy.ops.object.select_pattern(pattern=ob.name,extend=False) + bpy.ops.object.delete(use_global=False) + + scene.update() + +class Emptyfy(bpy.types.Operator): + """Tooltip""" + bl_idname = "object.emptyfy" + bl_label = "Emptify" + + @classmethod + def poll(cls, context): + return context.active_object is not None + + def execute(self, context): + main(context) + return {'FINISHED'} + + +def register(): + bpy.utils.register_class(Emptyfy) + + +def unregister(): + bpy.utils.unregister_class(Emptyfy) + + +if __name__ == "__main__": + register() + + # test call + #bpy.ops.object.emptyfy() From eb7c99a77186d2ce6c91133dcde7c66cb44a24cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1ssquez=20P=C3=A9rez?= Date: Fri, 24 Feb 2017 18:29:58 -0800 Subject: [PATCH 02/24] Script to customize pieces for the disney 2017 gfx package --- jsx/MKN_DC_Customizer.jsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 jsx/MKN_DC_Customizer.jsx diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx new file mode 100644 index 0000000..7b1f567 --- /dev/null +++ b/jsx/MKN_DC_Customizer.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'Show Title', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["Palette 01","Palette 02","Palette 03","Palette 04"]; for (var i=0; i= 1300 ) { ctrl_layer("Effects")("long_name")("Checkbox").setValue(1); } else { ctrl_layer("Effects")("long_name")("Checkbox").setValue(0); } ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } //function tcd_doIt (palObj) var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From 46c3ce3055f00e81ae429c4e5b0eff35f3473fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1ssquez=20P=C3=A9rez?= Date: Tue, 28 Feb 2017 10:29:21 -0800 Subject: [PATCH 03/24] Now the collected AFX file goes to the same directory as the collected media files --- python/mkn_collect_xml.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/python/mkn_collect_xml.py b/python/mkn_collect_xml.py index ffc6576..7df1c13 100755 --- a/python/mkn_collect_xml.py +++ b/python/mkn_collect_xml.py @@ -41,11 +41,14 @@ def get_files( text_file ): fileRef.set("fullpath",dest + os.path.basename(filepath)) else: fileRef.set("fullpath",dest + os.path.basename(filepath)) - print( "asasas", Pin[0].attrib["bdata"] ) + #print( "asasas", Pin[0].attrib["bdata"] ) #fileRef.set("fullpath",dest + os.path.basename(filepath)) - - xml_tree.write(os.path.dirname(name)+os.sep+os.path.basename(name).split(".")[0]+"_collected"+ os.path.extsep + os.path.basename(name).split(".")[1],encoding="utf-8") - + print('writing to', os.path.dirname(name)+os.sep+os.path.basename(name).split(".")[0]+"_collected"+ os.path.extsep + os.path.basename(name).split(".")[1]) + print('alternatively write to', dest+'..'+os.sep+ os.path.basename(name)) + + #xml_tree.write(os.path.dirname(name)+os.sep+os.path.basename(name).split(".")[0]+"_collected"+ os.path.extsep + os.path.basename(name).split(".")[1],encoding="utf-8") + xml_tree.write( dest+'..'+os.sep+ os.path.basename(name) ,encoding="utf-8") + #for item in root.iter("{http://www.adobe.com/products/aftereffects}fileReference"): #filepath = item.attrib["fullpath"] @@ -106,3 +109,9 @@ def copy_files( files , dest ): #copy_files( get_seqs( name ), dest ) #copy_files( get_files( name ), dest ) get_files( name) + +for i in range(0,4): + print('\a') + +print('DONE') + From 45d28c95b68a51afc0fb89d420ce599268893672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1ssquez=20P=C3=A9rez?= Date: Tue, 28 Feb 2017 10:42:58 -0800 Subject: [PATCH 04/24] Added the palette applier script and repositioning options for the whole piece --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index 7b1f567..f15db0d 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'Show Title', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["Palette 01","Palette 02","Palette 03","Palette 04"]; for (var i=0; i= 1300 ) { ctrl_layer("Effects")("long_name")("Checkbox").setValue(1); } else { ctrl_layer("Effects")("long_name")("Checkbox").setValue(0); } ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } //function tcd_doIt (palObj) var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = [ comp.layer("TITLE")("Effects")("Fill")("Color"), comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_BG")("To"), comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_FG")("To"), comp.layer("MAIN_BG")("Effects")("Fill")("Color"), comp.layer("BG_Ears")("Effects")("Fill")("Color") ]; var opacity_targets= [ comp.layer("BG_Ears")("Transform")("Opacity"), comp.layer("Vignette")("Transform")("Opacity") ]; for ( var i = 0; i < color_targets.length; i++) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } for ( var j = 0; j < opacity_targets.length; j++) { opacity_targets[j].setValue(palettes[palette_string][j+7]); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["A","C","D","E","F","G","H"]; for (var i=0; i= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function tcd_doIt (){ applyPallette(myPalette.grp.match.suffix.paletteOption.selection); applyShowTitle( myPalette.grp.match.suffix.suffixString.text ); } //function tcd_doIt (palObj) /* var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; */ var palettes = { A : [ 0xFFFB00, 0x3BCCFD, 0x2A9BC1, 0xFAF800, 0xE74DB7, 0x6B00C0, 0x0D0D0F, 35, 60 ], C : [ 0xE74DB7, 0xFFFC00, 0xBBB900, 0xE74DB7, 0xFAF800, 0x00D4CF, 0x000000, 50, 55 ], D : [ 0xFFFB00, 0x3BCCFD, 0x2A9BC1, 0xE74DB7, 0xFAF800, 0x3A404A, 0x000000, 35, 45 ], E : [ 0x288492, 0xFFFC00, 0xBBB900, 0xFAF800, 0x7D2CE5, 0x3290EB, 0x000000, 35, 8 ], F : [ 0x1BF0FF, 0xE74DB7, 0xA93886, 0x7D2CE5, 0x3CCCFE, 0xF0ED00, 0xA28600, 85, 8 ] } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From 672c447cccdaa6da5b5970e8823f9a592a677ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1ssquez=20P=C3=A9rez?= Date: Tue, 28 Feb 2017 10:57:37 -0800 Subject: [PATCH 05/24] Added a youtube-dl script to download a playlist with my prefered format options --- bash/ytdlpl.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 bash/ytdlpl.sh diff --git a/bash/ytdlpl.sh b/bash/ytdlpl.sh new file mode 100755 index 0000000..1fd130b --- /dev/null +++ b/bash/ytdlpl.sh @@ -0,0 +1,8 @@ +export IFS=$'\n'; +for i; + do + youtube-dl -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" -f bestaudio "$i" + #youtube-dl -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" -f bestvideo+bestaudio "$i" +done; + + From ed943ceda9ff7c70e9ffd216426f252bf0224369 Mon Sep 17 00:00:00 2001 From: jorgevasquezp Date: Tue, 28 Feb 2017 11:03:45 -0800 Subject: [PATCH 06/24] Added ascript to create the folder structure of a disney project piece --- bash/mkn_d_mk_piece.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 bash/mkn_d_mk_piece.sh diff --git a/bash/mkn_d_mk_piece.sh b/bash/mkn_d_mk_piece.sh new file mode 100755 index 0000000..1e2d9a8 --- /dev/null +++ b/bash/mkn_d_mk_piece.sh @@ -0,0 +1,10 @@ +for i; +do + curr_proj="DC_WTR" + new_dir=$curr_proj"_Projects_"$i + mkdir $new_dir + mkdir $new_dir"/2D" + mkdir $new_dir"/2D/footage" + mkdir $new_dir"/Sample Renders" +done; +echo -e '\a' From db84cc614719b6cf8c1a4507d5d345af2aac4c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Tue, 28 Feb 2017 11:51:46 -0800 Subject: [PATCH 07/24] Changed to an object srtucture rather than an array to store the style info. --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index f15db0d..4dc2692 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = [ comp.layer("TITLE")("Effects")("Fill")("Color"), comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_BG")("To"), comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_FG")("To"), comp.layer("MAIN_BG")("Effects")("Fill")("Color"), comp.layer("BG_Ears")("Effects")("Fill")("Color") ]; var opacity_targets= [ comp.layer("BG_Ears")("Transform")("Opacity"), comp.layer("Vignette")("Transform")("Opacity") ]; for ( var i = 0; i < color_targets.length; i++) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } for ( var j = 0; j < opacity_targets.length; j++) { opacity_targets[j].setValue(palettes[palette_string][j+7]); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["A","C","D","E","F","G","H"]; for (var i=0; i= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function tcd_doIt (){ applyPallette(myPalette.grp.match.suffix.paletteOption.selection); applyShowTitle( myPalette.grp.match.suffix.suffixString.text ); } //function tcd_doIt (palObj) /* var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; */ var palettes = { A : [ 0xFFFB00, 0x3BCCFD, 0x2A9BC1, 0xFAF800, 0xE74DB7, 0x6B00C0, 0x0D0D0F, 35, 60 ], C : [ 0xE74DB7, 0xFFFC00, 0xBBB900, 0xE74DB7, 0xFAF800, 0x00D4CF, 0x000000, 50, 55 ], D : [ 0xFFFB00, 0x3BCCFD, 0x2A9BC1, 0xE74DB7, 0xFAF800, 0x3A404A, 0x000000, 35, 45 ], E : [ 0x288492, 0xFFFC00, 0xBBB900, 0xFAF800, 0x7D2CE5, 0x3290EB, 0x000000, 35, 8 ], F : [ 0x1BF0FF, 0xE74DB7, 0xA93886, 0x7D2CE5, 0x3CCCFE, 0xF0ED00, 0xA28600, 85, 8 ] } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_BG")("To"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_FG")("To"), col_bg: comp.layer("MAIN_BG")("Effects")("Fill")("Color"), col_ears: comp.layer("BG_Ears")("Effects")("Fill")("Color") }; var opacity_targets = { opacity_ears: comp.layer("BG_Ears")("Transform")("Opacity"), opacity_vignette: comp.layer("Vignette")("Transform")("Opacity") } for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } for ( var i in opacity_targets ) { opacity_targets[i].setValue(palettes[palette_string][i]); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["A","C","D","E","F","G","H"]; for (var i=0; i= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function tcd_doIt (){ applyPallette(myPalette.grp.match.suffix.paletteOption.selection); applyShowTitle( myPalette.grp.match.suffix.suffixString.text ); } //function tcd_doIt (palObj) /* var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; */ var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_bg: 0x6B00C0, col_ears: 0x0D0D0F, opacity_ears: 35, opacity_vignette: 60 }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_bg: 0x00D4CF, col_ears: 0x000000, opacity_ears: 50, opacity_vignette: 55 }, D : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_bg: 0x3A404A, col_ears: 0x000000, opacity_ears: 35, opacity_vignette: 45 }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xFAF800, col_logo_fg: 0x7D2CE5, col_bg: 0x3290EB, col_ears: 0x000000, opacity_ears: 35, opacity_vignette: 8 }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x7D2CE5, col_logo_fg: 0x3CCCFE, col_bg: 0xF0ED00, col_ears: 0xA28600, opacity_ears: 85, opacity_vignette: 8 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From e4cb055a754427788eb2242f4056e0cdafb1b96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Wed, 1 Mar 2017 12:50:02 -0800 Subject: [PATCH 08/24] Now there's no need to apply changes, they are automatically applied at changing time. --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index 4dc2692..9143717 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_BG")("To"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble")("Effects")("Logo_FG")("To"), col_bg: comp.layer("MAIN_BG")("Effects")("Fill")("Color"), col_ears: comp.layer("BG_Ears")("Effects")("Fill")("Color") }; var opacity_targets = { opacity_ears: comp.layer("BG_Ears")("Transform")("Opacity"), opacity_vignette: comp.layer("Vignette")("Transform")("Opacity") } for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } for ( var i in opacity_targets ) { opacity_targets[i].setValue(palettes[palette_string][i]); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ suffix: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ suffixTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ suffixString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); var paletteOptions = ["A","C","D","E","F","G","H"]; for (var i=0; i= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function tcd_doIt (){ applyPallette(myPalette.grp.match.suffix.paletteOption.selection); applyShowTitle( myPalette.grp.match.suffix.suffixString.text ); } //function tcd_doIt (palObj) /* var tcd_mode = 0; // 0 - none, 1 - add suffix, 2 - search and replace var tcd_suffix = ""; var tcd_searchTerm = ""; var tcd_replaceTerm = ""; */ var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_bg: 0x6B00C0, col_ears: 0x0D0D0F, opacity_ears: 35, opacity_vignette: 60 }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_bg: 0x00D4CF, col_ears: 0x000000, opacity_ears: 50, opacity_vignette: 55 }, D : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_bg: 0x3A404A, col_ears: 0x000000, opacity_ears: 35, opacity_vignette: 45 }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xFAF800, col_logo_fg: 0x7D2CE5, col_bg: 0x3290EB, col_ears: 0x000000, opacity_ears: 35, opacity_vignette: 8 }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x7D2CE5, col_logo_fg: 0x3CCCFE, col_bg: 0xF0ED00, col_ears: 0xA28600, opacity_ears: 85, opacity_vignette: 8 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); for ( i in paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); } myPal.grp.doItBtn.onClick = function () { var checkError = false; if (checkError == false) tcd_doIt (); } //myPal.grp.doItBtn.onClick = function () myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function applyShowTitle( new_title ){ var comp = app.project.activeItem; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = app.project.activeItem.layer("DC_GEN_BG_"+String(id)).source; a = app.project.activeItem.layer("BG"); a.replaceSource(new_source,false) } function tcd_doIt (){ /*var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; var title = myPalette.grp.match.title.titleString.text; setBG( id ); applyPallette( id ); applyShowTitle( title ); */ } //function tcd_doIt (palObj) var paletteOptions = ["C","D","E","F","G","H"]; var paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, D : { col_title: 0x2a3a51, col_bubble: 0x3ed9bc, col_bubble_shadow: 0x238573, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x3ed9bc }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xe149ae, col_logo_fg: 0xFFFC00, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x1BF0FF, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, G : { col_title: 0xfffa38, col_bubble: 0x7c36e1, col_bubble_shadow: 0x5525ab, col_logo_bg : 0x44f2fc, col_logo_fg: 0x7c36e1, col_logo_neutral: 0x2C313B, col_logo_accent: 0x2C313B }, H: { col_title: 0x7c36e1, col_bubble: 0xfffa38, col_bubble_shadow: 0xc3bf28, col_logo_bg : 0x7c36e1, col_logo_fg: 0xfffa38, col_logo_neutral: 0x2C313B, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From a6e7a7c2568059504ef411f963b9dae0238e8cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Wed, 1 Mar 2017 12:54:25 -0800 Subject: [PATCH 09/24] Removed the old DoIt Button --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index 9143717..029bc1f 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ }"; myPal.grp = myPal.add(res); for ( i in paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); } myPal.grp.doItBtn.onClick = function () { var checkError = false; if (checkError == false) tcd_doIt (); } //myPal.grp.doItBtn.onClick = function () myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function applyShowTitle( new_title ){ var comp = app.project.activeItem; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = app.project.activeItem.layer("DC_GEN_BG_"+String(id)).source; a = app.project.activeItem.layer("BG"); a.replaceSource(new_source,false) } function tcd_doIt (){ /*var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; var title = myPalette.grp.match.title.titleString.text; setBG( id ); applyPallette( id ); applyShowTitle( title ); */ } //function tcd_doIt (palObj) var paletteOptions = ["C","D","E","F","G","H"]; var paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, D : { col_title: 0x2a3a51, col_bubble: 0x3ed9bc, col_bubble_shadow: 0x238573, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x3ed9bc }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xe149ae, col_logo_fg: 0xFFFC00, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x1BF0FF, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, G : { col_title: 0xfffa38, col_bubble: 0x7c36e1, col_bubble_shadow: 0x5525ab, col_logo_bg : 0x44f2fc, col_logo_fg: 0x7c36e1, col_logo_neutral: 0x2C313B, col_logo_accent: 0x2C313B }, H: { col_title: 0x7c36e1, col_bubble: 0xfffa38, col_bubble_shadow: 0xc3bf28, col_logo_bg : 0x7c36e1, col_logo_fg: 0xfffa38, col_logo_neutral: 0x2C313B, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.grp = myPal.add(res); for ( i in paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); } /* myPal.grp.doItBtn.onClick = function () { var checkError = false; if (checkError == false) tcd_doIt (); } //myPal.grp.doItBtn.onClick = function () */ myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function applyShowTitle( new_title ){ var comp = app.project.activeItem; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = app.project.activeItem.layer("DC_GEN_BG_"+String(id)).source; a = app.project.activeItem.layer("BG"); a.replaceSource(new_source,false) } function tcd_doIt (){ } //function tcd_doIt (palObj) var paletteOptions = ["C","D","E","F","G","H"]; var paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, D : { col_title: 0x2a3a51, col_bubble: 0x3ed9bc, col_bubble_shadow: 0x238573, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x3ed9bc }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xe149ae, col_logo_fg: 0xFFFC00, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x1BF0FF, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, G : { col_title: 0xfffa38, col_bubble: 0x7c36e1, col_bubble_shadow: 0x5525ab, col_logo_bg : 0x44f2fc, col_logo_fg: 0x7c36e1, col_logo_neutral: 0x2C313B, col_logo_accent: 0x2C313B }, H: { col_title: 0x7c36e1, col_bubble: 0xfffa38, col_bubble_shadow: 0xc3bf28, col_logo_bg : 0x7c36e1, col_logo_fg: 0xfffa38, col_logo_neutral: 0x2C313B, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From 37dd0bb36bcb2b22aa1cf4405cd9ec22abd8039b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 2 Mar 2017 15:43:15 -0800 Subject: [PATCH 10/24] Reorganized everything a little better, and changed the way the avatars load --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index 029bc1f..7ac75e9 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyPallette( palette_string ){ var comp = app.project.activeItem; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ) { color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'SHOW TITLE HERE', alignment: ['fill','center']}, \ } \ } \ \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.grp = myPal.add(res); for ( i in paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); var id = paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); } /* myPal.grp.doItBtn.onClick = function () { var checkError = false; if (checkError == false) tcd_doIt (); } //myPal.grp.doItBtn.onClick = function () */ myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function applyShowTitle( new_title ){ var comp = app.project.activeItem; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = app.project.activeItem.layer("DC_GEN_BG_"+String(id)).source; a = app.project.activeItem.layer("BG"); a.replaceSource(new_source,false) } function tcd_doIt (){ } //function tcd_doIt (palObj) var paletteOptions = ["C","D","E","F","G","H"]; var paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; var palettes = { A : { col_title: 0xFFFB00, col_bubble: 0x3BCCFD, col_bubble_shadow: 0x2A9BC1, col_logo_bg : 0xFAF800, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, C : { col_title: 0xE74DB7, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, D : { col_title: 0x2a3a51, col_bubble: 0x3ed9bc, col_bubble_shadow: 0x238573, col_logo_bg : 0xE74DB7, col_logo_fg: 0xFAF800, col_logo_neutral: 0x2C313B, col_logo_accent: 0x3ed9bc }, E : { col_title: 0x288492, col_bubble: 0xFFFC00, col_bubble_shadow: 0xBBB900, col_logo_bg : 0xe149ae, col_logo_fg: 0xFFFC00, col_logo_neutral: 0x2C313B, col_logo_accent: 0x19EDFF }, F : { col_title: 0x1BF0FF, col_bubble: 0xE74DB7, col_bubble_shadow: 0xA93886, col_logo_bg : 0x1BF0FF, col_logo_fg: 0xE74DB7, col_logo_neutral: 0x2C313B, col_logo_accent: 0x7c36e1 }, G : { col_title: 0xfffa38, col_bubble: 0x7c36e1, col_bubble_shadow: 0x5525ab, col_logo_bg : 0x44f2fc, col_logo_fg: 0x7c36e1, col_logo_neutral: 0x2C313B, col_logo_accent: 0x2C313B }, H: { col_title: 0x7c36e1, col_bubble: 0xfffa38, col_bubble_shadow: 0xc3bf28, col_logo_bg : 0x7c36e1, col_logo_fg: 0xfffa38, col_logo_neutral: 0x2C313B, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From ce643ff277255774e1c09b5769228135d52e0b8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 2 Mar 2017 16:16:06 -0800 Subject: [PATCH 11/24] Added an Array.prototype.indexOf function, for older JS versions --- jsx/MKN_DC_Customizer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx index 7ac75e9..3dbdc3b 100644 --- a/jsx/MKN_DC_Customizer.jsx +++ b/jsx/MKN_DC_Customizer.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From fecbd36233c99e5205f77887e4229505c3ad7ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Mon, 6 Mar 2017 16:22:09 -0800 Subject: [PATCH 12/24] Renamed Customizer Script to the appropriate piece it was supposed to be customizing, to make room for the new ones. --- jsx/MKN_DC_BUMPER_ToolkitScript.jsx | 1 + 1 file changed, 1 insertion(+) create mode 100755 jsx/MKN_DC_BUMPER_ToolkitScript.jsx diff --git a/jsx/MKN_DC_BUMPER_ToolkitScript.jsx b/jsx/MKN_DC_BUMPER_ToolkitScript.jsx new file mode 100755 index 0000000..1777022 --- /dev/null +++ b/jsx/MKN_DC_BUMPER_ToolkitScript.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { return; } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From 1cb7da9bc870ee301166ed12d8804de1471eeab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Mon, 6 Mar 2017 21:42:32 -0800 Subject: [PATCH 13/24] Added a script for customizing the Horizontal EP piece, still WIP --- jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx diff --git a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx new file mode 100644 index 0000000..259b210 --- /dev/null +++ b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'STARTS',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateTime = function( s ){ app.beginUndoGroup("updateTime"); myPal.time_layer.sourceText.setValue( s ); time_width = myPal.time_layer.sourceRectAtTime(0, false).width; day_width = myPal.day_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); app.endUndoGroup(); }; myPal.updateDay = function( s ){ app.beginUndoGroup("updateDay"); myPal.day_layer.sourceText.setValue( s ); time_width = myPal.time_layer.sourceRectAtTime(0, false).width; day_width = myPal.day_layer.sourceRectAtTime(0, false).width; myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); app.endUndoGroup(); }; //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //myPal.avatars = []; /* myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { return; } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } */ //set initial visibility options //myPal.grp.opt.timeSelected.value = true; //myPal.grp.tunein.enabled = myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options //myPal.grp.opt.timeSelected.onClick = function(){ myPal.grp.time.enabled = this.value; } //myPal.grp.opt.daySelected.onClick = function(){ myPal.grp.tunein.enabled = this.value; } myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; } myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = function () { var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.updateTime( value ); //alert(value); } myPal.grp.tunein.day.dayOption.onChange = function () { var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.updateDay( value ); } myPal.getOrdinal = function( n) { var ordinal = "wtf"; if (( n >= 4) && ( n <= 20) ) { ordinal = "th"; } else { var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } else if( last_digit == "4"){ ordinal = "th"; } } return ordinal; } myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = function () { var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var value = short_day + " " + String(myPal.grp.tuneindate.day.monthOption.selection)+ " " + String(myPal.grp.tuneindate.day.dateOption.selection)+ myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); myPal.updateDay( value ); myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.onDeactivate = function() { $.writeln("active"); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From ec3985b80b532aa2f5efc436327e1c45613fbb30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Wed, 8 Mar 2017 17:20:46 -0800 Subject: [PATCH 14/24] Finished the Horizontal EP Toolkit, still some cleaning up to do, but it's fully functional now --- jsx/MKN_DC_Customizer.jsx | 1 - jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 jsx/MKN_DC_Customizer.jsx diff --git a/jsx/MKN_DC_Customizer.jsx b/jsx/MKN_DC_Customizer.jsx deleted file mode 100644 index 3dbdc3b..0000000 --- a/jsx/MKN_DC_Customizer.jsx +++ /dev/null @@ -1 +0,0 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file diff --git a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx index 259b210..aa08dbe 100644 --- a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx +++ b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'STARTS',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateTime = function( s ){ app.beginUndoGroup("updateTime"); myPal.time_layer.sourceText.setValue( s ); time_width = myPal.time_layer.sourceRectAtTime(0, false).width; day_width = myPal.day_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); app.endUndoGroup(); }; myPal.updateDay = function( s ){ app.beginUndoGroup("updateDay"); myPal.day_layer.sourceText.setValue( s ); time_width = myPal.time_layer.sourceRectAtTime(0, false).width; day_width = myPal.day_layer.sourceRectAtTime(0, false).width; myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); app.endUndoGroup(); }; //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //myPal.avatars = []; /* myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { return; } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } */ //set initial visibility options //myPal.grp.opt.timeSelected.value = true; //myPal.grp.tunein.enabled = myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options //myPal.grp.opt.timeSelected.onClick = function(){ myPal.grp.time.enabled = this.value; } //myPal.grp.opt.daySelected.onClick = function(){ myPal.grp.tunein.enabled = this.value; } myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; } myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = function () { var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.updateTime( value ); //alert(value); } myPal.grp.tunein.day.dayOption.onChange = function () { var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.updateDay( value ); } myPal.getOrdinal = function( n) { var ordinal = "wtf"; if (( n >= 4) && ( n <= 20) ) { ordinal = "th"; } else { var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } else if( last_digit == "4"){ ordinal = "th"; } } return ordinal; } myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = function () { var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var value = short_day + " " + String(myPal.grp.tuneindate.day.monthOption.selection)+ " " + String(myPal.grp.tuneindate.day.dateOption.selection)+ myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); myPal.updateDay( value ); myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.onDeactivate = function() { $.writeln("active"); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange =myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From 5267b9df2d079fc549a877ad04c833bf8cdbf24e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Wed, 8 Mar 2017 18:47:33 -0800 Subject: [PATCH 15/24] Added options to show Social calls on the Ears Bubble, still some cleaning up to do, but DONE --- jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx index aa08dbe..1f2b2ed 100644 --- a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx +++ b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange =myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From efbde93c63d7b24bdc8435e591b58d2bf3cf8860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 9 Mar 2017 17:49:56 -0800 Subject: [PATCH 16/24] Broke the changeable things into categories, so they take less vertical space, and are more easily readeble. --- jsx/MKN_DC_BUMPER_ToolkitScript.jsx | 507 +++++++++++++++++++++++++++- 1 file changed, 506 insertions(+), 1 deletion(-) diff --git a/jsx/MKN_DC_BUMPER_ToolkitScript.jsx b/jsx/MKN_DC_BUMPER_ToolkitScript.jsx index 1777022..5123cd7 100755 --- a/jsx/MKN_DC_BUMPER_ToolkitScript.jsx +++ b/jsx/MKN_DC_BUMPER_ToolkitScript.jsx @@ -1 +1,506 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE Disney Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney Customizer "; var tcd_version = "0.1"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['left','center']}, \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['left','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.title.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.title.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.title.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.title.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.title.paletteOption.selection = 0; myPal.grp.match.title.paletteOption.minimumSize.width = myPal.grp.match.title.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.title.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.title.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.title.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index ] ); } catch(err) { return; } //applyAvatar( myPal.avatars[myPal.grp.match.title.avatarOption.selection.index] ); } myPal.onDeactivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.title.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.cyan }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ +///////////////////////////////////////////////////////////////////////// +// +// MAkinE - Disney GEN BUMP Toolkit +// +// ©2017 Jorge Vasquez +// Author: Jorge Vasquez +// +// Version History +// +//////////////////////////////////////////////////////////////////////// + +var tcd_scriptName = "MAkinE - DC GEN BUMP Toolkit "; +var tcd_version = "0.8"; +// +/////////////////////////////Array.indexOf for older JS///////////////////// +//////////////////////////////////////////////////////////////////////// +// Production steps of ECMA-262, Edition 5, 15.4.4.14 +// Reference: http://es5.github.io/#x15.4.4.14 +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(searchElement, fromIndex) { + + var k; + + // 1. Let o be the result of calling ToObject passing + // the this value as the argument. + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let lenValue be the result of calling the Get + // internal method of o with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = o.length >>> 0; + + // 4. If len is 0, return -1. + if (len === 0) { + return -1; + } + + // 5. If argument fromIndex was passed let n be + // ToInteger(fromIndex); else let n be 0. + var n = fromIndex | 0; + + // 6. If n >= len, return -1. + if (n >= len) { + return -1; + } + + // 7. If n >= 0, then Let k be n. + // 8. Else, n<0, Let k be len - abs(n). + // If k is less than 0, then let k be 0. + k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + + // 9. Repeat, while k < len + while (k < len) { + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the + // HasProperty internal method of o with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + // i. Let elementK be the result of calling the Get + // internal method of o with the argument ToString(k). + // ii. Let same be the result of applying the + // Strict Equality Comparison Algorithm to + // searchElement and elementK. + // iii. If same is true, return k. + if (k in o && o[k] === searchElement) { + return k; + } + k++; + } + return -1; + }; +} + + + + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +function applyAvatar( item ){ + //$.writeln( item ); + var comp = myPalette.comp; + //$.writeln(comp); + var avatar_targets = [ + comp.layer("Main_Avatar"), + comp.layer("Avatar_Echo_1"), + comp.layer("Avatar_Echo_2") + ]; + //$.writeln(avatar_targets); + + for ( var i = 0 ; i < avatar_targets.length ; i ++ ) + { + avatar_targets[i].replaceSource(item,false); + } +} +function applyPallette( palette_string ){ + var comp = myPalette.comp; + + var color_targets = { + col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), + col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), + col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), + col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), + col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), + col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), + col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), + }; + + for ( var i in color_targets ){ + color_targets[i].setValue(hexToColor(palettes[palette_string][i])); + } +} +function getItem( item_name, item_type ){ + var result = null; + var items = app.project.items; + var names = []; + + for ( i = 1 ; i <= items.length ; i ++ ) + { + var item = items[i]; + var type = item.typeName; + if ( ( type == item_type ) && ( item.name == item_name ) ) + { + result = item; + //$.writeln( item.name ); + } + } + return result; +} +function getFolder( given_name ){ + + result = getItem( given_name, "Folder" ); + + return result; +} +function getComp( given_name ){ + + result = getItem( given_name, "Composition" ); + + return result; +} + +function hexToColor(theHex){ + var r = theHex >> 16; + var g = (theHex & 0x00ff00) >> 8; + var b = theHex & 0xff; + return [r/255,g/255,b/255,1]; +} +function tcd_buildUI(thisObj) { + + if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) + { + alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); + return; + } + + if (thisObj instanceof Panel) { + var myPal = thisObj; + } else { + var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); + } + + if (myPal != null) { + + var res = + "group { \ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + match: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + palette: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ + paletteOption: DropDownList {alignment: ['fill','center']}, \ + } \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ + titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ + } \ + avatar: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + } \ + } \ + doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ + }"; + //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ + + myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); + myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); + + myPal.paletteOptionNames = { + Gray : "D", + Gold : "F", + Magenta : "G", + Blue_1 : "C", + Blue_2 : "E", + Blue_3 : "H" + }; + + myPal.populateAvatars = function() + { + myPal.grp.match.avatar.avatarOption.removeAll(); + myPal.avatars = []; + + if ( myPal.avatar_folder != null ) + { + for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) + { + myPal.avatars.push( myPal.avatar_folder.item(i) ); + //$.writeln(myPal.avatars[i-1]); + myPal.grp.match.avatar.avatarOption.add("item", myPal.avatars[i-1].name); + //$.writeln( myPal.avatar_folder.item(i).name ); + } + } + myPal.grp.match.avatar.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); + } + + myPal.grp = myPal.add(res); + + for ( i in myPal.paletteOptionNames ) { + myPal.grp.match.palette.paletteOption.add("item",i); + } + + //myPal.avatars = []; + + myPal.populateAvatars (); + + myPal.grp.match.palette.paletteOption.selection = 0; + myPal.grp.match.palette.paletteOption.minimumSize.width = myPal.grp.match.palette.paletteOption.preferredSize.width = 75; + + myPal.grp.match.title.titleString.onChange = function () { + //alert("changing text"); + if( myPal.comp == null ) + { + return; + } + app.beginUndoGroup("Change Text"); + var title = myPalette.grp.match.title.titleString.text; + applyShowTitle( title ); + app.endUndoGroup(); + } + myPal.grp.match.palette.paletteOption.onChange = function () { + //alert("changing palette"); + if( myPal.comp == null ) + { + return; + } + app.beginUndoGroup("Change Palette"); + var id = myPal.paletteOptionNames[myPalette.grp.match.palette.paletteOption.selection]; + setBG( id ); + applyPallette( id ); + app.endUndoGroup(); + } + myPal.grp.match.avatar.avatarOption.onChange = function () { + try + { + applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index ] ); + } + catch(err) + { + return; + } + //applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index] ); + } + myPal.onDeactivate = function() + { + myPal.populateAvatars (); + } + /* + myPal.grp.match.avatar.avatarOption.onActivate = function () { + myPal.populateAvatars (); + } + */ + /* + //myPal.grp.doItBtn.onClick = function () + */ + myPal.grp.doItBtn.onClick = function () { + var new_comp = myPal.comp.duplicate(); + new_comp.name = myPal.comp.name.replace("##Base##",generateName()); + } + myPal.layout.layout(true); + myPal.layout.resize(); + myPal.onResizing = myPal.onResize = function () {this.layout.resize();} + + } //if (myPal != null) + return myPal; + } +function titleCase(str) { + str = str.toLowerCase().split(' '); + + for(var i = 0; i < str.length; i++){ + str[i] = str[i].split(''); + str[i][0] = str[i][0].toUpperCase(); + str[i] = str[i].join(''); + } + return str.join(' '); +} + +function getTitle(){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var title = title_layer.sourceText.value.text; + + return title + } + +function formatTitle( s ) +{ + title = titleCase( s ); + var exp = new RegExp(" " , 'g'); + title = title.replace(" ",""); + title = title.replace(exp, ''); + + return title; + } +function generateName(){ + var name = getTitle(); + name = formatTitle ( name ) + "_" + genColorCode (); + return name +} +function genColorCode() +{ + var id = String(myPalette.grp.match.palette.paletteOption.selection); + cc = ""; + /* + * + switch ( id ) + { + case "Blue_1": + cc = "BLU1"; + break; + case "Blue_2": + cc = "BLU2"; + break; + case "Blue_3": + cc = "BLU3"; + break; + case "Gray": + cc = "GRY"; + break; + case "Magenta": + cc = "MGN"; + break; + case "Gold": + cc = "GLD" + break; + } + */ + if ( id.search("Blu") == -1 ){ + cc = id.substr(0,3); + } + else + { + cc = id.substr(0,3) + id[5]; + } + return cc; +} +function applyShowTitle( new_title ){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var ctrl_layer = comp.layer("ctrl_bubble"); + title_layer.sourceText.setValue( new_title ); + + width = title_layer.sourceRectAtTime(0, false).width; + var new_scale; + var new_center; + + if ( width >= 1300 ) + { + new_scale = (1500/width)*100; + new_center = [787,540]; + } + else if ( width > 640 ) + { + new_scale = 100; + new_center = [960,540]; + } + else + { + new_scale = 100; + new_center = [1040,540]; + + } + + comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); + comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); + ctrl_layer("Effects")("width")("Slider").setValue(width + 75); +} +function setBG ( id ){ + new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; + a = myPalette.comp.layer("BG"); + a.replaceSource(new_source,false) +} +var paletteOptions = ["C","D","E","F","G","H"]; + +var colors = { + gray : 0x2C313B, + purple : 0x7c36e1, + purple_dark : 0x5525ab, + yellow : 0xfffa38, + yellow_dark : 0xBBB900, + magenta : 0xE74DB7, + magenta_dark : 0xA93886, + cyan : 0x1BF0FF, + cyan_darl : 0x128DA6, + aqua_dark : 0x238573, + aqua : 0x288492, + aqua_light : 0x3ED8BB, + bluish_gray : 0x2A3B52 +} + +var palettes = { + A : { + col_title: colors.magenta, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: 0x19EDFF + }, + C : { + col_title: colors.magenta, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: colors.purple + }, + D : { + col_title: colors.bluish_gray, + col_bubble: colors.aqua_light, + col_bubble_shadow: colors.aqua_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: colors.purple + }, + E : { + col_title: colors.aqua, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.gray, + col_logo_accent: colors.magenta + }, + F : { + col_title: colors.cyan, + col_bubble: colors.magenta, + col_bubble_shadow: colors.magenta_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.cyan, + col_logo_neutral: colors.gray, + col_logo_accent: colors.magenta + }, + G : { + col_title: colors.yellow, + col_bubble: colors.purple, + col_bubble_shadow: colors.purple_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.cyan, + col_logo_accent: colors.gray + }, + H: { + col_title: colors.purple, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.gray, + col_logo_accent: 0xE74DB7 + } +} + +//main + +var myPalette = tcd_buildUI(this); +var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; + +if (parseFloat(app.version) < 8) { + alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); + } else { + if (myPalette != null && myPalette instanceof Window) { + //myPalette.center(); + myPalette.show(); + } +} +} From ba304e12186ccd466e6c9e774e5ca49f72cb87d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 9 Mar 2017 17:52:30 -0800 Subject: [PATCH 17/24] Standarized the names of the scripts to DC specs. --- jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx | 506 ++++++++++++++++++ jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx | 1 + jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx | 1 + 3 files changed, 508 insertions(+) create mode 100755 jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx create mode 100644 jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx create mode 100644 jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx diff --git a/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx b/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx new file mode 100755 index 0000000..5123cd7 --- /dev/null +++ b/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx @@ -0,0 +1,506 @@ +{ +///////////////////////////////////////////////////////////////////////// +// +// MAkinE - Disney GEN BUMP Toolkit +// +// ©2017 Jorge Vasquez +// Author: Jorge Vasquez +// +// Version History +// +//////////////////////////////////////////////////////////////////////// + +var tcd_scriptName = "MAkinE - DC GEN BUMP Toolkit "; +var tcd_version = "0.8"; +// +/////////////////////////////Array.indexOf for older JS///////////////////// +//////////////////////////////////////////////////////////////////////// +// Production steps of ECMA-262, Edition 5, 15.4.4.14 +// Reference: http://es5.github.io/#x15.4.4.14 +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(searchElement, fromIndex) { + + var k; + + // 1. Let o be the result of calling ToObject passing + // the this value as the argument. + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let lenValue be the result of calling the Get + // internal method of o with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = o.length >>> 0; + + // 4. If len is 0, return -1. + if (len === 0) { + return -1; + } + + // 5. If argument fromIndex was passed let n be + // ToInteger(fromIndex); else let n be 0. + var n = fromIndex | 0; + + // 6. If n >= len, return -1. + if (n >= len) { + return -1; + } + + // 7. If n >= 0, then Let k be n. + // 8. Else, n<0, Let k be len - abs(n). + // If k is less than 0, then let k be 0. + k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + + // 9. Repeat, while k < len + while (k < len) { + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the + // HasProperty internal method of o with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + // i. Let elementK be the result of calling the Get + // internal method of o with the argument ToString(k). + // ii. Let same be the result of applying the + // Strict Equality Comparison Algorithm to + // searchElement and elementK. + // iii. If same is true, return k. + if (k in o && o[k] === searchElement) { + return k; + } + k++; + } + return -1; + }; +} + + + + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +function applyAvatar( item ){ + //$.writeln( item ); + var comp = myPalette.comp; + //$.writeln(comp); + var avatar_targets = [ + comp.layer("Main_Avatar"), + comp.layer("Avatar_Echo_1"), + comp.layer("Avatar_Echo_2") + ]; + //$.writeln(avatar_targets); + + for ( var i = 0 ; i < avatar_targets.length ; i ++ ) + { + avatar_targets[i].replaceSource(item,false); + } +} +function applyPallette( palette_string ){ + var comp = myPalette.comp; + + var color_targets = { + col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), + col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), + col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), + col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), + col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), + col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), + col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), + }; + + for ( var i in color_targets ){ + color_targets[i].setValue(hexToColor(palettes[palette_string][i])); + } +} +function getItem( item_name, item_type ){ + var result = null; + var items = app.project.items; + var names = []; + + for ( i = 1 ; i <= items.length ; i ++ ) + { + var item = items[i]; + var type = item.typeName; + if ( ( type == item_type ) && ( item.name == item_name ) ) + { + result = item; + //$.writeln( item.name ); + } + } + return result; +} +function getFolder( given_name ){ + + result = getItem( given_name, "Folder" ); + + return result; +} +function getComp( given_name ){ + + result = getItem( given_name, "Composition" ); + + return result; +} + +function hexToColor(theHex){ + var r = theHex >> 16; + var g = (theHex & 0x00ff00) >> 8; + var b = theHex & 0xff; + return [r/255,g/255,b/255,1]; +} +function tcd_buildUI(thisObj) { + + if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) + { + alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); + return; + } + + if (thisObj instanceof Panel) { + var myPal = thisObj; + } else { + var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); + } + + if (myPal != null) { + + var res = + "group { \ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + match: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + palette: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ + paletteOption: DropDownList {alignment: ['fill','center']}, \ + } \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ + titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ + } \ + avatar: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + } \ + } \ + doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ + }"; + //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ + + myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); + myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); + + myPal.paletteOptionNames = { + Gray : "D", + Gold : "F", + Magenta : "G", + Blue_1 : "C", + Blue_2 : "E", + Blue_3 : "H" + }; + + myPal.populateAvatars = function() + { + myPal.grp.match.avatar.avatarOption.removeAll(); + myPal.avatars = []; + + if ( myPal.avatar_folder != null ) + { + for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) + { + myPal.avatars.push( myPal.avatar_folder.item(i) ); + //$.writeln(myPal.avatars[i-1]); + myPal.grp.match.avatar.avatarOption.add("item", myPal.avatars[i-1].name); + //$.writeln( myPal.avatar_folder.item(i).name ); + } + } + myPal.grp.match.avatar.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); + } + + myPal.grp = myPal.add(res); + + for ( i in myPal.paletteOptionNames ) { + myPal.grp.match.palette.paletteOption.add("item",i); + } + + //myPal.avatars = []; + + myPal.populateAvatars (); + + myPal.grp.match.palette.paletteOption.selection = 0; + myPal.grp.match.palette.paletteOption.minimumSize.width = myPal.grp.match.palette.paletteOption.preferredSize.width = 75; + + myPal.grp.match.title.titleString.onChange = function () { + //alert("changing text"); + if( myPal.comp == null ) + { + return; + } + app.beginUndoGroup("Change Text"); + var title = myPalette.grp.match.title.titleString.text; + applyShowTitle( title ); + app.endUndoGroup(); + } + myPal.grp.match.palette.paletteOption.onChange = function () { + //alert("changing palette"); + if( myPal.comp == null ) + { + return; + } + app.beginUndoGroup("Change Palette"); + var id = myPal.paletteOptionNames[myPalette.grp.match.palette.paletteOption.selection]; + setBG( id ); + applyPallette( id ); + app.endUndoGroup(); + } + myPal.grp.match.avatar.avatarOption.onChange = function () { + try + { + applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index ] ); + } + catch(err) + { + return; + } + //applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index] ); + } + myPal.onDeactivate = function() + { + myPal.populateAvatars (); + } + /* + myPal.grp.match.avatar.avatarOption.onActivate = function () { + myPal.populateAvatars (); + } + */ + /* + //myPal.grp.doItBtn.onClick = function () + */ + myPal.grp.doItBtn.onClick = function () { + var new_comp = myPal.comp.duplicate(); + new_comp.name = myPal.comp.name.replace("##Base##",generateName()); + } + myPal.layout.layout(true); + myPal.layout.resize(); + myPal.onResizing = myPal.onResize = function () {this.layout.resize();} + + } //if (myPal != null) + return myPal; + } +function titleCase(str) { + str = str.toLowerCase().split(' '); + + for(var i = 0; i < str.length; i++){ + str[i] = str[i].split(''); + str[i][0] = str[i][0].toUpperCase(); + str[i] = str[i].join(''); + } + return str.join(' '); +} + +function getTitle(){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var title = title_layer.sourceText.value.text; + + return title + } + +function formatTitle( s ) +{ + title = titleCase( s ); + var exp = new RegExp(" " , 'g'); + title = title.replace(" ",""); + title = title.replace(exp, ''); + + return title; + } +function generateName(){ + var name = getTitle(); + name = formatTitle ( name ) + "_" + genColorCode (); + return name +} +function genColorCode() +{ + var id = String(myPalette.grp.match.palette.paletteOption.selection); + cc = ""; + /* + * + switch ( id ) + { + case "Blue_1": + cc = "BLU1"; + break; + case "Blue_2": + cc = "BLU2"; + break; + case "Blue_3": + cc = "BLU3"; + break; + case "Gray": + cc = "GRY"; + break; + case "Magenta": + cc = "MGN"; + break; + case "Gold": + cc = "GLD" + break; + } + */ + if ( id.search("Blu") == -1 ){ + cc = id.substr(0,3); + } + else + { + cc = id.substr(0,3) + id[5]; + } + return cc; +} +function applyShowTitle( new_title ){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var ctrl_layer = comp.layer("ctrl_bubble"); + title_layer.sourceText.setValue( new_title ); + + width = title_layer.sourceRectAtTime(0, false).width; + var new_scale; + var new_center; + + if ( width >= 1300 ) + { + new_scale = (1500/width)*100; + new_center = [787,540]; + } + else if ( width > 640 ) + { + new_scale = 100; + new_center = [960,540]; + } + else + { + new_scale = 100; + new_center = [1040,540]; + + } + + comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); + comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); + ctrl_layer("Effects")("width")("Slider").setValue(width + 75); +} +function setBG ( id ){ + new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; + a = myPalette.comp.layer("BG"); + a.replaceSource(new_source,false) +} +var paletteOptions = ["C","D","E","F","G","H"]; + +var colors = { + gray : 0x2C313B, + purple : 0x7c36e1, + purple_dark : 0x5525ab, + yellow : 0xfffa38, + yellow_dark : 0xBBB900, + magenta : 0xE74DB7, + magenta_dark : 0xA93886, + cyan : 0x1BF0FF, + cyan_darl : 0x128DA6, + aqua_dark : 0x238573, + aqua : 0x288492, + aqua_light : 0x3ED8BB, + bluish_gray : 0x2A3B52 +} + +var palettes = { + A : { + col_title: colors.magenta, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: 0x19EDFF + }, + C : { + col_title: colors.magenta, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: colors.purple + }, + D : { + col_title: colors.bluish_gray, + col_bubble: colors.aqua_light, + col_bubble_shadow: colors.aqua_dark, + col_logo_bg : colors.yellow, + col_logo_fg: colors.magenta, + col_logo_neutral: colors.gray, + col_logo_accent: colors.purple + }, + E : { + col_title: colors.aqua, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.gray, + col_logo_accent: colors.magenta + }, + F : { + col_title: colors.cyan, + col_bubble: colors.magenta, + col_bubble_shadow: colors.magenta_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.cyan, + col_logo_neutral: colors.gray, + col_logo_accent: colors.magenta + }, + G : { + col_title: colors.yellow, + col_bubble: colors.purple, + col_bubble_shadow: colors.purple_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.cyan, + col_logo_accent: colors.gray + }, + H: { + col_title: colors.purple, + col_bubble: colors.yellow, + col_bubble_shadow: colors.yellow_dark, + col_logo_bg : colors.purple, + col_logo_fg: colors.yellow, + col_logo_neutral: colors.gray, + col_logo_accent: 0xE74DB7 + } +} + +//main + +var myPalette = tcd_buildUI(this); +var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; + +if (parseFloat(app.version) < 8) { + alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); + } else { + if (myPalette != null && myPalette instanceof Window) { + //myPalette.center(); + myPalette.show(); + } +} +} diff --git a/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx new file mode 100644 index 0000000..2b32f9e --- /dev/null +++ b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange =myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file diff --git a/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx new file mode 100644 index 0000000..bffd003 --- /dev/null +++ b/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From c03eb0b77dfeb98548392ecfe7337239aa997260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Mon, 13 Mar 2017 14:49:14 -0700 Subject: [PATCH 18/24] Renamed the latest versions, and polished some minor UI interfase details on the Horizontal One --- jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx | 507 +--------------------- jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx | 2 +- jsx/afx_proto_tools.jsx | 1 + 3 files changed, 3 insertions(+), 507 deletions(-) create mode 100644 jsx/afx_proto_tools.jsx diff --git a/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx b/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx index 5123cd7..bb95554 100755 --- a/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx +++ b/jsx/MKN_DC_GEN_BUMP_ToolkitScript.jsx @@ -1,506 +1 @@ -{ -///////////////////////////////////////////////////////////////////////// -// -// MAkinE - Disney GEN BUMP Toolkit -// -// ©2017 Jorge Vasquez -// Author: Jorge Vasquez -// -// Version History -// -//////////////////////////////////////////////////////////////////////// - -var tcd_scriptName = "MAkinE - DC GEN BUMP Toolkit "; -var tcd_version = "0.8"; -// -/////////////////////////////Array.indexOf for older JS///////////////////// -//////////////////////////////////////////////////////////////////////// -// Production steps of ECMA-262, Edition 5, 15.4.4.14 -// Reference: http://es5.github.io/#x15.4.4.14 -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function(searchElement, fromIndex) { - - var k; - - // 1. Let o be the result of calling ToObject passing - // the this value as the argument. - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } - - var o = Object(this); - - // 2. Let lenValue be the result of calling the Get - // internal method of o with the argument "length". - // 3. Let len be ToUint32(lenValue). - var len = o.length >>> 0; - - // 4. If len is 0, return -1. - if (len === 0) { - return -1; - } - - // 5. If argument fromIndex was passed let n be - // ToInteger(fromIndex); else let n be 0. - var n = fromIndex | 0; - - // 6. If n >= len, return -1. - if (n >= len) { - return -1; - } - - // 7. If n >= 0, then Let k be n. - // 8. Else, n<0, Let k be len - abs(n). - // If k is less than 0, then let k be 0. - k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); - - // 9. Repeat, while k < len - while (k < len) { - // a. Let Pk be ToString(k). - // This is implicit for LHS operands of the in operator - // b. Let kPresent be the result of calling the - // HasProperty internal method of o with argument Pk. - // This step can be combined with c - // c. If kPresent is true, then - // i. Let elementK be the result of calling the Get - // internal method of o with the argument ToString(k). - // ii. Let same be the result of applying the - // Strict Equality Comparison Algorithm to - // searchElement and elementK. - // iii. If same is true, return k. - if (k in o && o[k] === searchElement) { - return k; - } - k++; - } - return -1; - }; -} - - - - -//////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -function applyAvatar( item ){ - //$.writeln( item ); - var comp = myPalette.comp; - //$.writeln(comp); - var avatar_targets = [ - comp.layer("Main_Avatar"), - comp.layer("Avatar_Echo_1"), - comp.layer("Avatar_Echo_2") - ]; - //$.writeln(avatar_targets); - - for ( var i = 0 ; i < avatar_targets.length ; i ++ ) - { - avatar_targets[i].replaceSource(item,false); - } -} -function applyPallette( palette_string ){ - var comp = myPalette.comp; - - var color_targets = { - col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), - col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), - col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), - col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), - col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), - col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), - col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), - }; - - for ( var i in color_targets ){ - color_targets[i].setValue(hexToColor(palettes[palette_string][i])); - } -} -function getItem( item_name, item_type ){ - var result = null; - var items = app.project.items; - var names = []; - - for ( i = 1 ; i <= items.length ; i ++ ) - { - var item = items[i]; - var type = item.typeName; - if ( ( type == item_type ) && ( item.name == item_name ) ) - { - result = item; - //$.writeln( item.name ); - } - } - return result; -} -function getFolder( given_name ){ - - result = getItem( given_name, "Folder" ); - - return result; -} -function getComp( given_name ){ - - result = getItem( given_name, "Composition" ); - - return result; -} - -function hexToColor(theHex){ - var r = theHex >> 16; - var g = (theHex & 0x00ff00) >> 8; - var b = theHex & 0xff; - return [r/255,g/255,b/255,1]; -} -function tcd_buildUI(thisObj) { - - if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) - { - alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); - return; - } - - if (thisObj instanceof Panel) { - var myPal = thisObj; - } else { - var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); - } - - if (myPal != null) { - - var res = - "group { \ - alignment: ['fill','fill'], \ - alignChildren: ['left','top'], \ - orientation: 'column', \ - match: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - orientation:'column', \ - palette: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ - paletteOption: DropDownList {alignment: ['fill','center']}, \ - } \ - title: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ - titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ - } \ - avatar: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ - avatarOption: DropDownList {alignment: ['fill','center']}, \ - } \ - } \ - doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ - }"; - //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ - - myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); - myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); - - myPal.paletteOptionNames = { - Gray : "D", - Gold : "F", - Magenta : "G", - Blue_1 : "C", - Blue_2 : "E", - Blue_3 : "H" - }; - - myPal.populateAvatars = function() - { - myPal.grp.match.avatar.avatarOption.removeAll(); - myPal.avatars = []; - - if ( myPal.avatar_folder != null ) - { - for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) - { - myPal.avatars.push( myPal.avatar_folder.item(i) ); - //$.writeln(myPal.avatars[i-1]); - myPal.grp.match.avatar.avatarOption.add("item", myPal.avatars[i-1].name); - //$.writeln( myPal.avatar_folder.item(i).name ); - } - } - myPal.grp.match.avatar.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); - } - - myPal.grp = myPal.add(res); - - for ( i in myPal.paletteOptionNames ) { - myPal.grp.match.palette.paletteOption.add("item",i); - } - - //myPal.avatars = []; - - myPal.populateAvatars (); - - myPal.grp.match.palette.paletteOption.selection = 0; - myPal.grp.match.palette.paletteOption.minimumSize.width = myPal.grp.match.palette.paletteOption.preferredSize.width = 75; - - myPal.grp.match.title.titleString.onChange = function () { - //alert("changing text"); - if( myPal.comp == null ) - { - return; - } - app.beginUndoGroup("Change Text"); - var title = myPalette.grp.match.title.titleString.text; - applyShowTitle( title ); - app.endUndoGroup(); - } - myPal.grp.match.palette.paletteOption.onChange = function () { - //alert("changing palette"); - if( myPal.comp == null ) - { - return; - } - app.beginUndoGroup("Change Palette"); - var id = myPal.paletteOptionNames[myPalette.grp.match.palette.paletteOption.selection]; - setBG( id ); - applyPallette( id ); - app.endUndoGroup(); - } - myPal.grp.match.avatar.avatarOption.onChange = function () { - try - { - applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index ] ); - } - catch(err) - { - return; - } - //applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index] ); - } - myPal.onDeactivate = function() - { - myPal.populateAvatars (); - } - /* - myPal.grp.match.avatar.avatarOption.onActivate = function () { - myPal.populateAvatars (); - } - */ - /* - //myPal.grp.doItBtn.onClick = function () - */ - myPal.grp.doItBtn.onClick = function () { - var new_comp = myPal.comp.duplicate(); - new_comp.name = myPal.comp.name.replace("##Base##",generateName()); - } - myPal.layout.layout(true); - myPal.layout.resize(); - myPal.onResizing = myPal.onResize = function () {this.layout.resize();} - - } //if (myPal != null) - return myPal; - } -function titleCase(str) { - str = str.toLowerCase().split(' '); - - for(var i = 0; i < str.length; i++){ - str[i] = str[i].split(''); - str[i][0] = str[i][0].toUpperCase(); - str[i] = str[i].join(''); - } - return str.join(' '); -} - -function getTitle(){ - var comp = myPalette.comp; - var title_layer = comp.layer("TITLE"); - var title = title_layer.sourceText.value.text; - - return title - } - -function formatTitle( s ) -{ - title = titleCase( s ); - var exp = new RegExp(" " , 'g'); - title = title.replace(" ",""); - title = title.replace(exp, ''); - - return title; - } -function generateName(){ - var name = getTitle(); - name = formatTitle ( name ) + "_" + genColorCode (); - return name -} -function genColorCode() -{ - var id = String(myPalette.grp.match.palette.paletteOption.selection); - cc = ""; - /* - * - switch ( id ) - { - case "Blue_1": - cc = "BLU1"; - break; - case "Blue_2": - cc = "BLU2"; - break; - case "Blue_3": - cc = "BLU3"; - break; - case "Gray": - cc = "GRY"; - break; - case "Magenta": - cc = "MGN"; - break; - case "Gold": - cc = "GLD" - break; - } - */ - if ( id.search("Blu") == -1 ){ - cc = id.substr(0,3); - } - else - { - cc = id.substr(0,3) + id[5]; - } - return cc; -} -function applyShowTitle( new_title ){ - var comp = myPalette.comp; - var title_layer = comp.layer("TITLE"); - var ctrl_layer = comp.layer("ctrl_bubble"); - title_layer.sourceText.setValue( new_title ); - - width = title_layer.sourceRectAtTime(0, false).width; - var new_scale; - var new_center; - - if ( width >= 1300 ) - { - new_scale = (1500/width)*100; - new_center = [787,540]; - } - else if ( width > 640 ) - { - new_scale = 100; - new_center = [960,540]; - } - else - { - new_scale = 100; - new_center = [1040,540]; - - } - - comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); - comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); - ctrl_layer("Effects")("width")("Slider").setValue(width + 75); -} -function setBG ( id ){ - new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; - a = myPalette.comp.layer("BG"); - a.replaceSource(new_source,false) -} -var paletteOptions = ["C","D","E","F","G","H"]; - -var colors = { - gray : 0x2C313B, - purple : 0x7c36e1, - purple_dark : 0x5525ab, - yellow : 0xfffa38, - yellow_dark : 0xBBB900, - magenta : 0xE74DB7, - magenta_dark : 0xA93886, - cyan : 0x1BF0FF, - cyan_darl : 0x128DA6, - aqua_dark : 0x238573, - aqua : 0x288492, - aqua_light : 0x3ED8BB, - bluish_gray : 0x2A3B52 -} - -var palettes = { - A : { - col_title: colors.magenta, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: 0x19EDFF - }, - C : { - col_title: colors.magenta, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: colors.purple - }, - D : { - col_title: colors.bluish_gray, - col_bubble: colors.aqua_light, - col_bubble_shadow: colors.aqua_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: colors.purple - }, - E : { - col_title: colors.aqua, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.gray, - col_logo_accent: colors.magenta - }, - F : { - col_title: colors.cyan, - col_bubble: colors.magenta, - col_bubble_shadow: colors.magenta_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.cyan, - col_logo_neutral: colors.gray, - col_logo_accent: colors.magenta - }, - G : { - col_title: colors.yellow, - col_bubble: colors.purple, - col_bubble_shadow: colors.purple_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.cyan, - col_logo_accent: colors.gray - }, - H: { - col_title: colors.purple, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.gray, - col_logo_accent: 0xE74DB7 - } -} - -//main - -var myPalette = tcd_buildUI(this); -var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; - -if (parseFloat(app.version) < 8) { - alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); - } else { - if (myPalette != null && myPalette instanceof Window) { - //myPalette.center(); - myPalette.show(); - } -} -} +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN BUMP Toolkit // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - DC GEN BUMP Toolkit "; var tcd_version = "0.8"; // /////////////////////////////Array.indexOf for older JS///////////////////// //////////////////////////////////////////////////////////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// function applyAvatar( item ){ //$.writeln( item ); var comp = myPalette.comp; //$.writeln(comp); var avatar_targets = [ comp.layer("Main_Avatar"), comp.layer("Avatar_Echo_1"), comp.layer("Avatar_Echo_2") ]; //$.writeln(avatar_targets); for ( var i = 0 ; i < avatar_targets.length ; i ++ ) { avatar_targets[i].replaceSource(item,false); } } function applyPallette( palette_string ){ var comp = myPalette.comp; var color_targets = { col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), }; for ( var i in color_targets ){ color_targets[i].setValue(hexToColor(palettes[palette_string][i])); } } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function tcd_buildUI(thisObj) { if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) { alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ match: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ palette: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ paletteOption: DropDownList {alignment: ['fill','center']}, \ } \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ } \ avatar: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ avatarOption: DropDownList {alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; myPal.populateAvatars = function() { myPal.grp.match.avatar.avatarOption.removeAll(); myPal.avatars = []; if ( myPal.avatar_folder != null ) { for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) { myPal.avatars.push( myPal.avatar_folder.item(i) ); //$.writeln(myPal.avatars[i-1]); myPal.grp.match.avatar.avatarOption.add("item", myPal.avatars[i-1].name); //$.writeln( myPal.avatar_folder.item(i).name ); } } myPal.grp.match.avatar.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); } myPal.grp = myPal.add(res); for ( i in myPal.paletteOptionNames ) { myPal.grp.match.palette.paletteOption.add("item",i); } //myPal.avatars = []; myPal.populateAvatars (); myPal.grp.match.palette.paletteOption.selection = 0; myPal.grp.match.palette.paletteOption.minimumSize.width = myPal.grp.match.palette.paletteOption.preferredSize.width = 75; myPal.grp.match.title.titleString.onChange = function () { //alert("changing text"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Text"); var title = myPalette.grp.match.title.titleString.text; applyShowTitle( title ); app.endUndoGroup(); } myPal.grp.match.palette.paletteOption.onChange = function () { //alert("changing palette"); if( myPal.comp == null ) { return; } app.beginUndoGroup("Change Palette"); var id = myPal.paletteOptionNames[myPalette.grp.match.palette.paletteOption.selection]; setBG( id ); applyPallette( id ); app.endUndoGroup(); } myPal.grp.match.avatar.avatarOption.onChange = function () { try { applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index ] ); } catch(err) { return; } //applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index] ); } myPal.onActivate = function() { myPal.populateAvatars (); } /* myPal.grp.match.avatar.avatarOption.onActivate = function () { myPal.populateAvatars (); } */ /* //myPal.grp.doItBtn.onClick = function () */ myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ) { title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode() { var id = String(myPalette.grp.match.palette.paletteOption.selection); cc = ""; /* * switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } */ if ( id.search("Blu") == -1 ){ cc = id.substr(0,3); } else { cc = id.substr(0,3) + id[5]; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } function setBG ( id ){ new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; a = myPalette.comp.layer("BG"); a.replaceSource(new_source,false) } var paletteOptions = ["C","D","E","F","G","H"]; var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } var palettes = { A : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: 0x19EDFF }, C : { col_title: colors.magenta, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, D : { col_title: colors.bluish_gray, col_bubble: colors.aqua_light, col_bubble_shadow: colors.aqua_dark, col_logo_bg : colors.yellow, col_logo_fg: colors.magenta, col_logo_neutral: colors.gray, col_logo_accent: colors.purple }, E : { col_title: colors.aqua, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, F : { col_title: colors.cyan, col_bubble: colors.magenta, col_bubble_shadow: colors.magenta_dark, col_logo_bg : colors.purple, col_logo_fg: colors.cyan, col_logo_neutral: colors.gray, col_logo_accent: colors.magenta }, G : { col_title: colors.yellow, col_bubble: colors.purple, col_bubble_shadow: colors.purple_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.cyan, col_logo_accent: colors.gray }, H: { col_title: colors.purple, col_bubble: colors.yellow, col_bubble_shadow: colors.yellow_dark, col_logo_bg : colors.purple, col_logo_fg: colors.yellow, col_logo_neutral: colors.gray, col_logo_accent: 0xE74DB7 } } //main var myPalette = tcd_buildUI(this); var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file diff --git a/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx index bffd003..fff1cee 100644 --- a/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx +++ b/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['left','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = myPal.grp.social.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file diff --git a/jsx/afx_proto_tools.jsx b/jsx/afx_proto_tools.jsx new file mode 100644 index 0000000..7838c0a --- /dev/null +++ b/jsx/afx_proto_tools.jsx @@ -0,0 +1 @@ +debug = {} debug.active = true; debug.log = function( string ) { if ( debug.active ){ $.writeln( string ); writeLn( string ); } return; } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function getSelectedProjectItems (){ var items = []; var p = app.project; for ( var i = 1 ; i <= p.numItems ; i ++ ){ var item = p.item(i); if ( item.selected ){ items.push(item); } } return items; } function duplicateSuffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name+"_"+suffix } return true; } function duplicateReplace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name.replace( string, newString ); } return true; } function suffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name+= "_"+suffix } return true; } function replace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name = item.name.replace( string , newString ); } return true; } var items = getSelectedProjectItems (); var comp = getComp ( "720@60_10s" ); var targetFolder = getFolder( "Render" ); for ( i = 0 ; i < items.length ; i ++ ){ var item = items[i]; var newComp =comp.duplicate(); newComp.parentFolder = targetFolder; newComp.name = item.name; newComp.layer(1).replaceSource( item , true ); } //duplicateSuffix(getSelectedProjectItems (),"txtlss"); //suffix(getSelectedProjectItems (),"txtlss"); //replace(getSelectedProjectItems (),"Medium","Large"); //duplicateReplace(getSelectedProjectItems (),"Large", "Small"); \ No newline at end of file From 67d4ea1dc242ab9784a8ebedf7c04a1bc2ab59bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Tue, 14 Mar 2017 17:36:49 -0700 Subject: [PATCH 19/24] Renamed the EP Horiz, to the proper EP Vert, and finalized changes before sending to client --- jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx | 1 + 1 file changed, 1 insertion(+) create mode 100755 jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx diff --git a/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx new file mode 100755 index 0000000..5ad43ed --- /dev/null +++ b/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx @@ -0,0 +1 @@ +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Vert_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Vert Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['left','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Vert_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a["; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = s.search("a") != -1; myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; /* if( singleton ){ s = s+"a"; } */ myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = myPal.grp.social.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From cfbdb71c07c37cf45001599d9566c78dbe0b3978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Tue, 14 Mar 2017 21:55:01 -0700 Subject: [PATCH 20/24] Created functions to get the width of both titles so we can later center them, and adde options to create a special event, with different type style --- jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx index 2b32f9e..d106ef9 100644 --- a/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx +++ b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx @@ -1 +1 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange =myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// debug = {} debug.active = true; debug.log = function( string ){ if ( debug.active ){ $.writeln( string ); writeLn( string ); } return; } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ isEvent: Checkbox {text:'Event', alignment: ['right','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['right','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['right','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['right','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.title_bubble_layer = myPal.comp.layer("tittle_bubble"); myPal.title_loc_layer = myPal.comp.layer("CTRL_Center_Title"); myPal.tunein_loc_layer = myPal.comp.layer("CTRL_Center_Tunein"); myPal.debug_width = myPal.comp.layer("debug.width"); myPal.debug_width_2 = myPal.comp.layer("debug.width 2"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap"), myPal.comp.layer("disney_logo_extra"), myPal.comp.layer("bubble_disney_logo_extra") ]; myPal.not_extra_layers = [ myPal.comp.layer("disney_logo"), myPal.comp.layer("bubble_disney_logo") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.getLayerWidth = function( textLayerObject ){ var width = textLayerObject.sourceRectAtTime(0, false).width; return width; } myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateTitleBar = function(){ var s = myPal.ctrl_title_layer.transform.scale[0]; s = myPal.ctrl_title_layer.transform.scale.value[0]/100; var new_width = ( (myPal.timeMargin*4) + myPal.getLayerWidth( myPal.title_layer ) )* s; myPal.title_bubble_layer("Effects")("width")("Slider").setValue( new_width ); } myPal.getTuneinWidth = function (){ var time_width = myPal.getLayerWidth( myPal.time_layer ); var day_width = myPal.getLayerWidth( myPal.day_layer ); var disney_logo = 272; var extra_width = myPal.getLayerWidth( myPal.extra_layer ); var connecting_width = 36; var value; if ( !myPal.grp.opt.extraSelected.value ) { value = time_width + day_width + (myPal.timeMargin* 2.25 )+ disney_logo; } else { value = time_width + day_width + (myPal.timeMargin* 2.25 )+ disney_logo + extra_width + (myPal.timeMargin*2.60) + connecting_width; } return value; } myPal.getTitleWidth = function() { var rect_width = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Size").value[0]; var rect_roundness = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Roundness").value; var value = rect_width - rect_roundness; return value; } myPal.updateBars = function(){ var time_width = myPal.getLayerWidth( myPal.time_layer ); var day_width = myPal.getLayerWidth( myPal.day_layer ); var extra_width = myPal.getLayerWidth( myPal.extra_layer ); var title_width = myPal.getLayerWidth( myPal.title_layer ); myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); myPal.debug_width("Effects")("width")("Slider").setValue( myPal.getTuneinWidth() ); myPal.debug_width_2("Effects")("width")("Slider").setValue( myPal.getTitleWidth() ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + ", " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitles = function() { myPal.positionTitle(); myPal.positionTuneIn(); } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.not_extra_layers.length ; i ++ ) { myPal.not_extra_layers[i].enabled = !myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTitleBar(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateTitles(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); /* var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"a"; } */ myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.positionTitle = function(){ var width = myPal.getLayerWidth( myPal.title_layer ); var new_scale; var x_max = 1600 ; if ( width >= x_max ) { new_scale = x_max / width * 100 ; } else { new_scale = 100; } var old_pos = myPal.title_loc_layer.transform.position.value; var center = (width/2) * (new_scale/100); var new_pos = [ ((myPal.comp.width)/2) - center - 30 ,old_pos[1]]; app.beginUndoGroup(this); myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); myPal.title_loc_layer.transform.position.setValue( new_pos ); app.endUndoGroup(); } myPal.positionTuneIn = function(){ var width = myPal.getTuneinWidth(); var old_pos = [960,861]; var center = (-width/2); var new_pos = [ ((myPal.comp.width)/2) - center ,old_pos[1]]; app.beginUndoGroup(this); myPal.tunein_loc_layer.transform.position.setValue( new_pos ); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); //debug.log(myPal.title_layer); myPal.title_layer.sourceText.setValue( s ); //myPal.positionTitle(); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.title.title.isEvent.value = myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; //myPal.comp.layer("") myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ //writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } myPal.grp.title.title.isEvent.onClick = function(){ var isEvent = myPal.grp.title.title.isEvent.value; var value; if ( isEvent ){ value = "Event title"; } else { value = "Show title"; } myPal.title_layer("Text")("Animators")("event").enabled = myPal.title_layer("Text")("Animators")("event_2").enabled = myPal.title_layer("Text")("Animators")("event_3").enabled = myPal.title_layer("Text")("Animators")("event_4").enabled = isEvent; var s = "Do Not Touch"; for (var i = 0 ; i < 5 ; i++ ){ myPal.title_layer("Effects")(s).enabled = isEvent; s+="-"; } myPal.title_layer("Effects")("---------------").enabled = isEvent; myPal.layout.resize(); myPal.updateAll(); myPal.grp.title.title.titleText.text = value; } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file From ce5fa453437e2acf06c2ec8e062aeea0fee65fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 16 Mar 2017 11:35:59 -0700 Subject: [PATCH 21/24] Finished implementing the last requests: no ordinal number on dates, commas between Months and days only, added the 0 avatar option, and finished bringing the avatar functionality, still some bugs to go, but it left for Disney already. --- jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx | 1180 ++++++++++++++++- 1 file changed, 1179 insertions(+), 1 deletion(-) diff --git a/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx index d106ef9..5d4df11 100644 --- a/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx +++ b/jsx/MKN_DC_GEN_EP_FullFrame_ToolkitScript.jsx @@ -1 +1,1179 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// debug = {} debug.active = true; debug.log = function( string ){ if ( debug.active ){ $.writeln( string ); writeLn( string ); } return; } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ isEvent: Checkbox {text:'Event', alignment: ['right','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['right','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['right','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['right','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.title_bubble_layer = myPal.comp.layer("tittle_bubble"); myPal.title_loc_layer = myPal.comp.layer("CTRL_Center_Title"); myPal.tunein_loc_layer = myPal.comp.layer("CTRL_Center_Tunein"); myPal.debug_width = myPal.comp.layer("debug.width"); myPal.debug_width_2 = myPal.comp.layer("debug.width 2"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap"), myPal.comp.layer("disney_logo_extra"), myPal.comp.layer("bubble_disney_logo_extra") ]; myPal.not_extra_layers = [ myPal.comp.layer("disney_logo"), myPal.comp.layer("bubble_disney_logo") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.getLayerWidth = function( textLayerObject ){ var width = textLayerObject.sourceRectAtTime(0, false).width; return width; } myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateTitleBar = function(){ var s = myPal.ctrl_title_layer.transform.scale[0]; s = myPal.ctrl_title_layer.transform.scale.value[0]/100; var new_width = ( (myPal.timeMargin*4) + myPal.getLayerWidth( myPal.title_layer ) )* s; myPal.title_bubble_layer("Effects")("width")("Slider").setValue( new_width ); } myPal.getTuneinWidth = function (){ var time_width = myPal.getLayerWidth( myPal.time_layer ); var day_width = myPal.getLayerWidth( myPal.day_layer ); var disney_logo = 272; var extra_width = myPal.getLayerWidth( myPal.extra_layer ); var connecting_width = 36; var value; if ( !myPal.grp.opt.extraSelected.value ) { value = time_width + day_width + (myPal.timeMargin* 2.25 )+ disney_logo; } else { value = time_width + day_width + (myPal.timeMargin* 2.25 )+ disney_logo + extra_width + (myPal.timeMargin*2.60) + connecting_width; } return value; } myPal.getTitleWidth = function() { var rect_width = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Size").value[0]; var rect_roundness = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Roundness").value; var value = rect_width - rect_roundness; return value; } myPal.updateBars = function(){ var time_width = myPal.getLayerWidth( myPal.time_layer ); var day_width = myPal.getLayerWidth( myPal.day_layer ); var extra_width = myPal.getLayerWidth( myPal.extra_layer ); var title_width = myPal.getLayerWidth( myPal.title_layer ); myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); myPal.debug_width("Effects")("width")("Slider").setValue( myPal.getTuneinWidth() ); myPal.debug_width_2("Effects")("width")("Slider").setValue( myPal.getTitleWidth() ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + ", " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitles = function() { myPal.positionTitle(); myPal.positionTuneIn(); } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.not_extra_layers.length ; i ++ ) { myPal.not_extra_layers[i].enabled = !myPal.grp.opt.extraSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTitleBar(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateText(); myPal.updateBars(); myPal.updateTitles(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); /* var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"a"; } */ myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.positionTitle = function(){ var width = myPal.getLayerWidth( myPal.title_layer ); var new_scale; var x_max = 1600 ; if ( width >= x_max ) { new_scale = x_max / width * 100 ; } else { new_scale = 100; } var old_pos = myPal.title_loc_layer.transform.position.value; var center = (width/2) * (new_scale/100); var new_pos = [ ((myPal.comp.width)/2) - center - 30 ,old_pos[1]]; app.beginUndoGroup(this); myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); myPal.title_loc_layer.transform.position.setValue( new_pos ); app.endUndoGroup(); } myPal.positionTuneIn = function(){ var width = myPal.getTuneinWidth(); var old_pos = [960,861]; var center = (-width/2); var new_pos = [ ((myPal.comp.width)/2) - center ,old_pos[1]]; app.beginUndoGroup(this); myPal.tunein_loc_layer.transform.position.setValue( new_pos ); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); //debug.log(myPal.title_layer); myPal.title_layer.sourceText.setValue( s ); //myPal.positionTitle(); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.title.title.isEvent.value = myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; //myPal.comp.layer("") myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ //writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } myPal.grp.title.title.isEvent.onClick = function(){ var isEvent = myPal.grp.title.title.isEvent.value; var value; if ( isEvent ){ value = "Event title"; } else { value = "Show title"; } myPal.title_layer("Text")("Animators")("event").enabled = myPal.title_layer("Text")("Animators")("event_2").enabled = myPal.title_layer("Text")("Animators")("event_3").enabled = myPal.title_layer("Text")("Animators")("event_4").enabled = isEvent; var s = "Do Not Touch"; for (var i = 0 ; i < 5 ; i++ ){ myPal.title_layer("Effects")(s).enabled = isEvent; s+="-"; } myPal.title_layer("Effects")("---------------").enabled = isEvent; myPal.layout.resize(); myPal.updateAll(); myPal.grp.title.title.titleText.text = value; } //Assign Methods to UI //Update on every UI change/click myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ +///////////////////////////////////////////////////////////////////////// +// +// MAkinE - Disney GEN EP Customizer +// +// ©2017 Jorge Vasquez +// Author: Jorge Vasquez +// +// Version History +// +//////////////////////////////////////////////////////////////////////// + +var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; +var tcd_version = "0.1"; + +/////////////////////////////Array.indexOf for older JS///////////////////// +// Production steps of ECMA-262, Edition 5, 15.4.4.14 +// Reference: http://es5.github.io/#x15.4.4.14 +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(searchElement, fromIndex) { + + var k; + + // 1. Let o be the result of calling ToObject passing + // the this value as the argument. + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let lenValue be the result of calling the Get + // internal method of o with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = o.length >>> 0; + + // 4. If len is 0, return -1. + if (len === 0) { + return -1; + } + + // 5. If argument fromIndex was passed let n be + // ToInteger(fromIndex); else let n be 0. + var n = fromIndex | 0; + + // 6. If n >= len, return -1. + if (n >= len) { + return -1; + } + + // 7. If n >= 0, then Let k be n. + // 8. Else, n<0, Let k be len - abs(n). + // If k is less than 0, then let k be 0. + k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + + // 9. Repeat, while k < len + while (k < len) { + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the + // HasProperty internal method of o with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + // i. Let elementK be the result of calling the Get + // internal method of o with the argument ToString(k). + // ii. Let same be the result of applying the + // Strict Equality Comparison Algorithm to + // searchElement and elementK. + // iii. If same is true, return k. + if (k in o && o[k] === searchElement) { + return k; + } + k++; + } + return -1; + }; +} +//////////////////////////////////////////////////////////////////////// +debug = {} +debug.active = true; +debug.updateN = 0; +debug.log = function( string ){ + if ( debug.active ){ + //$.writeln( string ); + writeLn( string ); + debug.updateN += 1; + } + return; +} +function getItem( item_name, item_type ){ + var result = null; + var items = app.project.items; + var names = []; + + for ( i = 1 ; i <= items.length ; i ++ ) + { + var item = items[i]; + var type = item.typeName; + if ( ( type == item_type ) && ( item.name == item_name ) ) + { + result = item; + //$.writeln( item.name ); + } + } + return result; +} +function getItemByName( item_name ){ + var result = null; + var items = app.project.items; + + for ( i = 1 ; i <= items.length ; i ++ ) + { + var item = items[i]; + if ( ( item.name == item_name ) ) + { + result = item; + //$.writeln( item.name ); + } + } + return result; +} +function getFolder( given_name ){ + + result = getItem( given_name, "Folder" ); + + return result; +} +function getComp( given_name ){ + + result = getItem( given_name, "Composition" ); + + return result; +} +function hexToColor(theHex){ + var r = theHex >> 16; + var g = (theHex & 0x00ff00) >> 8; + var b = theHex & 0xff; + return [r/255,g/255,b/255,1]; +} +function titleCase(str) { + str = str.toLowerCase().split(' '); + + for(var i = 0; i < str.length; i++){ + str[i] = str[i].split(''); + str[i][0] = str[i][0].toUpperCase(); + str[i] = str[i].join(''); + } + return str.join(' '); +} +function getTitle(){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var title = title_layer.sourceText.value.text; + + return title + } +function formatTitle( s ){ + title = titleCase( s ); + var exp = new RegExp(" " , 'g'); + title = title.replace(" ",""); + title = title.replace(exp, ''); + + return title; + } +function generateName(){ + var name = getTitle(); + var extra = genExtraCode (); + var date = genDateCode () ; + var nAvatars = myPalette.grp.avatar.avatar.avatarOption.selection.index + 1; + if ( nAvatars > 1 ) + { + nAvatars = "_"+String(nAvatars) + "xAvatars" + } + else + { + nAvatars = "" + } + if ( date != "" ) + { + date = "_" + date; + } + + if ( extra != "undefined" ) + { + extra = "_" + extra; + } + else + { + extra = ""; + } + + name = formatTitle ( name ) + nAvatars + extra + date + "_" +genTimeCode (); + return name +} +function genExtraCode(){ + if (!myPalette.grp.opt.extraSelected.value){ + return "undefined"; + } + + value = String(myPalette.grp.extra.extra.extraString.text); + + return value; +} +function genDateCode(){ + + var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); + + if (!myPalette.grp.opt.dateSelected.value){ + return day; + } + + + var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); + var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); + var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); + var date = ordinal; + + + + var value = day + month + day_of_week + date ; + + return value +} +function genTimeCode(){ + var value = String(myPalette.grp.time.time_slot.timeOption.selection); + if( myPalette.grp.time.time_slot.half.value == true ) + { + value+=":30"; + } + if( myPalette.grp.time.time_slot.nightTime.value == true ) + { + value+="p"; + } + else + { + value+="a"; + } + return value.replace(":",".") +} +function genColorCode(){ + var id = String(myPalette.grp.match.title.paletteOption.selection); + cc = ""; + switch ( id ) + { + case "Blue_1": + cc = "BLU1"; + break; + case "Blue_2": + cc = "BLU2"; + break; + case "Blue_3": + cc = "BLU3"; + break; + case "Gray": + cc = "GRY"; + break; + case "Magenta": + cc = "MGN"; + break; + case "Gold": + cc = "GLD" + break; + } + return cc; +} +function applyShowTitle( new_title ){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var ctrl_layer = comp.layer("ctrl_bubble"); + title_layer.sourceText.setValue( new_title ); + + width = title_layer.sourceRectAtTime(0, false).width; + var new_scale; + var new_center; + + if ( width >= 1300 ) + { + new_scale = (1500/width)*100; + new_center = [787,540]; + } + else if ( width > 640 ) + { + new_scale = 100; + new_center = [960,540]; + } + else + { + new_scale = 100; + new_center = [1040,540]; + + } + + comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); + comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); + ctrl_layer("Effects")("width")("Slider").setValue(width + 75); +} +var colors = { + gray : 0x2C313B, + purple : 0x7c36e1, + purple_dark : 0x5525ab, + yellow : 0xfffa38, + yellow_dark : 0xBBB900, + magenta : 0xE74DB7, + magenta_dark : 0xA93886, + cyan : 0x1BF0FF, + cyan_darl : 0x128DA6, + aqua_dark : 0x238573, + aqua : 0x288492, + aqua_light : 0x3ED8BB, + bluish_gray : 0x2A3B52 +} +function buildUI(thisObj) { + + if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null ) + { + alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); + return; + } + + if (thisObj instanceof Panel) { + var myPal = thisObj; + } else { + var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); + } + + if (myPal != null) { + + /* + timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ + daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ + */ + + var res = + "group { \ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatar: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + avatar: Group {\ + alignment: ['left','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatarText: StaticText {text:'# Avatars', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['left','center']}, \ + }\ + a1: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatarText: StaticText {text:'A1 Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + }\ + a2: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatarText: StaticText {text:'A2 Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + }\ + a3: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatarText: StaticText {text:'A3 Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + }\ + a4: Group {\ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + avatarText: StaticText {text:'A4 Image', alignment: ['left','center']}, \ + avatarOption: DropDownList {alignment: ['fill','center']}, \ + }\ + } \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ + titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ + isEvent: Checkbox {text:'Event', alignment: ['right','center']}, \ + } \ + } \ + opt: Group { \ + dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ + extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ + },\ + time: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + time_slot: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + timeText: StaticText {text:'Time', alignment: ['left','center']}, \ + timeOption: DropDownList {alignment: ['fill','center']}, \ + half: Checkbox {text:':30', alignment: ['right','center']}, \ + nightTime: Checkbox {text:'PM', alignment: ['right','center']}, \ + } \ + } \ + tunein: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + day: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ + dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ + dayShort: Checkbox {text:'Short', alignment: ['right','center']}, \ + } \ + } \ + tuneindate: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + day: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + monthText: StaticText {text:'Month', alignment: ['left','center']}, \ + monthOption: DropDownList {alignment: ['fill','center']}, \ + dateText: StaticText {text:'Date', alignment: ['left','center']}, \ + dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ + } \ + } \ + extra: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + extra: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ + extraString: EditText {text:'next',alignment: ['fill','center']}, \ + } \ + } \ + doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ + }"; + + myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); + myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s"); + myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); + myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); + myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); + myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); + myPal.day_layer = myPal.comp.layer("DAY"); + myPal.time_layer = myPal.comp.layer("TIME"); + myPal.extra_layer = myPal.comp.layer("EXTRA"); + myPal.title_layer = myPal.comp.layer("TITLE"); + myPal.title_bubble_layer = myPal.comp.layer("tittle_bubble"); + myPal.title_loc_layer = myPal.comp.layer("CTRL_Center_Title"); + myPal.tunein_loc_layer = myPal.comp.layer("CTRL_Center_Tunein"); + myPal.debug_width = myPal.comp.layer("debug.width"); + myPal.debug_width_2 = myPal.comp.layer("debug.width 2"); + myPal.ctrl_info = myPal.comp.layer("CTRL_Info"); + + myPal.avatar_layers = + { + a1: [ + myPal.comp.layer("1A_A1") + ], + a2: [ + myPal.comp.layer("2A_A1"), + myPal.comp.layer("2A_A2"), + ], + a3: [ + myPal.comp.layer("3A_A1"), + myPal.comp.layer("3A_A2"), + myPal.comp.layer("3A_A3"), + ], + a4: [ + myPal.comp.layer("4A_A1"), + myPal.comp.layer("4A_A2"), + myPal.comp.layer("4A_A3"), + myPal.comp.layer("4A_A4"), + ] + } + + + myPal.extra_layers = [ + myPal.comp.layer("EXTRA"), + myPal.comp.layer("bubble_connect_extra"), + myPal.comp.layer("bubble_extra"), + myPal.comp.layer("bubble_extra_overlap"), + myPal.comp.layer("disney_logo_extra"), + myPal.comp.layer("bubble_disney_logo_extra") + ]; + myPal.not_extra_layers = [ + myPal.comp.layer("disney_logo"), + myPal.comp.layer("bubble_disney_logo") + ]; + + myPal.fold_width = 100; + myPal.disney_logo = 272; + myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow", "Tonight"]; + myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; + myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; + myPal.timeMargin = 30; + myPal.dayMargin = 95; + myPal.extraHorizOffset = 40; + myPal.yaam = -120; + + myPal.avatarNumOpt = [0,2,3,4]; + + + //myPal Methods --> + myPal.getLayerWidth = function( textLayerObject ){ + var width = textLayerObject.sourceRectAtTime(0, false).width; + return width; + } + myPal.updateFont = function ( opt ){ + /* + var animators = [ + myPal.day_layer("Text")("Animators")("ordinal"), + myPal.day_layer("Text")("Animators")("ordinal_offset"), + myPal.day_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.extra_layer("Text")("Animators")("smaller") + ]; + */ + var animators = [ + myPal.day_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.extra_layer("Text")("Animators")("smaller") + ]; + for ( var i = 0; i < animators.length ; i ++ ) + { + animators[i].enabled = opt; + } + + /* + var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); + + if( ordinal == "nd" ){ + myPal.day_layer("Text")("Animators")("nd").enabled = true; + } + else + { + myPal.day_layer("Text")("Animators")("nd").enabled = false; + } + */ + + } + myPal.setFontSize = function ( value ){ + myPal.day_layer.sourceText.value.fontSize = value; + myPal.time_layer.sourceText.value.fontSize = value; + myPal.extra_layer.sourceText.value.fontSize = value; + } + myPal.updateTitleBar = function(){ + var s = myPal.ctrl_title_layer.transform.scale[0]; + s = myPal.ctrl_title_layer.transform.scale.value[0]/100; + var new_width = ( (myPal.timeMargin*4) + myPal.getLayerWidth( myPal.title_layer ) )* s; + myPal.title_bubble_layer("Effects")("width")("Slider").setValue( new_width ); + myPal.updateTitle(); + } + myPal.getTuneinWidth = function (){ + var time_width = myPal.getLayerWidth( myPal.time_layer ); + var day_width = myPal.getLayerWidth( myPal.day_layer ); + //var disney_logo = 272; + var extra_width = myPal.getLayerWidth( myPal.extra_layer ); + var connecting_width = 36; + var value; + + if ( !myPal.grp.opt.extraSelected.value ) + { + value = time_width + day_width + (myPal.timeMargin* 2.25 )+ myPal.disney_logo; + } + else + { + value = time_width + day_width + (myPal.timeMargin* 2.25 )+ myPal.disney_logo + extra_width + (myPal.timeMargin*2.60) + connecting_width; + } + + return value; + } + myPal.getTuneinNoLogoWidth = function (){ + var time_width = myPal.getLayerWidth( myPal.time_layer ); + var day_width = myPal.getLayerWidth( myPal.day_layer ); + var disney_logo = 272; + var extra_width = myPal.getLayerWidth( myPal.extra_layer ); + var connecting_width = 36; + var value; + + if ( !myPal.grp.opt.extraSelected.value ) + { + value = time_width + day_width + (myPal.timeMargin* 2.25 ); + } + else + { + value = time_width + day_width + (myPal.timeMargin* 2.25 ) + extra_width + (myPal.timeMargin*2.60) + connecting_width; + } + + return value; + } + myPal.getTitleWidth = function() + { + var rect_width = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Size").value[0]; + var rect_roundness = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Roundness").value; + var value = rect_width - rect_roundness; + + return value; + } + myPal.updateBars = function(){ + var time_width = myPal.getLayerWidth( myPal.time_layer ); + var day_width = myPal.getLayerWidth( myPal.day_layer ); + var extra_width = myPal.getLayerWidth( myPal.extra_layer ); + var title_width = myPal.getLayerWidth( myPal.title_layer ); + myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); + myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); + myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin ,0,0]); + myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraHorizOffset ,0]); + myPal.debug_width("Effects")("width")("Slider").setValue( myPal.getTuneinNoLogoWidth() ); + myPal.debug_width_2("Effects")("width")("Slider").setValue( myPal.getTitleWidth() ); + //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); + } + myPal.getOrdinal = function(n){ + var ordinal = "th"; + + var cyphers = String(n); + var last_digit = parseInt(cyphers[cyphers.length-1]); + + if ( (n < 4) || ( n > 20 ) ){ + if ( last_digit == "1"){ + ordinal = "st"; + } + else if( last_digit == "2"){ + ordinal = "nd"; + } + else if( last_digit == "3"){ + ordinal = "rd"; + } + } + + return ordinal; + } + myPal.getDate = function(){ + var date; + return date; + } + myPal.updateNumAvatarOptions = function(){ + var numAvatars = myPal.grp.avatar.avatar.avatarOption.selection.index + 1; + + //HORRIBLE SWITCH + //debug.log( numAvatars ); + + if ( numAvatars == 1) + { + //myPal.grp.avatar.a1.enabled = true ; + myPal.grp.avatar.a1.enabled = false ; + myPal.grp.avatar.a2.enabled = false ; + myPal.grp.avatar.a3.enabled = false ; + myPal.grp.avatar.a4.enabled = false ; + } + else if ( numAvatars == 2) + { + myPal.grp.avatar.a1.enabled = true ; + myPal.grp.avatar.a2.enabled = true ; + myPal.grp.avatar.a3.enabled = false ; + myPal.grp.avatar.a4.enabled = false ; + } + else if ( numAvatars == 3) + { + myPal.grp.avatar.a1.enabled = true ; + myPal.grp.avatar.a2.enabled = true ; + myPal.grp.avatar.a3.enabled = true ; + myPal.grp.avatar.a4.enabled = false ; + } + else if ( numAvatars == 4) + { + myPal.grp.avatar.a1.enabled = true ; + myPal.grp.avatar.a2.enabled = true ; + myPal.grp.avatar.a3.enabled = true ; + myPal.grp.avatar.a4.enabled = true ; + } + myPal.populateAvatars(); + } + myPal.populateAvatars = function(){ + var avatarOptions = + [ + myPal.grp.avatar.a1.avatarOption, + myPal.grp.avatar.a2.avatarOption, + myPal.grp.avatar.a3.avatarOption, + myPal.grp.avatar.a4.avatarOption + ]; + for ( var i = 0 ; i < avatarOptions.length ; i ++ ){ + var ao = avatarOptions[i]; + ao.removeAll(); + for ( var j = 0 ; j < myPal.avatars.length ; j ++ ){ + ao.add("item", myPal.avatars[j].name ); + } + ao.selected = 0; + + } + } + myPal.updateAvatarsFromFolder = function(){ + myPal.avatars = []; + if ( myPal.avatar_folder != null ){ + for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ){ + myPal.avatars.push( myPal.avatar_folder.item(i) ); + } + } + } + myPal.updateAvatarLayers = function(){ + var numAvatars = myPal.grp.avatar.avatar.avatarOption.selection.index + 1; + var index = 0; + for ( var i in myPal.avatar_layers ) + { + index++; + layers = myPal.avatar_layers[i]; + for ( var j = 0 ; j < layers.length ; j ++ ) + { + var layer = layers[j]; + if ( numAvatars != 1 ){ + layer.enabled = ( index == numAvatars ); + } + else + { + layer.enabled = false; + } + } + } + if ( numAvatars != 1 ){ + myPal.ctrl_info.transform.position.setValue([0,0,0]); + } + else + { + myPal.ctrl_info.transform.position.setValue([0,-160,0]); + } + } + myPal.updateTime = function(){ + var value = String(myPal.grp.time.time_slot.timeOption.selection); + if( myPal.grp.time.time_slot.half.value == true ) + { + value+=":30"; + } + if( myPal.grp.time.time_slot.nightTime.value == true ) + { + value+="p"; + } + else + { + value+="a["; + } + myPal.applyTime( value ); + } + myPal.updateDay = function(){ + var value = String(myPal.grp.tunein.day.dayOption.selection); + myPal.applyDay( value ); + } + myPal.updateDate = function(){ + if (!myPal.grp.opt.dateSelected.value){ + //myPal.updateDay(); + return; + } + var day_index = myPal.grp.tunein.day.dayOption.selection.index; + var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); + var day = String( myPal.grp.tunein.day.dayOption.selection ); + var month = String(myPal.grp.tuneindate.day.monthOption.selection); + var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); + var date_int = parseInt(myPal.grp.tuneindate.day.dateOption.selection ) ; + var ordinal = myPal.getOrdinal( date_int ); + //var date = ordinal; + + var date = date_int; + + if ( myPal.grp.tunein.day.dayShort.value ){ + day = short_day; + } + + month_space = " "; + if ( day_index <= 6 ) + { + month_space = "," + month_space; + } + + var value = day + month_space + month + " " + day_of_week ; + + myPal.applyDay( value ); + //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); + } + myPal.updateEvent = function(){ + var isEvent = myPal.grp.title.title.isEvent.value; + myPal.applyEvent( isEvent ); + } + myPal.updateExtra = function(){ + if (!myPal.grp.opt.extraSelected.value){ + } + else + { + var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); + myPal.applyExtra( value ); + } + } + myPal.updateTuneinY = function(){ + debug.log("updateey"); + var tuneinW = myPal.getTuneinWidth(); + var titleW = myPal.getTitleWidth(); + var tuneinWider = tuneinW > titleW; + + var offset; + var y; + + if ( ( myPal.grp.extra.enabled ) || ((tuneinWider && myPal.grp.extra.enabled )) ){ + y = 861; + } + else + { + y = 904; + } + + + myPal.tunein_loc_layer.transform.position.setValue( [myPal.tunein_loc_layer.transform.position.value[0],y]) + + } + + myPal.updateTitles = function() + { + var tuneinW = myPal.getTuneinWidth(); + var titleW = myPal.getTitleWidth(); + var d = (tuneinW - titleW); + var offset = 0; + if ( Math.abs(d) < 150 ) + { + debug.log("CASO:"+ String(d)); + offset = Math.abs(d)/2; + } + else + { + debug.log("NOT:"+ String(d)); + } + var tuneinWider = tuneinW > titleW; + + if ( tuneinWider ) + { + + myPal.centerTuneIn( offset ); + var margin = myPal.tunein_loc_layer("Effects")("margin")("Slider").value; + var x = myPal.tunein_loc_layer.transform.position.value[0]; + myPal.positionTitle( x - myPal.getTuneinNoLogoWidth() -margin - myPal.fold_width ); + } + else + { + myPal.centerTitle( offset ); + var tuneinWidth = myPal.getTuneinWidth(); + var title_x = myPal.title_loc_layer.transform.position.value[0]; + var fold_width = myPal.fold_width; + myPal.positionTunein( title_x + fold_width + tuneinWidth + 40 ); + + } + + myPal.updateTuneinY(); + } + myPal.updateTitle = function(){ + + var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); + myPal.applyTitle( value ); + } + myPal.updateText = function(){ + + myPal.updateFont( myPal.grp.opt.dateSelected.value ); + + if( myPal.grp.opt.dateSelected.value ){ + myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); + } + else + { + myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); + } + } + + myPal.updateVisibility = function(){ + for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) + { + myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; + } + for ( var i = 0 ; i < myPal.not_extra_layers.length ; i ++ ) + { + myPal.not_extra_layers[i].enabled = !myPal.grp.opt.extraSelected.value ; + } + } + myPal.updateAll = function (){ + myPal.updateNumAvatarOptions(); + myPal.updateTitle(); + myPal.updateEvent(); + myPal.updateTitleBar(); + myPal.updateTime(); + myPal.updateDay(); + myPal.updateDate(); + myPal.updateExtra(); + myPal.updateText(); + //myPal.updateScale(); + myPal.updateBars(); + myPal.updateTuneinY(); + myPal.updateVisibility(); + myPal.updateAvatarLayers(); + myPal.updateTitles(); + //debug.log( "Updating: " + String(debug.updateN)); + } + myPal.applyTime = function( s ){ + app.beginUndoGroup("applyTime"); + + //myPal.updateBars(); + + var singleton = s.search("a") != -1; + myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; + + myPal.time_layer.sourceText.setValue( s ); + app.endUndoGroup(); + }; + myPal.applyDay = function( s ){ + app.beginUndoGroup("applyDay"); + myPal.day_layer.sourceText.setValue( s ); + + //myPal.updateAll(); + app.endUndoGroup(); + }; + myPal.applyEvent = function( value ) + { + app.beginUndoGroup("applyDay"); + var isEvent = value; + + myPal.title_layer("Text")("Animators")("event").enabled = myPal.title_layer("Text")("Animators")("event_2").enabled = myPal.title_layer("Text")("Animators")("event_3").enabled = myPal.title_layer("Text")("Animators")("event_4").enabled = isEvent; + + var s = "Do Not Touch"; + + for (var i = 0 ; i < 5 ; i++ ){ + myPal.title_layer("Effects")(s).enabled = isEvent; + s+="-"; + } + + myPal.title_layer("Effects")("---------------").enabled = isEvent; + app.endUndoGroup(); + } + myPal.applyExtra = function( s ){ + app.beginUndoGroup("applyExtra"); + myPal.extra_layer.sourceText.setValue( s ); + //myPal.updateBars(); + app.endUndoGroup(); + } + myPal.positionLayer = function( layer , x_coord ){ + var orig_loc = layer.transform.position; + var coord = [ x_coord , orig_loc.value[1] ]; + layer.transform.position.setValue( coord ); + } + myPal.positionTitle = function( x_coord ){ + myPal.positionLayer( myPal.title_loc_layer , x_coord ); + } + myPal.positionTunein = function( x_coord ){ + myPal.positionLayer( myPal.tunein_loc_layer , x_coord ); + } + myPal.centerTitle = function( offset ){ + var width = myPal.getLayerWidth( myPal.title_layer ); + + var new_scale; + + var x_max = 1600 ; + if ( width >= x_max ) + { + new_scale = x_max / width * 100 ; + } + else + { + new_scale = 100; + } + + var old_pos = myPal.title_loc_layer.transform.position.value; + var center = (width/2) * (new_scale/100); + var new_pos = [ (((myPal.comp.width)/2) - center - 30) + offset ,old_pos[1]]; + + app.beginUndoGroup(this); + myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); + myPal.title_loc_layer.transform.position.setValue( new_pos ); + app.endUndoGroup(); + } + myPal.centerTuneIn = function( offset ){ + + var width = myPal.getTuneinWidth(); + + var old_pos = [960,861]; + var center = (-width/2); + var new_pos = [ (((myPal.comp.width)/2) - center ) + offset ,old_pos[1]]; + app.beginUndoGroup(this); + myPal.tunein_loc_layer.transform.position.setValue( new_pos ); + app.endUndoGroup(); + } + myPal.applyTitle = function( s ){ + app.beginUndoGroup("applyTitle"); + + + myPal.title_layer.sourceText.setValue( s ); + + //myPal.centerTitle(); + + //myPal.updateBars(); + app.endUndoGroup(); + } + //myPal Methods <-- + + myPal.grp = myPal.add(res); + //populate number of avatars option + + for ( var i = 0 ; i < myPal.avatarNumOpt.length; i ++ ) { + var item = myPal.avatarNumOpt[i]; + myPal.grp.avatar.avatar.avatarOption.add("item",item ); + } + myPal.grp.avatar.avatar.avatarOption.selection = myPal.avatarNumOpt.length -1; + + //populate days_of the week + for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { + myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); + } + myPal.grp.tunein.day.dayOption.selection = 0; + myPal.grp.tunein.day.dayOption.preferredSize.width = 75; + + //populate time_slots + for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { + myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); + } + myPal.grp.time.time_slot.timeOption.selection = 0; + myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; + + //populate moths + for ( var i = 0 ; i < myPal.months.length; i ++ ) { + myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); + } + myPal.grp.tuneindate.day.monthOption.selection = 0; + myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; + + //populate days_of month + for ( var i = 1 ; i <= 31; i ++ ) { + myPal.grp.tuneindate.day.dateOption.add("item", i ); + } + myPal.grp.tuneindate.day.dateOption.selection = 0; + myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; + + //set initial visibility options + + myPal.grp.title.title.isEvent.value = myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = false; + + // control possible options + + myPal.grp.opt.dateSelected.onClick = function(){ + myPal.grp.tuneindate.enabled = this.value; + myPal.grp.tunein.day.dayShort.enabled= this.value; + //myPal.comp.layer("") + myPal.updateAll(); + } + myPal.grp.opt.extraSelected.onClick = function(){ + myPal.grp.extra.enabled = this.value; + myPal.updateAll(); + } + myPal.grp.title.title.isEvent.onClick = function(){ + + var isEvent = myPal.grp.title.title.isEvent.value; + + var value; + if ( isEvent ){ + value = "Event title"; + } + else + { + value = "Show title"; + } + + myPal.grp.title.title.titleText.text = value; + + myPal.updateAll(); + } + //Assign Methods to UI + //Update on every UI change/click + myPal.grp.avatar.avatar.avatarOption.onChange = myPal.grp.tunein.day.dayShort.onClick = myPal.grp.title.title.titleString.onChanging = myPal.grp.extra.extra.extraString.onChanging = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; + + myPal.grp.avatar.a1.avatarOption.onChange = function(){ + var a_layers = [ "a1","a2","a3","a4"]; + for ( var i = 0; i < a_layers.length ; i ++ ) + { + + try { + var layer = myPal.avatar_layers[ a_layers[i] ][0]; + layer.replaceSource( getItemByName( String(this.selection) ) ,false); + } + catch(err) + { + debug.log( String(err) ); + } + } + } + myPal.grp.avatar.a2.avatarOption.onChange = function(){ + var a_layers = [ "a2","a3","a4"]; + for ( var i = 0; i < a_layers.length ; i ++ ) + { + try { + var layer = myPal.avatar_layers[ a_layers[i] ][1]; + layer.replaceSource( getItemByName( String(this.selection) ) ,false); + } + catch(err) + { + debug.log( String(err) ); + } + } + } + myPal.grp.avatar.a3.avatarOption.onChange = function(){ + var a_layers = [ "a3","a4"]; + for ( var i = 0; i < a_layers.length ; i ++ ) + { + try { + var layer = myPal.avatar_layers[ a_layers[i] ][2]; + layer.replaceSource( getItemByName( String(this.selection) ) ,false); + } + catch(err) + { + debug.log( String(err) ); + } + } + } + myPal.grp.avatar.a4.avatarOption.onChange = function(){ + var a_layers = [ "a4"]; + for ( var i = 0; i < a_layers.length ; i ++ ) + { + try { + var layer = myPal.avatar_layers[ a_layers[i] ][3]; + layer.replaceSource( getItemByName( String(this.selection) ) ,false); + } + catch(err) + { + debug.log( String(err) ); + } + } + } + + + + + myPal.onDeactivate = function(){ + myPal.updateAvatarsFromFolder(); + //$.writeln("active"); + } + + myPal.onActivate = function(){ + myPal.updateAvatarsFromFolder(); + } + + myPal.grp.doItBtn.onClick = function () { + var new_comp = myPal.comp.duplicate(); + new_comp.name = myPal.comp.name.replace("##Base##",generateName()); + } + + myPal.layout.layout(true); + myPal.grp.avatar.preferredSize.width = 900; + myPal.layout.resize(); + myPal.onResizing = myPal.onResize = function () {this.layout.resize();} + + myPal.updateAvatarsFromFolder(); + myPal.populateAvatars(); + } //if (myPal != null) + return myPal; + } + +//main + +var myPalette = buildUI(this); + +//var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; + +if (parseFloat(app.version) < 8) { + alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); + } else { + if (myPalette != null && myPalette instanceof Window) { + //myPalette.center(); + myPalette.show(); + } +} +} From a507e0ede67492e4cc537ae184569c21428d1827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 16 Mar 2017 11:48:08 -0700 Subject: [PATCH 22/24] Replaced the updateDate() function from the FullFrame EP, version, addressing comments about ordinal number preferences and commas in dates. --- jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx | 742 ++++++++++++++++++++++- 1 file changed, 741 insertions(+), 1 deletion(-) diff --git a/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx index 5ad43ed..dd73b38 100755 --- a/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx +++ b/jsx/MKN_DC_GEN_EP_Vert_ToolkitScript.jsx @@ -1 +1,741 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Vert_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Vert Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['left','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Vert_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } else { value+="a["; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = s.search("a") != -1; myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; /* if( singleton ){ s = s+"a"; } */ myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = myPal.grp.social.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file +{ +///////////////////////////////////////////////////////////////////////// +// +// MAkinE - Disney GEN EP Customizer +// +// ©2017 Jorge Vasquez +// Author: Jorge Vasquez +// +// Version History +// +// 0.2 Added "Tonight" to the possible day options, and a comma +// in between the month and the date. +// +//////////////////////////////////////////////////////////////////////// + +var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; +var tcd_version = "0.2"; + +/////////////////////////////Array.indexOf for older JS///////////////////// +// Production steps of ECMA-262, Edition 5, 15.4.4.14 +// Reference: http://es5.github.io/#x15.4.4.14 +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(searchElement, fromIndex) { + + var k; + + // 1. Let o be the result of calling ToObject passing + // the this value as the argument. + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let lenValue be the result of calling the Get + // internal method of o with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = o.length >>> 0; + + // 4. If len is 0, return -1. + if (len === 0) { + return -1; + } + + // 5. If argument fromIndex was passed let n be + // ToInteger(fromIndex); else let n be 0. + var n = fromIndex | 0; + + // 6. If n >= len, return -1. + if (n >= len) { + return -1; + } + + // 7. If n >= 0, then Let k be n. + // 8. Else, n<0, Let k be len - abs(n). + // If k is less than 0, then let k be 0. + k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + + // 9. Repeat, while k < len + while (k < len) { + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the + // HasProperty internal method of o with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + // i. Let elementK be the result of calling the Get + // internal method of o with the argument ToString(k). + // ii. Let same be the result of applying the + // Strict Equality Comparison Algorithm to + // searchElement and elementK. + // iii. If same is true, return k. + if (k in o && o[k] === searchElement) { + return k; + } + k++; + } + return -1; + }; +} +//////////////////////////////////////////////////////////////////////// + +function getItem( item_name, item_type ){ + var result = null; + var items = app.project.items; + var names = []; + + for ( i = 1 ; i <= items.length ; i ++ ) + { + var item = items[i]; + var type = item.typeName; + if ( ( type == item_type ) && ( item.name == item_name ) ) + { + result = item; + //$.writeln( item.name ); + } + } + return result; +} +function getFolder( given_name ){ + + result = getItem( given_name, "Folder" ); + + return result; +} +function getComp( given_name ){ + + result = getItem( given_name, "Composition" ); + + return result; +} +function hexToColor(theHex){ + var r = theHex >> 16; + var g = (theHex & 0x00ff00) >> 8; + var b = theHex & 0xff; + return [r/255,g/255,b/255,1]; +} +function titleCase(str) { + str = str.toLowerCase().split(' '); + + for(var i = 0; i < str.length; i++){ + str[i] = str[i].split(''); + str[i][0] = str[i][0].toUpperCase(); + str[i] = str[i].join(''); + } + return str.join(' '); +} +function getTitle(){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var title = title_layer.sourceText.value.text; + + return title + } +function formatTitle( s ){ + title = titleCase( s ); + var exp = new RegExp(" " , 'g'); + title = title.replace(" ",""); + title = title.replace(exp, ''); + + return title; + } +function generateName(){ + var name = getTitle(); + var extra = genExtraCode (); + var date = genDateCode () ; + if ( date != "" ) + { + date = "_" + date; + } + + if ( extra != "undefined" ) + { + extra = "_" + extra; + } + else + { + extra = ""; + } + + name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); + return name +} +function genExtraCode(){ + if (!myPalette.grp.opt.extraSelected.value){ + return "undefined"; + } + + value = String(myPalette.grp.extra.extra.extraString.text); + + return value; +} +function genDateCode(){ + + var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); + + if (!myPalette.grp.opt.dateSelected.value){ + return day; + } + + + var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); + var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); + var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); + var date = ordinal; + + + + var value = day + month + day_of_week + date ; + + return value +} +function genTimeCode(){ + var value = String(myPalette.grp.time.time_slot.timeOption.selection); + if( myPalette.grp.time.time_slot.half.value == true ) + { + value+=":30"; + } + if( myPalette.grp.time.time_slot.nightTime.value == true ) + { + value+="p"; + } + else + { + value+="a"; + } + return value.replace(":",".") +} +function genColorCode(){ + var id = String(myPalette.grp.match.title.paletteOption.selection); + cc = ""; + switch ( id ) + { + case "Blue_1": + cc = "BLU1"; + break; + case "Blue_2": + cc = "BLU2"; + break; + case "Blue_3": + cc = "BLU3"; + break; + case "Gray": + cc = "GRY"; + break; + case "Magenta": + cc = "MGN"; + break; + case "Gold": + cc = "GLD" + break; + } + return cc; +} +function applyShowTitle( new_title ){ + var comp = myPalette.comp; + var title_layer = comp.layer("TITLE"); + var ctrl_layer = comp.layer("ctrl_bubble"); + title_layer.sourceText.setValue( new_title ); + + width = title_layer.sourceRectAtTime(0, false).width; + var new_scale; + var new_center; + + if ( width >= 1300 ) + { + new_scale = (1500/width)*100; + new_center = [787,540]; + } + else if ( width > 640 ) + { + new_scale = 100; + new_center = [960,540]; + } + else + { + new_scale = 100; + new_center = [1040,540]; + + } + + comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); + comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); + ctrl_layer("Effects")("width")("Slider").setValue(width + 75); +} +var colors = { + gray : 0x2C313B, + purple : 0x7c36e1, + purple_dark : 0x5525ab, + yellow : 0xfffa38, + yellow_dark : 0xBBB900, + magenta : 0xE74DB7, + magenta_dark : 0xA93886, + cyan : 0x1BF0FF, + cyan_darl : 0x128DA6, + aqua_dark : 0x238573, + aqua : 0x288492, + aqua_light : 0x3ED8BB, + bluish_gray : 0x2A3B52 +} +function buildUI(thisObj) { + + if ( getComp("DC_GEN_EP_Vert_##Base##_10s") == null ) + { + alert("Make sure to have the DC_GEN_EP_Vert Template project open before running the script"); + return; + } + + if (thisObj instanceof Panel) { + var myPal = thisObj; + } else { + var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); + } + + if (myPal != null) { + + /* + timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ + daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ + */ + + var res = + "group { \ + alignment: ['fill','fill'], \ + alignChildren: ['left','top'], \ + orientation: 'column', \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + title: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ + titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ + } \ + } \ + opt: Group { \ + dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ + extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ + socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ + },\ + time: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + time_slot: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + timeText: StaticText {text:'Time', alignment: ['left','center']}, \ + timeOption: DropDownList {alignment: ['fill','center']}, \ + half: Checkbox {text:':30', alignment: ['left','center']}, \ + nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ + } \ + } \ + tunein: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + day: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ + dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ + dayShort: Checkbox {text:'Short', alignment: ['left','center']}, \ + } \ + } \ + tuneindate: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + day: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + monthText: StaticText {text:'Month', alignment: ['left','center']}, \ + monthOption: DropDownList {alignment: ['fill','center']}, \ + dateText: StaticText {text:'Date', alignment: ['left','center']}, \ + dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ + } \ + } \ + extra: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + extra: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ + extraString: EditText {text:'next',alignment: ['fill','center']}, \ + } \ + } \ + social: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + orientation:'column', \ + social: Group { \ + alignment: ['fill','top'], \ + alignChildren: ['fill','top'], \ + socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ + socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ + } \ + } \ + doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ + }"; + + myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); + myPal.comp = getComp("DC_GEN_EP_Vert_##Base##_10s"); + myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); + myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); + myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); + myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); + myPal.day_layer = myPal.comp.layer("DAY"); + myPal.time_layer = myPal.comp.layer("TIME"); + myPal.extra_layer = myPal.comp.layer("EXTRA"); + myPal.title_layer = myPal.comp.layer("TITLE"); + myPal.social_layer = myPal.comp.layer("SOCIAL"); + + myPal.extra_layers = [ + myPal.comp.layer("EXTRA"), + myPal.comp.layer("bubble_connect_extra"), + myPal.comp.layer("bubble_extra"), + myPal.comp.layer("bubble_extra_overlap") + ]; + myPal.social_layers = [ + myPal.comp.layer("SOCIAL"), + myPal.comp.layer("Bubble_EARS") + ]; + + + + myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow", "Tonight"]; + myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; + myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; + myPal.timeMargin = 30; + myPal.dayMargin = 95; + myPal.extraVerticalOffset = 40; + + myPal.paletteOptionNames = { + Gray : "D", + Gold : "F", + Magenta : "G", + Blue_1 : "C", + Blue_2 : "E", + Blue_3 : "H" + }; + + //myPal Methods --> + myPal.updateFont = function ( opt ){ + var animators = [ + myPal.day_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.time_layer("Text")("Animators")("smaller"), + myPal.extra_layer("Text")("Animators")("smaller") + ]; + for ( var i = 0; i < animators.length ; i ++ ) + { + animators[i].enabled = opt; + } + + var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); + + if( ordinal == "nd" ){ + myPal.day_layer("Text")("Animators")("nd").enabled = true; + } + else + { + myPal.day_layer("Text")("Animators")("nd").enabled = false; + } + + + } + myPal.setFontSize = function ( value ){ + myPal.day_layer.sourceText.value.fontSize = value; + myPal.time_layer.sourceText.value.fontSize = value; + myPal.extra_layer.sourceText.value.fontSize = value; + } + myPal.updateBars = function(){ + var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; + var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; + var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; + + myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); + myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); + myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); + myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); + //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); + } + myPal.getOrdinal = function(n){ + var ordinal = "th"; + + var cyphers = String(n); + var last_digit = parseInt(cyphers[cyphers.length-1]); + + if ( (n < 4) || ( n > 20 ) ){ + if ( last_digit == "1"){ + ordinal = "st"; + } + else if( last_digit == "2"){ + ordinal = "nd"; + } + else if( last_digit == "3"){ + ordinal = "rd"; + } + } + + return ordinal; + } + myPal.getDate = function(){ + var date; + return date; + } + myPal.updateTime = function(){ + var value = String(myPal.grp.time.time_slot.timeOption.selection); + if( myPal.grp.time.time_slot.half.value == true ) + { + value+=":30"; + } + if( myPal.grp.time.time_slot.nightTime.value == true ) + { + value+="p"; + } + else + { + value+="a["; + } + + myPal.applyTime( value ); + } + myPal.updateDay = function(){ + var value = String(myPal.grp.tunein.day.dayOption.selection); + myPal.applyDay( value ); + } + myPal.updateDate = function(){ + if (!myPal.grp.opt.dateSelected.value){ + //myPal.updateDay(); + return; + } + var day_index = myPal.grp.tunein.day.dayOption.selection.index; + var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); + var day = String( myPal.grp.tunein.day.dayOption.selection ); + var month = String(myPal.grp.tuneindate.day.monthOption.selection); + var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); + var date_int = parseInt(myPal.grp.tuneindate.day.dateOption.selection ) ; + var ordinal = myPal.getOrdinal( date_int ); + //var date = ordinal; + + var date = date_int; + + if ( myPal.grp.tunein.day.dayShort.value ){ + day = short_day; + } + + month_space = " "; + if ( day_index <= 6 ) + { + month_space = "," + month_space; + } + + var value = day + month_space + month + " " + day_of_week ; + + myPal.applyDay( value ); + //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); + } + myPal.updateExtra = function(){ + if (!myPal.grp.opt.extraSelected.value){ + } + else + { + var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); + myPal.applyExtra( value ); + } + } + myPal.updateTitle = function(){ + + var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); + myPal.applyTitle( value ); + } + myPal.updateSocial = function(){ + var value = String( myPal.grp.social.social.socialString.text ); + myPal.applySocial( value ); + } + + + myPal.updateText = function(){ + + myPal.updateFont( myPal.grp.opt.dateSelected.value ); + + if( myPal.grp.opt.dateSelected.value ){ + myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); + } + else + { + myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); + } + } + + myPal.updateVisibility = function(){ + for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) + { + myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; + } + for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) + { + myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; + } + } + myPal.updateAll = function (){ + myPal.updateTitle(); + myPal.updateTime(); + myPal.updateDay(); + myPal.updateDate(); + myPal.updateExtra(); + myPal.updateSocial(); + myPal.updateText(); + myPal.updateBars(); + myPal.updateVisibility(); + } + myPal.applyTime = function( s ){ + app.beginUndoGroup("applyTime"); + + //myPal.updateBars(); + + var singleton = s.search("a") != -1; + + myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; + /* + if( singleton ){ + s = s+"a"; + } + */ + + myPal.time_layer.sourceText.setValue( s ); + app.endUndoGroup(); + }; + myPal.applyDay = function( s ){ + app.beginUndoGroup("applyDay"); + myPal.day_layer.sourceText.setValue( s ); + //myPal.updateBars(); + app.endUndoGroup(); + }; + myPal.applyExtra = function( s ){ + app.beginUndoGroup("applyExtra"); + myPal.extra_layer.sourceText.setValue( s ); + //myPal.updateBars(); + app.endUndoGroup(); + } + myPal.applySocial = function( s ){ + app.beginUndoGroup("applySocial"); + myPal.social_layer.sourceText.setValue( s ); + //myPal.updateBars(); + app.endUndoGroup(); + } + myPal.applyTitle = function( s ){ + app.beginUndoGroup("applyTitle"); + myPal.title_layer.sourceText.setValue( s ); + width = myPal.title_layer.sourceRectAtTime(0, false).width; + var new_scale; + if ( width >= 270 ) + { + new_scale = 270/width*100 ; + } + else + { + new_scale = 100; + } + myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); + //myPal.updateBars(); + app.endUndoGroup(); + } + //myPal Methods <-- + + myPal.grp = myPal.add(res); + + //populate days_of the week + for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { + myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); + } + myPal.grp.tunein.day.dayOption.selection = 0; + myPal.grp.tunein.day.dayOption.preferredSize.width = 75; + + //populate time_slots + for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { + myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); + } + myPal.grp.time.time_slot.timeOption.selection = 0; + myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; + + //populate moths + for ( var i = 0 ; i < myPal.months.length; i ++ ) { + myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); + } + myPal.grp.tuneindate.day.monthOption.selection = 0; + myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; + + //populate days_of month + for ( var i = 1 ; i <= 31; i ++ ) { + myPal.grp.tuneindate.day.dateOption.add("item", i ); + } + myPal.grp.tuneindate.day.dateOption.selection = 0; + myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; + + //set initial visibility options + + myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = myPal.grp.social.enabled = false; + + // control possible options + + myPal.grp.opt.dateSelected.onClick = function(){ + myPal.grp.tuneindate.enabled = this.value; + myPal.grp.tunein.day.dayShort.enabled= this.value; + myPal.updateAll(); + } + myPal.grp.opt.extraSelected.onClick = function(){ + myPal.grp.extra.enabled = this.value; + myPal.updateAll(); + } + myPal.grp.opt.socialSelected.onClick = function(){ + myPal.grp.social.enabled = this.value; + myPal.updateAll(); + } + myPal.grp.tunein.day.dayShort.onClick= function(){ + writeLn(myPal.grp.tunein.day.dayShort.value); + myPal.updateAll(); + } + //Assign Methods to UI + //Update on every UI change/click + myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; + + myPal.onDeactivate = function() + { + //$.writeln("active"); + } + + myPal.grp.doItBtn.onClick = function () { + var new_comp = myPal.comp.duplicate(); + new_comp.name = myPal.comp.name.replace("##Base##",generateName()); + } + + myPal.layout.layout(true); + myPal.layout.resize(); + myPal.onResizing = myPal.onResize = function () {this.layout.resize();} + + } //if (myPal != null) + return myPal; + } + +//main + +var myPalette = buildUI(this); + +//var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; + +if (parseFloat(app.version) < 8) { + alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); + } else { + if (myPalette != null && myPalette instanceof Window) { + //myPalette.center(); + myPalette.show(); + } +} +} From 53f27f1f8ebba4553c45b01629d8dc26e6ca2bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 16 Mar 2017 11:59:43 -0700 Subject: [PATCH 23/24] Added a couple of functions to check and endforce specific durations for compositions --- jsx/afx_proto_tools.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsx/afx_proto_tools.jsx b/jsx/afx_proto_tools.jsx index 7838c0a..842404a 100644 --- a/jsx/afx_proto_tools.jsx +++ b/jsx/afx_proto_tools.jsx @@ -1 +1 @@ -debug = {} debug.active = true; debug.log = function( string ) { if ( debug.active ){ $.writeln( string ); writeLn( string ); } return; } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function getSelectedProjectItems (){ var items = []; var p = app.project; for ( var i = 1 ; i <= p.numItems ; i ++ ){ var item = p.item(i); if ( item.selected ){ items.push(item); } } return items; } function duplicateSuffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name+"_"+suffix } return true; } function duplicateReplace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name.replace( string, newString ); } return true; } function suffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name+= "_"+suffix } return true; } function replace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name = item.name.replace( string , newString ); } return true; } var items = getSelectedProjectItems (); var comp = getComp ( "720@60_10s" ); var targetFolder = getFolder( "Render" ); for ( i = 0 ; i < items.length ; i ++ ){ var item = items[i]; var newComp =comp.duplicate(); newComp.parentFolder = targetFolder; newComp.name = item.name; newComp.layer(1).replaceSource( item , true ); } //duplicateSuffix(getSelectedProjectItems (),"txtlss"); //suffix(getSelectedProjectItems (),"txtlss"); //replace(getSelectedProjectItems (),"Medium","Large"); //duplicateReplace(getSelectedProjectItems (),"Large", "Small"); \ No newline at end of file +debug = {} debug.active = true; debug.log = function( string ) { if ( debug.active ){ $.writeln( string ); writeLn( string ); } return; } function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function getSelectedProjectItems (){ var items = []; var p = app.project; for ( var i = 1 ; i <= p.numItems ; i ++ ){ var item = p.item(i); if ( item.selected ){ items.push(item); } } return items; } function duplicateSuffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name+"_"+suffix } return true; } function duplicateReplace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; var new_item = item.duplicate(); new_item.name = item.name.replace( string , newString ); } return true; } function suffix( items , suffix ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name+= "_"+suffix } return true; } function replace( items , string , newString ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.name = item.name.replace( string , newString ); } return true; } function checkDuration( items , duration ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; debug.log(item.duration); } } function enforceDuration( items , duration ){ for ( i = 0 ; i < items.length ; i ++ ) { var item = items[i]; item.duration = 5; } } /* var items = getSelectedProjectItems (); var comp = getComp ( "720@60_10s" ); var targetFolder = getFolder( "Render" ); for ( i = 0 ; i < items.length ; i ++ ){ var item = items[i]; var newComp =comp.duplicate(); newComp.parentFolder = targetFolder; newComp.name = item.name; newComp.layer(1).replaceSource( item , true ); } */ //duplicateSuffix(getSelectedProjectItems (),"txtlss"); suffix(getSelectedProjectItems (),"5s"); //replace(getSelectedProjectItems (),"overFootage","KEY"); //duplicateReplace(getSelectedProjectItems (),"next\_", ""); //enforceDuration(getSelectedProjectItems (),5); //checkDuration(getSelectedProjectItems (),5) \ No newline at end of file From 6ad59f9c001e79a3e2d3137d3ab9454728c49da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20V=C3=A1squez=20P=C3=A9rez?= Date: Thu, 16 Mar 2017 12:02:44 -0700 Subject: [PATCH 24/24] Removed scripts with old names, that were already replaced with the right ones --- jsx/MKN_DC_BUMPER_ToolkitScript.jsx | 506 ---------------------- jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx | 1 - jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx | 1 - 3 files changed, 508 deletions(-) delete mode 100755 jsx/MKN_DC_BUMPER_ToolkitScript.jsx delete mode 100644 jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx delete mode 100644 jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx diff --git a/jsx/MKN_DC_BUMPER_ToolkitScript.jsx b/jsx/MKN_DC_BUMPER_ToolkitScript.jsx deleted file mode 100755 index 5123cd7..0000000 --- a/jsx/MKN_DC_BUMPER_ToolkitScript.jsx +++ /dev/null @@ -1,506 +0,0 @@ -{ -///////////////////////////////////////////////////////////////////////// -// -// MAkinE - Disney GEN BUMP Toolkit -// -// ©2017 Jorge Vasquez -// Author: Jorge Vasquez -// -// Version History -// -//////////////////////////////////////////////////////////////////////// - -var tcd_scriptName = "MAkinE - DC GEN BUMP Toolkit "; -var tcd_version = "0.8"; -// -/////////////////////////////Array.indexOf for older JS///////////////////// -//////////////////////////////////////////////////////////////////////// -// Production steps of ECMA-262, Edition 5, 15.4.4.14 -// Reference: http://es5.github.io/#x15.4.4.14 -if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function(searchElement, fromIndex) { - - var k; - - // 1. Let o be the result of calling ToObject passing - // the this value as the argument. - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } - - var o = Object(this); - - // 2. Let lenValue be the result of calling the Get - // internal method of o with the argument "length". - // 3. Let len be ToUint32(lenValue). - var len = o.length >>> 0; - - // 4. If len is 0, return -1. - if (len === 0) { - return -1; - } - - // 5. If argument fromIndex was passed let n be - // ToInteger(fromIndex); else let n be 0. - var n = fromIndex | 0; - - // 6. If n >= len, return -1. - if (n >= len) { - return -1; - } - - // 7. If n >= 0, then Let k be n. - // 8. Else, n<0, Let k be len - abs(n). - // If k is less than 0, then let k be 0. - k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); - - // 9. Repeat, while k < len - while (k < len) { - // a. Let Pk be ToString(k). - // This is implicit for LHS operands of the in operator - // b. Let kPresent be the result of calling the - // HasProperty internal method of o with argument Pk. - // This step can be combined with c - // c. If kPresent is true, then - // i. Let elementK be the result of calling the Get - // internal method of o with the argument ToString(k). - // ii. Let same be the result of applying the - // Strict Equality Comparison Algorithm to - // searchElement and elementK. - // iii. If same is true, return k. - if (k in o && o[k] === searchElement) { - return k; - } - k++; - } - return -1; - }; -} - - - - -//////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////// - -function applyAvatar( item ){ - //$.writeln( item ); - var comp = myPalette.comp; - //$.writeln(comp); - var avatar_targets = [ - comp.layer("Main_Avatar"), - comp.layer("Avatar_Echo_1"), - comp.layer("Avatar_Echo_2") - ]; - //$.writeln(avatar_targets); - - for ( var i = 0 ; i < avatar_targets.length ; i ++ ) - { - avatar_targets[i].replaceSource(item,false); - } -} -function applyPallette( palette_string ){ - var comp = myPalette.comp; - - var color_targets = { - col_title: comp.layer("TITLE")("Effects")("Fill")("Color"), - col_bubble: comp.layer("DONT_TOUCH_bubble")("Effects")("Fill")("Color"), - col_bubble_shadow: comp.layer("DONT_TOUCH_bubble_shadow")("Effects")("Fill")("Color"), - col_logo_bg : comp.layer("DISNEY_LOGO_Bubble_BG")("Effects")("Fill")("Color"), - col_logo_fg: comp.layer("DISNEY_LOGO_Bubble_FG")("Effects")("Fill")("Color"), - col_logo_neutral: comp.layer("DISNEY_LOGO_Bubble_GRAY")("Effects")("Fill")("Color"), - col_logo_accent: comp.layer("DISNEY_LOGO_Bubble_ACCENT")("Effects")("Fill")("Color"), - }; - - for ( var i in color_targets ){ - color_targets[i].setValue(hexToColor(palettes[palette_string][i])); - } -} -function getItem( item_name, item_type ){ - var result = null; - var items = app.project.items; - var names = []; - - for ( i = 1 ; i <= items.length ; i ++ ) - { - var item = items[i]; - var type = item.typeName; - if ( ( type == item_type ) && ( item.name == item_name ) ) - { - result = item; - //$.writeln( item.name ); - } - } - return result; -} -function getFolder( given_name ){ - - result = getItem( given_name, "Folder" ); - - return result; -} -function getComp( given_name ){ - - result = getItem( given_name, "Composition" ); - - return result; -} - -function hexToColor(theHex){ - var r = theHex >> 16; - var g = (theHex & 0x00ff00) >> 8; - var b = theHex & 0xff; - return [r/255,g/255,b/255,1]; -} -function tcd_buildUI(thisObj) { - - if ( getComp("DC_GEN_BUMP_##Base##_5s") == null ) - { - alert("Make sure to have the DC_GEN_BUMP Template project open before running the script"); - return; - } - - if (thisObj instanceof Panel) { - var myPal = thisObj; - } else { - var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); - } - - if (myPal != null) { - - var res = - "group { \ - alignment: ['fill','fill'], \ - alignChildren: ['left','top'], \ - orientation: 'column', \ - match: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - orientation:'column', \ - palette: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - paletteText: StaticText {text:'Piece Palette', alignment: ['left','center']}, \ - paletteOption: DropDownList {alignment: ['fill','center']}, \ - } \ - title: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - titleTxt: StaticText {text:'Show Title', alignment: ['left','center']}, \ - titleString: EditText {text: 'PLACEHOLDER TITLE', alignment: ['fill','center']}, \ - } \ - avatar: Group { \ - alignment: ['fill','top'], \ - alignChildren: ['fill','top'], \ - avatarText: StaticText {text:'Avatar Image', alignment: ['left','center']}, \ - avatarOption: DropDownList {alignment: ['fill','center']}, \ - } \ - } \ - doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ - }"; - //doItBtn: Button {text: 'Customize', alignment: ['right','top']} , \ - - myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); - myPal.comp = getComp("DC_GEN_BUMP_##Base##_5s"); - - myPal.paletteOptionNames = { - Gray : "D", - Gold : "F", - Magenta : "G", - Blue_1 : "C", - Blue_2 : "E", - Blue_3 : "H" - }; - - myPal.populateAvatars = function() - { - myPal.grp.match.avatar.avatarOption.removeAll(); - myPal.avatars = []; - - if ( myPal.avatar_folder != null ) - { - for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ) - { - myPal.avatars.push( myPal.avatar_folder.item(i) ); - //$.writeln(myPal.avatars[i-1]); - myPal.grp.match.avatar.avatarOption.add("item", myPal.avatars[i-1].name); - //$.writeln( myPal.avatar_folder.item(i).name ); - } - } - myPal.grp.match.avatar.avatarOption.selection = myPal.avatars.indexOf ( myPal.comp.layer("Main_Avatar").source ); - } - - myPal.grp = myPal.add(res); - - for ( i in myPal.paletteOptionNames ) { - myPal.grp.match.palette.paletteOption.add("item",i); - } - - //myPal.avatars = []; - - myPal.populateAvatars (); - - myPal.grp.match.palette.paletteOption.selection = 0; - myPal.grp.match.palette.paletteOption.minimumSize.width = myPal.grp.match.palette.paletteOption.preferredSize.width = 75; - - myPal.grp.match.title.titleString.onChange = function () { - //alert("changing text"); - if( myPal.comp == null ) - { - return; - } - app.beginUndoGroup("Change Text"); - var title = myPalette.grp.match.title.titleString.text; - applyShowTitle( title ); - app.endUndoGroup(); - } - myPal.grp.match.palette.paletteOption.onChange = function () { - //alert("changing palette"); - if( myPal.comp == null ) - { - return; - } - app.beginUndoGroup("Change Palette"); - var id = myPal.paletteOptionNames[myPalette.grp.match.palette.paletteOption.selection]; - setBG( id ); - applyPallette( id ); - app.endUndoGroup(); - } - myPal.grp.match.avatar.avatarOption.onChange = function () { - try - { - applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index ] ); - } - catch(err) - { - return; - } - //applyAvatar( myPal.avatars[myPal.grp.match.avatar.avatarOption.selection.index] ); - } - myPal.onDeactivate = function() - { - myPal.populateAvatars (); - } - /* - myPal.grp.match.avatar.avatarOption.onActivate = function () { - myPal.populateAvatars (); - } - */ - /* - //myPal.grp.doItBtn.onClick = function () - */ - myPal.grp.doItBtn.onClick = function () { - var new_comp = myPal.comp.duplicate(); - new_comp.name = myPal.comp.name.replace("##Base##",generateName()); - } - myPal.layout.layout(true); - myPal.layout.resize(); - myPal.onResizing = myPal.onResize = function () {this.layout.resize();} - - } //if (myPal != null) - return myPal; - } -function titleCase(str) { - str = str.toLowerCase().split(' '); - - for(var i = 0; i < str.length; i++){ - str[i] = str[i].split(''); - str[i][0] = str[i][0].toUpperCase(); - str[i] = str[i].join(''); - } - return str.join(' '); -} - -function getTitle(){ - var comp = myPalette.comp; - var title_layer = comp.layer("TITLE"); - var title = title_layer.sourceText.value.text; - - return title - } - -function formatTitle( s ) -{ - title = titleCase( s ); - var exp = new RegExp(" " , 'g'); - title = title.replace(" ",""); - title = title.replace(exp, ''); - - return title; - } -function generateName(){ - var name = getTitle(); - name = formatTitle ( name ) + "_" + genColorCode (); - return name -} -function genColorCode() -{ - var id = String(myPalette.grp.match.palette.paletteOption.selection); - cc = ""; - /* - * - switch ( id ) - { - case "Blue_1": - cc = "BLU1"; - break; - case "Blue_2": - cc = "BLU2"; - break; - case "Blue_3": - cc = "BLU3"; - break; - case "Gray": - cc = "GRY"; - break; - case "Magenta": - cc = "MGN"; - break; - case "Gold": - cc = "GLD" - break; - } - */ - if ( id.search("Blu") == -1 ){ - cc = id.substr(0,3); - } - else - { - cc = id.substr(0,3) + id[5]; - } - return cc; -} -function applyShowTitle( new_title ){ - var comp = myPalette.comp; - var title_layer = comp.layer("TITLE"); - var ctrl_layer = comp.layer("ctrl_bubble"); - title_layer.sourceText.setValue( new_title ); - - width = title_layer.sourceRectAtTime(0, false).width; - var new_scale; - var new_center; - - if ( width >= 1300 ) - { - new_scale = (1500/width)*100; - new_center = [787,540]; - } - else if ( width > 640 ) - { - new_scale = 100; - new_center = [960,540]; - } - else - { - new_scale = 100; - new_center = [1040,540]; - - } - - comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); - comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); - ctrl_layer("Effects")("width")("Slider").setValue(width + 75); -} -function setBG ( id ){ - new_source = myPalette.comp.layer("DC_GEN_BG_"+String(id)).source; - a = myPalette.comp.layer("BG"); - a.replaceSource(new_source,false) -} -var paletteOptions = ["C","D","E","F","G","H"]; - -var colors = { - gray : 0x2C313B, - purple : 0x7c36e1, - purple_dark : 0x5525ab, - yellow : 0xfffa38, - yellow_dark : 0xBBB900, - magenta : 0xE74DB7, - magenta_dark : 0xA93886, - cyan : 0x1BF0FF, - cyan_darl : 0x128DA6, - aqua_dark : 0x238573, - aqua : 0x288492, - aqua_light : 0x3ED8BB, - bluish_gray : 0x2A3B52 -} - -var palettes = { - A : { - col_title: colors.magenta, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: 0x19EDFF - }, - C : { - col_title: colors.magenta, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: colors.purple - }, - D : { - col_title: colors.bluish_gray, - col_bubble: colors.aqua_light, - col_bubble_shadow: colors.aqua_dark, - col_logo_bg : colors.yellow, - col_logo_fg: colors.magenta, - col_logo_neutral: colors.gray, - col_logo_accent: colors.purple - }, - E : { - col_title: colors.aqua, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.gray, - col_logo_accent: colors.magenta - }, - F : { - col_title: colors.cyan, - col_bubble: colors.magenta, - col_bubble_shadow: colors.magenta_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.cyan, - col_logo_neutral: colors.gray, - col_logo_accent: colors.magenta - }, - G : { - col_title: colors.yellow, - col_bubble: colors.purple, - col_bubble_shadow: colors.purple_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.cyan, - col_logo_accent: colors.gray - }, - H: { - col_title: colors.purple, - col_bubble: colors.yellow, - col_bubble_shadow: colors.yellow_dark, - col_logo_bg : colors.purple, - col_logo_fg: colors.yellow, - col_logo_neutral: colors.gray, - col_logo_accent: 0xE74DB7 - } -} - -//main - -var myPalette = tcd_buildUI(this); -var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; - -if (parseFloat(app.version) < 8) { - alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); - } else { - if (myPalette != null && myPalette instanceof Window) { - //myPalette.center(); - myPalette.show(); - } -} -} diff --git a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx deleted file mode 100644 index 1f2b2ed..0000000 --- a/jsx/MKN_DC_EP_Horiz_ToolkitScript.jsx +++ /dev/null @@ -1 +0,0 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); name = formatTitle ( name ) + "_" + genColorCode (); return name } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 25; myPal.dayMargin = 90; myPal.extraVerticalOffset = 37; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ) { var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ) { myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.75) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } //var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3).toUpperCase(); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; //var value = short_day + " " + month + " " + day_of_week + date ; var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.extra.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { //var new_comp = myPal.comp.duplicate(); //new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file diff --git a/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx b/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx deleted file mode 100644 index fff1cee..0000000 --- a/jsx/MKN_DC_GEN_EP_Horiz_ToolkitScript.jsx +++ /dev/null @@ -1 +0,0 @@ -{ ///////////////////////////////////////////////////////////////////////// // // MAkinE - Disney GEN EP Customizer // // ©2017 Jorge Vasquez // Author: Jorge Vasquez // // Version History // //////////////////////////////////////////////////////////////////////// var tcd_scriptName = "MAkinE - Disney GEN EP Customizer "; var tcd_version = "0.1"; /////////////////////////////Array.indexOf for older JS///////////////////// // Production steps of ECMA-262, Edition 5, 15.4.4.14 // Reference: http://es5.github.io/#x15.4.4.14 if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var k; // 1. Let o be the result of calling ToObject passing // the this value as the argument. if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let lenValue be the result of calling the Get // internal method of o with the argument "length". // 3. Let len be ToUint32(lenValue). var len = o.length >>> 0; // 4. If len is 0, return -1. if (len === 0) { return -1; } // 5. If argument fromIndex was passed let n be // ToInteger(fromIndex); else let n be 0. var n = fromIndex | 0; // 6. If n >= len, return -1. if (n >= len) { return -1; } // 7. If n >= 0, then Let k be n. // 8. Else, n<0, Let k be len - abs(n). // If k is less than 0, then let k be 0. k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); // 9. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). // This is implicit for LHS operands of the in operator // b. Let kPresent be the result of calling the // HasProperty internal method of o with argument Pk. // This step can be combined with c // c. If kPresent is true, then // i. Let elementK be the result of calling the Get // internal method of o with the argument ToString(k). // ii. Let same be the result of applying the // Strict Equality Comparison Algorithm to // searchElement and elementK. // iii. If same is true, return k. if (k in o && o[k] === searchElement) { return k; } k++; } return -1; }; } //////////////////////////////////////////////////////////////////////// function getItem( item_name, item_type ){ var result = null; var items = app.project.items; var names = []; for ( i = 1 ; i <= items.length ; i ++ ) { var item = items[i]; var type = item.typeName; if ( ( type == item_type ) && ( item.name == item_name ) ) { result = item; //$.writeln( item.name ); } } return result; } function getFolder( given_name ){ result = getItem( given_name, "Folder" ); return result; } function getComp( given_name ){ result = getItem( given_name, "Composition" ); return result; } function hexToColor(theHex){ var r = theHex >> 16; var g = (theHex & 0x00ff00) >> 8; var b = theHex & 0xff; return [r/255,g/255,b/255,1]; } function titleCase(str) { str = str.toLowerCase().split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].split(''); str[i][0] = str[i][0].toUpperCase(); str[i] = str[i].join(''); } return str.join(' '); } function getTitle(){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var title = title_layer.sourceText.value.text; return title } function formatTitle( s ){ title = titleCase( s ); var exp = new RegExp(" " , 'g'); title = title.replace(" ",""); title = title.replace(exp, ''); return title; } function generateName(){ var name = getTitle(); var extra = genExtraCode (); var date = genDateCode () ; if ( date != "" ) { date = "_" + date; } if ( extra != "undefined" ) { extra = "_" + extra; } else { extra = ""; } name = formatTitle ( name ) + extra + date + "_" +genTimeCode (); return name } function genExtraCode(){ if (!myPalette.grp.opt.extraSelected.value){ return "undefined"; } value = String(myPalette.grp.extra.extra.extraString.text); return value; } function genDateCode(){ var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3); if (!myPalette.grp.opt.dateSelected.value){ return day; } var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3); var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection); var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; var value = day + month + day_of_week + date ; return value } function genTimeCode(){ var value = String(myPalette.grp.time.time_slot.timeOption.selection); if( myPalette.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPalette.grp.time.time_slot.nightTime.value == true ) { value+="p"; } return value.replace(":",".") } function genColorCode(){ var id = String(myPalette.grp.match.title.paletteOption.selection); cc = ""; switch ( id ) { case "Blue_1": cc = "BLU1"; break; case "Blue_2": cc = "BLU2"; break; case "Blue_3": cc = "BLU3"; break; case "Gray": cc = "GRY"; break; case "Magenta": cc = "MGN"; break; case "Gold": cc = "GLD" break; } return cc; } function applyShowTitle( new_title ){ var comp = myPalette.comp; var title_layer = comp.layer("TITLE"); var ctrl_layer = comp.layer("ctrl_bubble"); title_layer.sourceText.setValue( new_title ); width = title_layer.sourceRectAtTime(0, false).width; var new_scale; var new_center; if ( width >= 1300 ) { new_scale = (1500/width)*100; new_center = [787,540]; } else if ( width > 640 ) { new_scale = 100; new_center = [960,540]; } else { new_scale = 100; new_center = [1040,540]; } comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center); comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]); ctrl_layer("Effects")("width")("Slider").setValue(width + 75); } var colors = { gray : 0x2C313B, purple : 0x7c36e1, purple_dark : 0x5525ab, yellow : 0xfffa38, yellow_dark : 0xBBB900, magenta : 0xE74DB7, magenta_dark : 0xA93886, cyan : 0x1BF0FF, cyan_darl : 0x128DA6, aqua_dark : 0x238573, aqua : 0x288492, aqua_light : 0x3ED8BB, bluish_gray : 0x2A3B52 } function buildUI(thisObj) { if ( getComp("DC_GEN_EP_Horiz_##Base##_10s") == null ) { alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script"); return; } if (thisObj instanceof Panel) { var myPal = thisObj; } else { var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true}); } if (myPal != null) { /* timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \ daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \ */ var res = "group { \ alignment: ['fill','fill'], \ alignChildren: ['left','top'], \ orientation: 'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ title: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \ titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \ } \ } \ opt: Group { \ dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \ extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \ socialSelected: Checkbox { text: 'Ears Bubble', alignment: ['left','center']}, \ },\ time: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ time_slot: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ timeText: StaticText {text:'Time', alignment: ['left','center']}, \ timeOption: DropDownList {alignment: ['fill','center']}, \ half: Checkbox {text:':30', alignment: ['left','center']}, \ nightTime: Checkbox {text:'PM', alignment: ['left','center']}, \ } \ } \ tunein: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \ dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ dayShort: Checkbox {text:'Short', alignment: ['left','center']}, \ } \ } \ tuneindate: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ day: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ monthText: StaticText {text:'Month', alignment: ['left','center']}, \ monthOption: DropDownList {alignment: ['fill','center']}, \ dateText: StaticText {text:'Date', alignment: ['left','center']}, \ dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \ } \ } \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ extra: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \ extraString: EditText {text:'next',alignment: ['fill','center']}, \ } \ } \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ orientation:'column', \ social: Group { \ alignment: ['fill','top'], \ alignChildren: ['fill','top'], \ socialText: StaticText {text:'Ear Bubble Text', alignment: ['left','center']}, \ socialString: EditText {text:'#EARSBUBBLE',alignment: ['fill','center']}, \ } \ } \ doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \ }"; myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080"); myPal.comp = getComp("DC_GEN_EP_Horiz_##Base##_10s"); myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL"); myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL"); myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL"); myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL"); myPal.day_layer = myPal.comp.layer("DAY"); myPal.time_layer = myPal.comp.layer("TIME"); myPal.extra_layer = myPal.comp.layer("EXTRA"); myPal.title_layer = myPal.comp.layer("TITLE"); myPal.social_layer = myPal.comp.layer("SOCIAL"); myPal.extra_layers = [ myPal.comp.layer("EXTRA"), myPal.comp.layer("bubble_connect_extra"), myPal.comp.layer("bubble_extra"), myPal.comp.layer("bubble_extra_overlap") ]; myPal.social_layers = [ myPal.comp.layer("SOCIAL"), myPal.comp.layer("Bubble_EARS") ]; myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow"]; myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ]; myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"]; myPal.timeMargin = 30; myPal.dayMargin = 95; myPal.extraVerticalOffset = 40; myPal.paletteOptionNames = { Gray : "D", Gold : "F", Magenta : "G", Blue_1 : "C", Blue_2 : "E", Blue_3 : "H" }; //myPal Methods --> myPal.updateFont = function ( opt ){ var animators = [ myPal.day_layer("Text")("Animators")("ordinal"), myPal.day_layer("Text")("Animators")("ordinal_offset"), myPal.day_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.time_layer("Text")("Animators")("smaller"), myPal.extra_layer("Text")("Animators")("smaller") ]; for ( var i = 0; i < animators.length ; i ++ ) { animators[i].enabled = opt; } var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); if( ordinal == "nd" ){ myPal.day_layer("Text")("Animators")("nd").enabled = true; } else { myPal.day_layer("Text")("Animators")("nd").enabled = false; } } myPal.setFontSize = function ( value ){ myPal.day_layer.sourceText.value.fontSize = value; myPal.time_layer.sourceText.value.fontSize = value; myPal.extra_layer.sourceText.value.fontSize = value; } myPal.updateBars = function(){ var time_width = myPal.time_layer.sourceRectAtTime(0, false).width; var day_width = myPal.day_layer.sourceRectAtTime(0, false).width; var extra_width = myPal.extra_layer.sourceRectAtTime(0, false).width; myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25)); myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) ); myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin,0,0]); myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraVerticalOffset,0]); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } myPal.getOrdinal = function(n){ var ordinal = "th"; var cyphers = String(n); var last_digit = parseInt(cyphers[cyphers.length-1]); if ( (n < 4) || ( n > 20 ) ){ if ( last_digit == "1"){ ordinal = "st"; } else if( last_digit == "2"){ ordinal = "nd"; } else if( last_digit == "3"){ ordinal = "rd"; } } return ordinal; } myPal.getDate = function(){ var date; return date; } myPal.updateTime = function(){ var value = String(myPal.grp.time.time_slot.timeOption.selection); if( myPal.grp.time.time_slot.half.value == true ) { value+=":30"; } if( myPal.grp.time.time_slot.nightTime.value == true ) { value+="p"; } myPal.applyTime( value ); } myPal.updateDay = function(){ var value = String(myPal.grp.tunein.day.dayOption.selection); myPal.applyDay( value ); } myPal.updateDate = function(){ if (!myPal.grp.opt.dateSelected.value){ //myPal.updateDay(); return; } var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3); var day = String(myPal.grp.tunein.day.dayOption.selection); var month = String(myPal.grp.tuneindate.day.monthOption.selection); var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection); var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 ); var date = ordinal; if ( myPal.grp.tunein.day.dayShort.value ){ day = short_day; } var value = day + " " + month + " " + day_of_week + date ; myPal.applyDay( value ); //myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } myPal.updateExtra = function(){ if (!myPal.grp.opt.extraSelected.value){ } else { var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase(); myPal.applyExtra( value ); } } myPal.updateTitle = function(){ var value = String( myPal.grp.title.title.titleString.text ).toUpperCase(); myPal.applyTitle( value ); } myPal.updateSocial = function(){ var value = String( myPal.grp.social.social.socialString.text ); myPal.applySocial( value ); } myPal.updateText = function(){ myPal.updateFont( myPal.grp.opt.dateSelected.value ); if( myPal.grp.opt.dateSelected.value ){ myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0); } else { myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100); } } myPal.updateVisibility = function(){ for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ ) { myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ; } for ( var i = 0 ; i < myPal.social_layers.length ; i ++ ) { myPal.social_layers[i].enabled = myPal.grp.opt.socialSelected.value ; } } myPal.updateAll = function (){ myPal.updateTitle(); myPal.updateTime(); myPal.updateDay(); myPal.updateDate(); myPal.updateExtra(); myPal.updateSocial(); myPal.updateText(); myPal.updateBars(); myPal.updateVisibility(); } myPal.applyTime = function( s ){ app.beginUndoGroup("applyTime"); //myPal.updateBars(); var singleton = !((s.search(":") != -1) || (s.search("p") != -1)); myPal.time_layer("Text")("Animators")("singleton").enabled = singleton; if( singleton ){ s = s+"["; } myPal.time_layer.sourceText.setValue( s ); app.endUndoGroup(); }; myPal.applyDay = function( s ){ app.beginUndoGroup("applyDay"); myPal.day_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); }; myPal.applyExtra = function( s ){ app.beginUndoGroup("applyExtra"); myPal.extra_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applySocial = function( s ){ app.beginUndoGroup("applySocial"); myPal.social_layer.sourceText.setValue( s ); //myPal.updateBars(); app.endUndoGroup(); } myPal.applyTitle = function( s ){ app.beginUndoGroup("applyTitle"); myPal.title_layer.sourceText.setValue( s ); width = myPal.title_layer.sourceRectAtTime(0, false).width; var new_scale; if ( width >= 270 ) { new_scale = 270/width*100 ; } else { new_scale = 100; } myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]); //myPal.updateBars(); app.endUndoGroup(); } //myPal Methods <-- myPal.grp = myPal.add(res); //populate days_of the week for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) { myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]); } myPal.grp.tunein.day.dayOption.selection = 0; myPal.grp.tunein.day.dayOption.preferredSize.width = 75; //populate time_slots for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) { myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]); } myPal.grp.time.time_slot.timeOption.selection = 0; myPal.grp.time.time_slot.timeOption.preferredSize.width = 75; //populate moths for ( var i = 0 ; i < myPal.months.length; i ++ ) { myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]); } myPal.grp.tuneindate.day.monthOption.selection = 0; myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75; //populate days_of month for ( var i = 1 ; i <= 31; i ++ ) { myPal.grp.tuneindate.day.dateOption.add("item", i ); } myPal.grp.tuneindate.day.dateOption.selection = 0; myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75; //set initial visibility options myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = myPal.grp.social.enabled = false; // control possible options myPal.grp.opt.dateSelected.onClick = function(){ myPal.grp.tuneindate.enabled = this.value; myPal.grp.tunein.day.dayShort.enabled= this.value; myPal.updateAll(); } myPal.grp.opt.extraSelected.onClick = function(){ myPal.grp.extra.enabled = this.value; myPal.updateAll(); } myPal.grp.opt.socialSelected.onClick = function(){ myPal.grp.social.enabled = this.value; myPal.updateAll(); } myPal.grp.tunein.day.dayShort.onClick= function(){ writeLn(myPal.grp.tunein.day.dayShort.value); myPal.updateAll(); } //Assign Methods to UI //Update on every UI change/click myPal.grp.social.social.socialString.onChange = myPal.grp.title.title.titleString.onChange = myPal.grp.extra.extra.extraString.onChange = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll; myPal.onDeactivate = function() { //$.writeln("active"); } myPal.grp.doItBtn.onClick = function () { var new_comp = myPal.comp.duplicate(); new_comp.name = myPal.comp.name.replace("##Base##",generateName()); } myPal.layout.layout(true); myPal.layout.resize(); myPal.onResizing = myPal.onResize = function () {this.layout.resize();} } //if (myPal != null) return myPal; } //main var myPalette = buildUI(this); //var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders; if (parseFloat(app.version) < 8) { alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName); } else { if (myPalette != null && myPalette instanceof Window) { //myPalette.center(); myPalette.show(); } } } \ No newline at end of file