Updated output name logic and fixed folder sorting

This commit is contained in:
Kyle Harter
2026-09-02 18:25:48 -04:00
parent b8c15678a1
commit 4e823ea6fd
+21 -39
View File
@@ -23,7 +23,7 @@
//@include "../library/OS.jsx"; //@include "../library/OS.jsx";
//@include "../library/json2.js" //@include "../library/json2.js"
var versionNumber = '0.1.1'; var versionNumber = '0.1.2';
var scriptName = "Show Render Helper" + ' v' + versionNumber; var scriptName = "Show Render Helper" + ' v' + versionNumber;
createUI(thisObj) createUI(thisObj)
@@ -106,26 +106,27 @@
var wallA = leftColumn.add("checkbox", undefined, undefined, {name: "wallA"}); var wallA = leftColumn.add("checkbox", undefined, undefined, {name: "wallA"});
wallA.text = "Notch LC Wall A"; wallA.text = "A - Left Wall";
wallA.value = true; wallA.value = true;
var wallC = leftColumn.add("checkbox", undefined, undefined, {name: "wallC"}); var wallC = leftColumn.add("checkbox", undefined, undefined, {name: "wallC"});
wallC.text = "Notch LC Wall C"; wallC.text = "C - Right Wall";
wallC.value = true; wallC.value = true;
// BOTTOMROW // BOTTOMROW
// ========= // =========
var rightColumn = wallsGroup.add("group", undefined, {name: "rightColumn"}); var rightColumn = wallsGroup.add("group", undefined, {name: "rightColumn"});
rightColumn.orientation = "column"; rightColumn.orientation = "column";
rightColumn.alignChildren = ["right","center"]; rightColumn.alignment = ['right', 'top'];
rightColumn.alignChildren = ["left","center"];
rightColumn.spacing = 20; rightColumn.spacing = 20;
var wallB = rightColumn.add("checkbox", undefined, undefined, {name: "wallB"}); var wallB = rightColumn.add("checkbox", undefined, undefined, {name: "wallB"});
wallB.text = "Notch LC Wall B"; wallB.text = "B - Center Wall";
wallB.value = true; wallB.value = true;
var wallD = rightColumn.add("checkbox", undefined, undefined, {name: "wallD"}); var wallD = rightColumn.add("checkbox", undefined, undefined, {name: "wallD"});
wallD.text = "Notch LC Wall D"; wallD.text = "D - Header Wall";
wallD.value = true; wallD.value = true;
var allWalls = wallSelectPanel.add("checkbox", undefined, undefined, {name: "selectAllWalls"}); var allWalls = wallSelectPanel.add("checkbox", undefined, undefined, {name: "selectAllWalls"});
allWalls.alignment = ['center', 'top']; allWalls.alignment = ['center', 'top'];
@@ -265,7 +266,7 @@
omSourceButton.addEventListener('mousedown', function(){ omSourceButton.addEventListener('mousedown', function(){
var userOS = OS; var userOS = OS;
var launchCode = userOS.openUrl("https://drive.google.com/file/d/1Ur8bSu7RD8pjf2dVTLmkqlXyIz6ehtnU/view") var launchCode = userOS.openUrl("https://drive.google.com/file/d/1c7ezAQF5_Sy-e0WlRHLGbPluproroBw1/view")
}) })
helpEditText.text = setHelpMessage(scriptName, versionNumber); helpEditText.text = setHelpMessage(scriptName, versionNumber);
@@ -414,40 +415,17 @@ function truncateFilePath(filePathString, separator) {
} }
if(completedComps.length > 0){ if(completedComps.length > 0){
var baseOutputAlert = 'Success!\rYour files were exported to:\r\r' + renderFolderPath.toString() + '\r\r';
if(qcExports.value){ if(qcExports.value){
var aeFolders = createImportFolders('zz_QC', completedComps, km.getOrCreateFolder); var aeFolders = createImportFolders('zz_QC', completedComps, km.getOrCreateFolder);
alert('Renders complete!\rYour exports will be imported into AE inside the folder named zz_QC for quality control'); alert(baseOutputAlert += 'Your exports will be imported into AE inside the folder named zz_QC for quality control');
importExportsIntoAE(proj, aeFolders, renderFolderPath, renderPipeline.outputFileNames) importExportsIntoAE(proj, aeFolders, renderFolderPath, renderPipeline.outputFileNames)
} else { } else {
alert('Success!\rYour files were exported to:\r\r' + renderFolderPath) alert(baseOutputAlert)
var outputFolder = new Folder(renderFolderPath); var outputFolder = new Folder(renderFolderPath);
outputFolder.execute() outputFolder.execute()
} }
} }
/*
switch(renderPipeline.rqItems[0].status){
case RQItemStatus.DONE:
if(qcExports.value){
var aeFolders = createImportFolders('zz_QC', renderPipeline.rqComps, km.getOrCreateFolder);
alert('Renders complete!\rYour exports will imported into AE inside of the folder named z_QC for quality control');
importExportsIntoAE(proj, aeFolders, renderFolderPath, renderPipeline.outputFileNames)
} else {
alert('Success!\rYou\'re files were exported to:\r\r' + renderFolderPath)
var outputFolder = new Folder(renderFolderPath);
outputFolder.execute()
}
break;
case RQItemStatus.USER_STOPPED:
alert('Render cancelled.\rNo files were exported');
break;
case RQItemStatus.ERR_STOPPED:
alert('Render stopped due to an error.\rCheck the render queue for details');
break;
default:
alert('Render did not complete.\rStatus: ' + renderPipeline.rqItems[0].status);
break;
}
*/
} catch(error) { } catch(error) {
alert("An error occured on line: " + error.line + "\nError message: " + error.message); alert("An error occured on line: " + error.line + "\nError message: " + error.message);
@@ -466,8 +444,12 @@ function truncateFilePath(filePathString, separator) {
var importedFootage = proj.importFile(new ImportOptions(File(renders))); var importedFootage = proj.importFile(new ImportOptions(File(renders)));
for(var f = 0; f< compFolders.length; f++){ for(var f = 0; f< compFolders.length; f++){
var folder = compFolders[f]; var folder = compFolders[f];
var parent; var importBaseName = importedFootage.name.replace(/.mov/g, '');
if(importedFootage.name.indexOf(folder.name) !== -1){ var importBaseSplit = importBaseName.split('_');
var importScreen = importBaseSplit.slice(-2,-1).toString();
var pattern = new RegExp('_' + importScreen + '_', 'g');
var importAssetTest = importBaseName.replace(pattern,'_')
if(importAssetTest === folder.name){
importedFootage.parentFolder = folder; importedFootage.parentFolder = folder;
} }
} }
@@ -537,11 +519,11 @@ function truncateFilePath(filePathString, separator) {
var file_name = File.decode(om.file.name); var file_name = File.decode(om.file.name);
var folder_path = Folder.decode(folderOutput); var folder_path = Folder.decode(folderOutput);
var fileNameSplit = file_name.split('.'); var fileNameSplit = file_name.split('.');
var fileNameBaseWall = fileNameSplit[0] + '_'+ templateNameWall.toString(); var fileNameString = fileNameSplit[0].split('_');
var fileNameBaseWall = fileNameString.slice(0,fileNameString.length-1).join('_') + '_'+ templateNameWall.toString() + '_' + fileNameString.slice(-1).toString();
var fileNameExtension = fileNameSplit.slice(-1); var fileNameExtension = fileNameSplit.slice(-1);
var outputFileName = fileNameBaseWall.toString() + '.' + fileNameExtension.toString(); var outputFileName = fileNameBaseWall.toString() + '.' + fileNameExtension.toString();
outputFileNames.push(outputFileName) outputFileNames.push(outputFileName)
// var token = '[dateYear][dateMonth][dateDay]';
var new_data = { var new_data = {
"Output File Info": { "Output File Info": {
"Base Path": folder_path, "Base Path": folder_path,
@@ -639,7 +621,7 @@ function setHelpMessage(scriptName, versionNumber){
'HOW TO USE ' + scriptName.toUpperCase() + ':', 'HOW TO USE ' + scriptName.toUpperCase() + ':',
'', '',
'STEP 01: Import Output Modules from GDrive', 'STEP 01: Import Output Modules from GDrive',
'Import the preset output modules into your Render Queue. The output modules are stored on the team\'s GDrive in the form of a \'.aom\' file. This step is essential as the script\'s success is based on the output module names.', 'Import the most up-to-date preset output modules into your Render Queue. The output modules are stored on the team\'s GDrive in the form of a \'.aom\' file. This step is essential as the script\'s success is based on the output module names.',
'', '',
'-----------', '-----------',
'STEP 02: SELECT YOUR RENDER COMP', 'STEP 02: SELECT YOUR RENDER COMP',
@@ -647,7 +629,7 @@ function setHelpMessage(scriptName, versionNumber){
'', '',
'-----------', '-----------',
'STEP 03: SELECT WALLS, ALPHA ON/OFF, AND OUTPUT LOCATION', 'STEP 03: SELECT WALLS, ALPHA ON/OFF, AND OUTPUT LOCATION',
'Select the walls you\'d like to render. There is a checkbox to select all walls or deselect all walls. Select an option for with alpha channel or no alpha channel. Finally, select your desired render output location.', 'Select the walls you\'d like to render. There is a checkbox to select all walls or deselect all walls. Select an option for with alpha channel or no alpha channel. Additionally, you can toggle \'QC Exports in AE\' to reimport your renders for QC in AE. Finally, select your desired render output location.',
'', '',
'-----------', '-----------',
'STEP 04: RENDER', 'STEP 04: RENDER',