Advertisement
FlexLetsPlay

Intro einfügen

Oct 31st, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #target aftereffects
  2. var mainComp = app.project.activeItem;
  3.  
  4. function MainSetup() {
  5.     if (mainComp == null || !(mainComp instanceof CompItem)) {
  6.         alert("No Comp selected");
  7.         return;
  8.     }
  9.    
  10.     InsertIntro(); //Fügt das Intro ein, und schneidet alles passend
  11.    
  12.     SelectMainComp();
  13.     DeleteKeysOnOtherLayers(); //Löscht alle Marker auf allen anderen als der oberen ebene. Dies bringt rein der übersicht etwas, da sonst hunderte marker angezeigt werden mit der zeit
  14. }
  15.  
  16. function DeleteKeysOnOtherLayers() {
  17.     var ignoreLayer = GetTopMostLayer("premComp").index;
  18.     for(var i = 1; i <= mainComp.layers.length; i++) {
  19.         if(i !== ignoreLayer && mainComp.layers[i].name == "premComp") {
  20.             for(var j = mainComp.layers[i].marker.numKeys; j >= 1; j--) {
  21.                 mainComp.layers[i].marker.removeKey(j);
  22.             }
  23.         }
  24.     }
  25. }
  26.  
  27. function GetTopMostLayer(startOfName) {
  28.     for (var i = 1; i <= mainComp.layers.length; i++) {
  29.         if (mainComp.layers[i].name.substring(0, startOfName.length) == startOfName) {
  30.             return mainComp.layers[i];
  31.         }
  32.     }
  33.     return null;
  34. }
  35.  
  36. function GetTopMostActiveLayer(startOfName) {
  37.     for (var i = 1; i <= mainComp.layers.length; i++) {
  38.         if (mainComp.layers[i].active && mainComp.layers[i].name.substring(0, startOfName.length) == startOfName) {
  39.             return mainComp.layers[i];
  40.         }
  41.     }
  42.     return null;
  43. }
  44.  
  45. function InsertFootage(comp, name) {
  46.     var layer = comp.layers.add(GetFootageByName(name));
  47.     layer.startTime = comp.time;
  48. }
  49.  
  50. function InsertIntro(name) {
  51.        
  52.     var newPremLayer = GetTopMostActiveLayer("premComp");
  53.        
  54.     var curInpoint = newPremLayer.inPoint;
  55.     var curOutpoint = newPremLayer.outPoint;
  56.     var curStarttime = newPremLayer.startTime;
  57.    
  58.     newPremLayer.startTime = 0;
  59.  
  60.     newPremLayer.inPoint = newPremLayer.inPoint + (mainComp.time - curInpoint) - 1;
  61.  
  62.     newPremLayer.startTime = curStarttime - (mainComp.time - curInpoint) + 6;
  63.    
  64.     mainComp.time = curInpoint;
  65.    
  66.     InsertFootage(mainComp, "intro.avi");
  67. }
  68.  
  69. function GetFootageByName(name) {
  70.     for (var i = 1; i <= app.project.items.length; i++) {
  71.         if (app.project.items[i].name == name) {
  72.             return app.project.items[i];
  73.         }
  74.     }
  75.     return null;
  76. }
  77.  
  78. function SelectMainComp() {
  79.     for (var i = 1; i <= app.project.items.length; i++) {
  80.         if(app.project.items[i] !== mainComp)
  81.             app.project.items[i].selected = false;
  82.         else
  83.             mainComp.selected = true;
  84.     }
  85. }
  86.  
  87. app.beginUndoGroup("Youtube - Insert Intro");
  88. MainSetup();
  89. app.endUndoGroup();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement