• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Preparing a rendered exr with multiple render layers

Participant ,
Feb 02, 2017 Feb 02, 2017

Copy link to clipboard

Copied

I'm a complete newb to this so please bear with me. I want to automate the process of preparing rendered exr's

I used the script listener to create what I need to do, however, some of my files have variables.

For example, i may be supplied with i file that doesn't have certain elements in it, this obviously breaks the script.

The example here shows that the file has layers called "multimatte.RGB" sometimes I have 1, the example bellow selects 3 layers but sometimes i don't have any layers named this. How do i get it to work as an if?

var idslct = charIDToTypeID( "slct" );

    var desc179 = new ActionDescriptor();

    var idnull = charIDToTypeID( "null" );

        var ref163 = new ActionReference();

        var idLyr = charIDToTypeID( "Lyr " );

        ref163.putName( idLyr, "multimatte.RGB" );

    desc179.putReference( idnull, ref163 );

    var idMkVs = charIDToTypeID( "MkVs" );

    desc179.putBoolean( idMkVs, false );

executeAction( idslct, desc179, DialogModes.NO );

// =======================================================

var idslct = charIDToTypeID( "slct" );

    var desc180 = new ActionDescriptor();

    var idnull = charIDToTypeID( "null" );

        var ref164 = new ActionReference();

        var idLyr = charIDToTypeID( "Lyr " );

        ref164.putName( idLyr, "multimatte2.RGB" );

    desc180.putReference( idnull, ref164 );

    var idselectionModifier = stringIDToTypeID( "selectionModifier" );

    var idselectionModifierType = stringIDToTypeID( "selectionModifierType" );

    var idaddToSelectionContinuous = stringIDToTypeID( "addToSelectionContinuous" );

    desc180.putEnumerated( idselectionModifier, idselectionModifierType, idaddToSelectionContinuous );

    var idMkVs = charIDToTypeID( "MkVs" );

    desc180.putBoolean( idMkVs, false );

executeAction( idslct, desc180, DialogModes.NO );

Thanks

TOPICS
Actions and scripting

Views

384

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Feb 02, 2017 Feb 02, 2017

Copy link to clipboard

Copied

Scriptlistener code is just like action steps. Everything is hard coded like that layer name.   What you do with scriptlistner code is to create functions with it.  You replace the variables that are set with hard coded values, To be set via a variable that you define and pass to the function.   You would replace the hard  value "multimatte.RGB" with a variable like myLayerName which you pass to you function

function myLayerRender(myLayerName) {

    ...

}

The in your script you would use that function and code something like this;

myLayerRender(app.activeDocument.activeLayer.name);

JJMack

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Feb 02, 2017 Feb 02, 2017

Copy link to clipboard

Copied

Thanks for the reply, I'm afraid it all went over my head.

i think I need to read up on scripting a bit more.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 02, 2017 Feb 02, 2017

Copy link to clipboard

Copied

LATEST

Scripts are Programs. Actions are recording they always play what has been recorded no logic just step step step..... ScriptListener code though the code is ether VBS or JavaScript code it is a recording of Photoshop steps, step step step.  Untouched It Always plays what was recorded.   Because the recorded code in an script language you as a programmer can add logic to what was recorded.   You can edit Actions. You can add, remove change steps you can not add logic without using a Photoshop script.  Newer version of Photoshop has conditional actions however there are only a few conditions that can be tested and all actions use must be in the same action set very little logic few if conditionals.

Action Manager code is required for all of Photoshop features are not supported, covered by Adobe DOM some things can not be scripted.   Action Manager Code the code that scriptlistener produces lets you get around that scripting problem

JJMack

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines