Difference between revisions of "Maya Batch Render"
Jump to navigation
Jump to search
Line 166: | Line 166: | ||
evalDeferred("quit -f"); | evalDeferred("quit -f"); | ||
+ | </pre> | ||
+ | |||
+ | === Arnold - Windows - Create .bat render file only for animated frames === | ||
+ | <pre> | ||
+ | // CHANGE PATH TO YOUR MAYA SCENE AND SPECIFY YOUR RENDER LAYER | ||
+ | // THEN EXECUTE THIS MEL | ||
+ | // SAVE BAT WHEN NOTEPAD OPENS AND EXECUTE IT | ||
+ | |||
+ | // SET PATH TO MAYA SCENE | ||
+ | string $mayaScenePath = "K:\\YOUR_PROJECT\\YOUR_FILE.ma"; | ||
+ | |||
+ | // SET NAME OF LAYER TO RENDER | ||
+ | string $layerToRender = "defaultRenderLayer"; | ||
+ | |||
+ | |||
+ | // LIST OF FRAMES WITH KEYS ON ALL TRANSFORM OBJECTS | ||
+ | $selected=`ls -dag -et transform`; | ||
+ | float $arrathy[] = `keyframe -query $selected`; | ||
+ | float $sorted[] = python("import pymel.core as pm; list(set((pm.getMelGlobal(\"float[]\", \"$arrathy\"))))"); | ||
+ | |||
+ | // COUNT FRAMES WITH KEYS | ||
+ | $nbreKeysFrames=size($sorted); | ||
+ | |||
+ | // PATH TO MAYA RENDER | ||
+ | string $mayaBatch = "C:\\Program Files\\Autodesk\\Maya2019\\bin\\Render.exe"; | ||
+ | string $mayaBatchPath = ("\"" + $mayaBatch + "\""); | ||
+ | |||
+ | // CREATE LIST OF RENDER COMMANDS FOR EACH FRAME | ||
+ | string $renderCommands[]; | ||
+ | for ($i=0; $i<$nbreKeysFrames; ++$i) | ||
+ | { | ||
+ | $renderCommands[$i] = ( $mayaBatchPath + " -r arnold -s " + $sorted[$i] + " -e " + $sorted[$i] + " -l " + $layerToRender + " " + $mayaScenePath); | ||
+ | } | ||
+ | |||
+ | // CREATE BAT FILE TO EXECUTE | ||
+ | string $batFile = "tmp.bat"; | ||
+ | string $batEnd = "pause()"; | ||
+ | stringArrayInsertAtIndex(size($renderCommands), $renderCommands, $batEnd); | ||
+ | string $myScriptDir = `internalVar -utd`; | ||
+ | string $tmpfile = $myScriptDir+$batFile; | ||
+ | string $linesToWrite[] = { | ||
+ | $renderCommands[0], | ||
+ | $renderCommands[3] | ||
+ | }; | ||
+ | int $result = fwriteAllLines($tmpfile,$renderCommands); | ||
+ | exec("notepad "+$tmpfile); | ||
</pre> | </pre> |
Revision as of 16:46, 13 May 2021
Contents
Maya .bat Batch Render Scripts
Redshift Batch Render - Windows
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r redshift -s 1 -e 100 -rl RENDER_LAYER K:\YOUR_PROJECT\YOUR_FILE.ma pause()
Maxwell Batch Render - Windows
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r maxwell -s 1 -e 100 -l RENDER_LAYER K:\YOUR_PROJECT\YOUR_FILE.ma pause()
Arnold Batch Render - Windows
// For Legacy render layers "C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r arnold -s 1 -e 100 -l RENDER_LAYER K:\YOUR_PROJECT\YOUR_FILE.ma pause() // For Render setup layers "C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r arnold -s 1 -e 100 -rl RENDER_LAYER K:\YOUR_PROJECT\YOUR_FILE.ma pause()
V-Ray Batch Render - Windows
"C:\Program Files\Autodesk\Maya2018\bin\Render.exe" -r vray -s 1 -e 100 -rl RENDER_LAYER K:\YOUR_PROJECT\YOUR_FILE.ma pause()
Arnold - Windows - Batch render for student version
// HOW TO - RENDER A LIST OF SHOTS WITHOUT ARNOLD BATCH RENDER LICENSE // 1ST STEP // First, create a .bat which will look like this: // Replace path to maya.exe with your own path, and with paths to your .mel files - How many lines as you want to render shots/scenes. "C:\Program Files\Autodesk\Maya2018\bin\maya.exe" -script C:\YOUR_PATH\shot1.mel "C:\Program Files\Autodesk\Maya2018\bin\maya.exe" -script C:\YOUR_PATH\shot2.mel popd pause // 2ND STEP // CREATE A .mel FILE FOR EACH SHOT/SCENE AS FOLLOWING //////// //// PATH TO FILE YOU WANT TO RENDER //////// file -f -o "C:\YOUR_PATH\your_scene_001.mb"; //////// //// NOTHING TO CHANGE HERE //////// // RENDER ALL ENABLED LAYERS AND RENDER ALL ENABLED CAMERAS renderSequenceOptionsWindow; optionVar -intValue "renderSequenceAllLayers" 1; optionMenuGrp -edit -enable false renderSequenceCameraList; optionVar -intValue "renderSequenceAllCameras" 1; // REFRESH MAYA UI TO ALLOW SEQUENCE RENDER // THANKS TO RODOLPHE VAILLANT http://rodolphe-vaillant.fr global proc mel_process_idle_events() { // '$list' contains all the current events/commands in the idle queue string $list[] = `evalDeferred -list`; // The timer is here for safety // you could use a counter or the mel command 'progressWindow' timer -startTimer; while( (size($list) > 0) ) { // Idle events might spawn more idle events so we need to // loop until the list is empty python("maya.utils.processIdleEvents()"); $list = `evalDeferred -list`; // Stop processing idle events after 15 seconds if( `timer -lap` > 15) break; } timer -endTimer; } // display the "Tool settings" pannel: toolPropertyWindow -inMainWindow true; updateMainWindowComponentState(); // Wait for UI to refresh: mel_process_idle_events(); // safely access UI elements: button -visible false "someButtonInTheToolSettingsWindow"; //////// //// CUSTOM PARAMETERS //////// // SET START FRAME setAttr "defaultRenderGlobals.startFrame" 1; // SET END FRAME setAttr "defaultRenderGlobals.endFrame" 100; // DISABLE ALL RENDER LAYERS $selected=`ls -type "renderLayer"`; for ($object in $selected){ renderLayerEditorRenderable RenderLayerTab $object "0"; } // SET RENDER LAYER TO RENDER renderLayerEditorRenderable RenderLayerTab defaultRenderLayer "1"; //////// //// GENERAL RENDER SETTINGS //////// // SET IMAGE FILE PREFIX setAttr -type "string" defaultRenderGlobals.imageFilePrefix "<Scene>/<RenderLayer>/<Scene>_<RenderLayer>_<Camera>"; // SET IMAGE FORMAT TO EXR setAttr -type "string" defaultArnoldDriver.ai_translator "exr"; // SET MERGE AOVS ON setAttr "defaultArnoldDriver.mergeAOVs" 1; // SET FRAME EXTENSION WITH FRAME PADDING FOR ANIMATION setMayaSoftwareFrameExt("3", 0); // SET RESOLUTION editRenderLayerGlobals -currentRenderLayer defaultRenderLayer; setAttr defaultResolution.width 1920; setAttr defaultResolution.height 1080; $width = `getAttr defaultResolution.width`; $height = `getAttr defaultResolution.height`; $deviceAspect = (float($width)/float($height)); setAttr defaultResolution.deviceAspectRatio $deviceAspect; //////// //// NOTHING TO CHANGE HERE //////// // RENDER RenderSequence; //print"RENDER_FINISHED"; // SAVE //file -f -save; // QUIT MAYA evalDeferred("quit -f");
Arnold - Windows - Create .bat render file only for animated frames
// CHANGE PATH TO YOUR MAYA SCENE AND SPECIFY YOUR RENDER LAYER // THEN EXECUTE THIS MEL // SAVE BAT WHEN NOTEPAD OPENS AND EXECUTE IT // SET PATH TO MAYA SCENE string $mayaScenePath = "K:\\YOUR_PROJECT\\YOUR_FILE.ma"; // SET NAME OF LAYER TO RENDER string $layerToRender = "defaultRenderLayer"; // LIST OF FRAMES WITH KEYS ON ALL TRANSFORM OBJECTS $selected=`ls -dag -et transform`; float $arrathy[] = `keyframe -query $selected`; float $sorted[] = python("import pymel.core as pm; list(set((pm.getMelGlobal(\"float[]\", \"$arrathy\"))))"); // COUNT FRAMES WITH KEYS $nbreKeysFrames=size($sorted); // PATH TO MAYA RENDER string $mayaBatch = "C:\\Program Files\\Autodesk\\Maya2019\\bin\\Render.exe"; string $mayaBatchPath = ("\"" + $mayaBatch + "\""); // CREATE LIST OF RENDER COMMANDS FOR EACH FRAME string $renderCommands[]; for ($i=0; $i<$nbreKeysFrames; ++$i) { $renderCommands[$i] = ( $mayaBatchPath + " -r arnold -s " + $sorted[$i] + " -e " + $sorted[$i] + " -l " + $layerToRender + " " + $mayaScenePath); } // CREATE BAT FILE TO EXECUTE string $batFile = "tmp.bat"; string $batEnd = "pause()"; stringArrayInsertAtIndex(size($renderCommands), $renderCommands, $batEnd); string $myScriptDir = `internalVar -utd`; string $tmpfile = $myScriptDir+$batFile; string $linesToWrite[] = { $renderCommands[0], $renderCommands[3] }; int $result = fwriteAllLines($tmpfile,$renderCommands); exec("notepad "+$tmpfile);