Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.30 KB | None | 0 0
  1. /**
  2. *Find and rig layers
  3.  
  4. */
  5. fun();
  6. function fun(){
  7.  
  8. var searchWord = "con-text";
  9.  
  10. var maxSlides = 150;
  11. var maxElements = 30;
  12. var xShift = 1;
  13. var yShift = 1;
  14. var colorHere = 0;
  15.  
  16. app.beginUndoGroup("Find and ColorControl text");
  17.  
  18. var ControllerComp;
  19. for (var i = 1; i <= app.project.numItems; i ++) {
  20. if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Controller')) {
  21. ControllerComp = app.project.item(i);
  22. break;
  23. }
  24. }
  25.  
  26. // if there is no Controller comp - create one:
  27. if (!ControllerComp || !(ControllerComp instanceof CompItem)){
  28. // create "Controller" composition
  29. app.project.items.addComp('Controller', 1280, 720, 1, 5, 25);
  30. // alert("Comp Created"); // message window about comp created
  31. }
  32.  
  33. for (var i = 1; i <= app.project.numItems; i ++) {
  34. if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Controller')) {
  35. ControllerComp = app.project.item(i);
  36. break;
  37. }
  38. }
  39.  
  40.  
  41. //Work with selected composition only
  42. for (var k = 1; k <= app.project.numItems; k++){
  43. if ((app.project.item(k).selected) && (app.project.item(k) instanceof CompItem)) {
  44.  
  45. // app.project.item(k).height = 2304; //change height if comp is not full hd ratio
  46.  
  47. var myLayers = app.project.item(k).layers;
  48.  
  49. for (var i = 1; i <= myLayers.length; i ++) {
  50.  
  51. var layerName = myLayers[i].name;
  52.  
  53. for (var f = 1; f <= maxSlides; f ++) { // first number in search word
  54. for (var s = 1; s <= maxElements; s ++) { // second number in search word
  55.  
  56.  
  57. if (layerName === (searchWord + f + "." + s)){
  58.  
  59. var CurrLayer = myLayers[i]; // select curr layer
  60.  
  61. // CurrLayer.property("Layer Styles").enabled = false; //enable/disable some property
  62. // 1. Remove templater if layer should be locked
  63. /* if (CurrLayer.effect("Templater Settings")){
  64. //deleteTemplater Effect of this layer as we will attach to copy
  65. CurrLayer.Effects.property("Templater Settings").remove();
  66. }
  67.  
  68.  
  69. if (!CurrLayer.effect("Templater Settings")){
  70. //add Templater Effect to this layer ONLY if there is NO templater YET
  71. CurrLayer.Effects.addProperty("Templater Settings");
  72. }
  73. //if need to RIG adjustments
  74. CurrLayer.effect("Templater Settings")("Scale factor").setValue(85);
  75. // CurrLayer.effect("Templater Settings")("Fit Image Style").setValue(1);
  76. CurrLayer.effect("Templater Settings")("Initialize to center").setValue(1);
  77. /* // Timing settings
  78. CurrLayer.effect("Templater Settings")("Comp Ends at Out Point").setValue(1);
  79. CurrLayer.effect("Templater Settings")("Preserve Start").setValue(1);
  80. CurrLayer.effect("Templater Settings")("Preserve End").setValue(1);
  81. */
  82.  
  83. var colorLayers = ControllerComp.layers; // layers in color comp
  84. for (var c = 1; c <= colorLayers.length; c ++) {
  85. var colorName = colorLayers[c].name;
  86. if (colorName === ("color" + f + "." + s)){ // check if layer is already present
  87. colorHere = 1; // if present
  88. break;
  89. } else {
  90. colorHere=0; // if not
  91. }
  92. }
  93.  
  94. if (colorHere == 0){ // Add color layer if no such number yet
  95. ControllerComp.layers.addSolid([0,1,1], "color", 40, 40, 1, 5);
  96. solidLayer = ControllerComp.layer("color");
  97. solidLayer.name = "color" + f + "." + s;
  98. solidLayer.position.setValue([50*xShift, 55*yShift]);
  99. solidLayer.Effects.addProperty("Templater Settings");
  100. var solidEffect = solidLayer.Effects.addProperty("ADBE Color Control");
  101. solidLayer.effect("Color Control")("Color").expression = "sampleImage(anchorPoint, [1,1], true, time)";
  102.  
  103.  
  104. //color layer shift
  105. xShift++;
  106. if (xShift==11) {
  107. yShift++;
  108. xShift=1;
  109. }
  110.  
  111. }
  112.  
  113. var textLayers = ControllerComp.layers; // check layers in Controller comp
  114. for (var c = 1; c <= textLayers.length; c ++) {
  115. var textName = textLayers[c].name;
  116. if (textName === ("text" + f + "." + s)){ // check if layer is already present
  117. textHere = 1; // if present
  118. break;
  119. } else {
  120. textHere=0; // if not
  121. }
  122. }
  123.  
  124. if (textHere==0){ //add text if no such number yet
  125. ControllerComp.layers.addText("text" + f + "." + s);
  126. newTextLayer = ControllerComp.layer("text" + f + "." + s);
  127. newTextLayer.name = "text" + f + "." + s;
  128. newTextLayer.Effects.addProperty("Templater Settings");
  129. }
  130.  
  131.  
  132. if (!CurrLayer.Effects.property("ADBE Fill")){
  133. var myEffect = CurrLayer.Effects.addProperty("ADBE Fill");
  134. }
  135. CurrLayer.effect("Fill")("Color").expression = "comp('Controller').layer('color"+ f + "." + s +"').effect('Color Control')('Color')"; // attach color
  136. CurrLayer.name= "con-text"+ f + "." + s; // rename layer to different name (if will be with templater)
  137. // CurrLayer.locked = true; // lock this layer if setting 1. (templater is removed)
  138.  
  139. // set_scale(k, CurrLayer); // call function to set scale
  140.  
  141. CurrLayer.text.sourceText.expression = "comp('Controller').layer('text"+ f + "." + s +"').text.sourceText"; // attach source to text
  142.  
  143. }
  144. }
  145. }
  146. }
  147.  
  148. }
  149. }
  150.  
  151. app.endUndoGroup();
  152.  
  153. // app.executeCommand(app.findMenuCommandId("Save a Copy As CC (13)..."));
  154.  
  155.  
  156. }
  157.  
  158. function set_scale(k, CurrLayer){
  159. if (!CurrLayer.Effects.property("Slider Control")){
  160. var myEffect = CurrLayer.Effects.addProperty("Slider Control");
  161. }
  162. var text_name = CurrLayer.name;
  163. text_w =CurrLayer.sourceRectAtTime(2, false).width; // text width
  164. comp_w =app.project.item(k).width; // current comp width
  165. sliderPos = text_w*100/comp_w; // calculate slider default value
  166. app.project.item(k).layer(text_name).effect("Slider Control")("Slider").setValue(sliderPos); //define slider to control
  167. // set default Value to slider
  168. /*
  169. var def_scale_x = CurrLayer.transform.scale[0];
  170. var def_scale_y = CurrLayer.transform.scale[1];
  171. var ratio_scale = def_scale_y/def_scale_x;
  172. */
  173. // set expression for Scale
  174. CurrLayer.transform.scale.expression = "txt = thisComp.layer('"+ text_name+"'); txt_w = txt.sourceRectAtTime(time,true).width; comp_w=thisComp.width; N=thisComp.layer('"+ text_name+"').effect('Slider Control')('Slider').value/100; max=comp_w*N; if (txt_w>max){x=max*100/txt_w;} else {x=100;} y=x; [x,y]";
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement