View Single Post
# 14 29-08-2011 , 04:36 PM
Falott's Avatar
Registered User
Join Date: Jan 2005
Location: vienna
Posts: 1,095
after stealing some of your code from other places user added image I have my script almost working as it should. there are a few things which still give me head ache though.


Code:
string $renderPanel;       
string $renderPanels[] = `getPanel -scriptType "renderWindowPanel"`;
string $basePath = (`workspace -q -rd` + "renderOutput/");
string $renderLayers[] = `ls -type "renderLayer"`;
int $firstFrame = `currentTime -q`;
int $lastFrame = `currentTime -q`;


    if(size($renderPanels)) 
        $renderPanel = $renderPanels[0];
    else
    {
        $renderPanel = `scriptedPanel -type "renderWindowPanel" -unParent renderView`;
        scriptedPanel -e -label "Render View" $renderPanel;
    }




// do stuff
for ($i = $firstFrame; $i <= $lastFrame; $i++)
{
 //   RenderViewWindow;
 //   tearOffPanel "Render View" "renderWindowPanel" true;
    string $outputFolder = ("PSDmuster" + $i + "_");
    string $myDiffuseTexture = "DT_" + `currentTime -q`;
    string $myNormalTexture = "NM_" + `currentTime -q`; 

 
//connectAttr -force ($myDiffuseTexture + ".outColor") shader_gamma.value;
//connectAttr -force ($myNormalTexture + ".outAlpha") shader_bump2d.bumpValue;
    
    for ($layer in $renderLayers)
    {
        if ($layer == "defaultRenderLayer")    // ignore the default render layer
            continue;
        else
        {
            string $folder = ($basePath + $outputFolder);
            
            if (!`filetest -e $folder`)    // folder doesn't exist. create it.
                sysFile -makeDir ($basePath + $outputFolder);
                
            print ($folder + "/" + $layer + $outputFolder + "\n");
                
             render -l $layer shotCAM01; // render



   
           
            if (`getApplicationVersionAsFloat` >= 2011)    
                       
                catch(eval(renderWindowSaveImageCallback ($renderPanel, ($folder + "/" + $outputFolder + $layer), `getAttr defaultRenderGlobals.imageFormat`)));
                
            else
            
                renderWindowSaveImageCallback ($renderPanel, ($folder + "/" + $outputFolder + $layer), `getAttr defaultRenderGlobals.imageFormat`);


            
// catch(eval(renderWindowSaveImageCallback ($renderPanel, ($imagesDir + “/renderView.” + ($maxImageIndex – $i)), `getAttr defaultRenderGlobals.imageFormat`)));




        }   
    }
}


#1
in case files get overwritten, how can I integrate an "auto-YES, please overwrite that file" into the script?


#2
Code:
# Error: AttributeError: ImageFormats instance has no attribute 'oldOutf' #
if I replace
Code:
`getAttr defaultRenderGlobals.imageFormat`
with
Code:
"PNG"
result:
Code:
// Error:  // 
// Error: Syntax error //
without any further information on that error

basically the directory is created, rendered frame is named and placed correctly, but it is black.


#3
Code:
//connectAttr -force ($myDiffuseTexture + ".outColor") shader_gamma.value;
//connectAttr -force ($myNormalTexture + ".outAlpha") shader_bump2d.bumpValue;
if the corresponding textures are already applied,
Code:
// Warning: 'DT_2.outColor' is already connected to 'shader_gamma.value'. //
and the script stops there. I tried to make use of the catch() command, but maya always returns
Code:
// Error: Invalid use of Maya object "connectAttr". //


everything starts and ends in the right place at the right time.

Last edited by Falott; 30-08-2011 at 10:08 AM.