Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #target aftereffects
- var mainComp = app.project.activeItem;
- premComp = null;
- function MainSetup() {
- if (mainComp == null || !(mainComp instanceof CompItem)) {
- alert("No Composition selected");
- return;
- }
- var premCompName = mainComp.layers[1].name;
- premComp = GetFootageByName(premCompName);
- premComp.name = "premComp"; //das ist die Komposition die ich aus Premiere importiere
- app.beginUndoGroup("Youtube - Main Setup"); //dient dazu um das Script mit einem STRG+Z wieder rückgängig machen zu können
- StretchMainComp(); //vergrößerte die dauer der Hauptkomposition auf (Längste video datei + 5 minuten)
- RenameFootage(); //umnennen der Kamera und Gameplay dateien um sie später einfacher wieder zu finden in anderen Skripten
- }
- // Main Setup ist in 2 teile aufgeteilt, weil ich ein Paar sachen mache bevor ich das Fenster mit der auswahl von Gameplay/Kamera öffne
- function MainSetup2() {
- CreateFolders(); // erstellt ordner im Project
- ImportNeccesaryFiles(); //importiert dateien wie Intro, outro etc..
- MinecraftResize(); //Passt die größe für mein Minecraft Video an, da ich dieses nicht genau in 1920x1080 aufnehme
- SelectMainComp(); //Skripte verändern manchmal die ausgewählte Komposition, deswegen setzte auch die Auswahl immer wieder auf die Hauptkomposition zurück
- InsertMiniintro(); // Einfügen meines "miniintros", ein kleines aufploppen meines Logos am anfang eines videos
- SelectMainComp(); //wieder die Hauptkomposition auswählen
- app.endUndoGroup(); //ende der "Rückgängig"-Funktion
- }
- function CreateFolders() {
- app.project.items.addFolder("memeFiles");
- app.project.items.addFolder("editFiles");
- }
- function InsertMiniintro() {
- var layer = mainComp.layers.add(GetFootageByName("miniintro.avi"));
- layer.startTime = 2.5;
- ShowBigCam(0, true);
- ShowBigCam(2.5, false);
- ShowBlurredGame(0, false);
- ShowBlurredGame(2.5, true);
- ShowBlurredGame(5.5, false);
- }
- // Dieses Fenster ist die Auswahl des Gameplays / Kamera zur späteren umbenennung
- function CreateWindow(thisObj) {
- function CreateWindowUI(thisObj) {
- var myPanel = (thisObj instanceof Panel) ? thisObj : new Window("palette", "Panel Name", [0, 0, 300, 100]);
- var dropdownList = "";
- for (var i = 1; i <= app.project.items.length; i++) {
- dropdownList += "'" + app.project.items[i].name + "'";
- if (i < app.project.items.length) dropdownList += ",";
- }
- res = "group{orientation:'column', alignment:['fill', 'fill'], alignChildren:['fill', 'fill'],\
- myGroup: Group{orientation:'column', alignment:['fill', 'fill'], alignChildren:['fill', 'fill'],\
- myStaticText: StaticText{text:'Camera'},\
- dropdownComp: DropDownList{properties:{items:[" + dropdownList + "]}},\
- myStaticText2: StaticText{text:'Gameplay'},\
- dropdownComp2: DropDownList{properties:{items:[" + dropdownList + "]}},\
- btnMain: Button{text:'OK'},\
- },\
- }"
- // Adds resource string to panel
- myPanel.grp = myPanel.add(res);
- // DropDownList default selection
- myPanel.grp.myGroup.dropdownComp.selection = 0; // Dropdown index starts at 0
- myPanel.grp.myGroup.dropdownComp2.selection = 0; // Dropdown index starts at 0
- // Assign function to UI elements
- myPanel.grp.myGroup.btnMain.onClick = function() {
- var cameraFootage = GetFootageByName(myPanel.grp.myGroup.dropdownComp.selection.text);
- var gameplayFootage = GetFootageByName(myPanel.grp.myGroup.dropdownComp2.selection.text);
- myPanel.close();
- app.beginUndoGroup("Youtube - Main Setup 2");
- cameraFootage.name = "Camera";
- gameplayFootage.name = "Gameplay";
- MainSetup2();
- app.endUndoGroup();
- };
- // Setup panel sizing and make panel resizable
- myPanel.layout.layout(true);
- myPanel.grp.minimumSize = myPanel.grp.size;
- myPanel.layout.resize();
- myPanel.onResizing = myPanel.onResize = function() {
- this.layout.resize();
- }
- return myPanel;
- }
- // Build script panel
- var myScriptPal = CreateWindowUI(thisObj);
- if ((myScriptPal != null) && (myScriptPal instanceof Window)) {
- myScriptPal.center();
- myScriptPal.show();
- }
- }
- function ImportNeccesaryFiles() {
- var editFolder = GetFootageByName ("editFiles");
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\bell.wav"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\intro.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\outro.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\like.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\ScreenWipe.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\waterdrop.mp3"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\Like.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\subscribe.avi"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\##SubCommiDesTages.png"))).parentFolder = editFolder;
- app.project.importFile(new ImportOptions(File("D:\\Videos\\Recordings\\EDIT\\miniintro.avi"))).parentFolder = editFolder;
- }
- function RenameFootage() {
- CreateWindow(this);
- }
- function StretchMainComp() {
- var maxFound = 0;
- for(var i = 1; i < app.project.items.length; i++){
- if(app.project.items[i] != null && app.project.items[i].duration != null && app.project.items[i] != mainComp) {
- maxFound = Math.max(maxFound, app.project.items[i].duration);
- }
- }
- mainComp.duration = maxFound + (5 * 60); //longest of all recordings + 5 minuten
- }
- function MinecraftResize() {
- // Minecraft resizing if needed
- if (confirm("Is this a Minecraft video?", true, "Minecraft resizing")) {
- GetTopMostActiveLayerInComp(premComp, "Gameplay").scale.setValue([94.1, 100, 100]);
- }
- }
- // Diese Funktion Holt mit den Obersten Aktiven Layer in einer Komposition, so kann ich egal wo ich gerade bin, immer den AKTIVEN layer bearbeiten
- function GetTopMostActiveLayerInComp(comp, startOfName) {
- for (var i = 1; i <= comp.layers.length; i++) {
- if (comp.layers[i].active && comp.layers[i].name.substring(0, startOfName.length) == startOfName) {
- return comp.layers[i];
- }
- }
- return null;
- }
- // Erstellt einen Keyframe
- function CreateKeyframe(property, value, time) {
- property.setValueAtTime(time, value);
- property.setInterpolationTypeAtKey(property.nearestKeyIndex(time), KeyframeInterpolationType.HOLD, KeyframeInterpolationType.HOLD);
- }
- function ShowBigCam(time, big) {
- var camLayer = GetTopMostActiveLayerInComp(premComp, "Camera");
- var posProp = camLayer.position;
- var rotProp = camLayer.rotation;
- var scaProp = camLayer.scale;
- if (big == true) {
- CreateKeyframe(posProp, [400, 380, 0], time);
- CreateKeyframe(rotProp, -10, time);
- CreateKeyframe(scaProp, [60,60,100], time);
- } else {
- CreateKeyframe(posProp, [190, 170, 0], time);
- CreateKeyframe(rotProp, 0, time);
- CreateKeyframe(scaProp, [31,31,100], time);
- }
- }
- function ShowBlurredGame(time, blurred) {
- var gameLayer = GetTopMostActiveLayerInComp(premComp, "Gameplay");
- gameLayer.Effects.addProperty("ADBE Gaussian Blur 2");
- var prop = gameLayer.Effects.property("ADBE Gaussian Blur 2").property("ADBE Gaussian Blur 2-0001");
- if (blurred == true)
- CreateKeyframe(prop, 100, time);
- else
- CreateKeyframe(prop, 0, time);
- }
- function GetFootageByName(name) {
- for (var i = 1; i <= app.project.items.length; i++) {
- if (app.project.items[i].name == name) {
- return app.project.items[i];
- }
- }
- return null;
- }
- function SelectMainComp() {
- for (var i = 1; i <= app.project.items.length; i++) {
- if(app.project.items[i] !== mainComp)
- app.project.items[i].selected = false;
- else
- mainComp.selected = true;
- }
- }
- MainSetup();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement