rd: Render Layers



Version: 2.1 Sign up to be notified by email when a new version is posted
This script renders each of the selected layers separately. You might find this script useful if layers represent different versions of an effect or different parts of an effect that you want to render as separate “passes” for flexibility in how they get composited.
Rendering uses existing render settings and output module template, so be sure to create them beforehand. When you run this script, you can select the templates to use; select the range of frames for each selected layer to render; control if unselected, adjustment, active camera, and light layers should be rendered as well; and define the name for each rendered output. Each rendered layer will generate separate “render finished” sounds.
The Output Name Template can be defined with the same properties available in the File Name Templates dialog box, with the following additions:
- [layerName] Current layer name
- [layerNumber] Current layer’s index number
Note: If you select an output template that uses a single-image format (such as Photoshop), be sure to include the [#####] property in the Output Name Template.
Note: If the layer is completely outside of the composition time range, the layer will not be rendered. However, if you select a range of Work Area and the layer is outside of the composition’s work area, the layer will still be rendered.
- rd_RenderLayers UI
Enhancements requested by Gary Jaeger and James Tobias.
The definitive collection of scripts and plugins for Adobe After Effects









hi mike… sorry, been swamped with work and haven’t had the time.
Hi Jeff,
Thanks for the awesome script! Has there been any development on the subfolder issue? This feature would be a godsend!
Wow, this script is a life saver. And thanks to the comments here, I was able to sort out my own stupidity. I downloaded for free to find out if this script was too good to be true, but now I’m going back to pay. You just saved me a lot of tedious labor.
Jeff,
I figured out the problem. Because my project bit depth differed from my render output module bit depth settings, I would get an error message stating as much, with the option to cancel or continue rendering. I would hit cancel and all the items would remain in the queue. If I then hit render, I would get the incorrect in and outs.
Thanks for your quick reply though!
-z
hi zach… i can’t reproduce the problem here. in my test, the same precomp as three layers with different in/out points seems to be rendering as separate-length movies.
is it possible for you to send me a copy of the project (no footage needed)? if so, you can send it to me at redefinery@hotmail.com . thanks!
:jeff
Hi Jeff,
My “Layer Range to Render” is set to “Layer In/Out Range” and yet all my render queue items still want to render the entire timeline and not each layer’s in to out point individually. Is this because my layers are all from the same precomp, with the in and out points adjusted for each shot/layer? Is there a work-around for this?
Thanks,
Zach
Great script! Pardon my ignorance… but is there something I could put in the output field that would put the timecode in the name?
Thanks
hi steve… there’s no token available for that at this time, but i can add it to the feature request list. what timecode would be added to the name? that of the layer’s in point, or something else?
Hi Jeff
The in point would be perfect. I just to be able to hand the clips back to the editor with an indication as to where they should be placed. Could use plural eyes but this would be simpler in some respects especially if the editor doesn’t have PE
Thanks
Steve
haaa… stupid me !! i
may be it doesn t work with BG RENDER ??
i mean >> by queuing … and then launching BG render to output the all thing in the background …
because when i chose the option RENDER … it does work and output each layer separately !!!
…
well > sorry then for the email just before…
it s going to be very ok to work this way !
))
…
maybe the BG RENDER can be put in an update of the script ? if it s technically possible… i don t know…
THANK YOU VERY MUCH AGAIN !!!
hello!
sorry if i missed something in the help of the script.
but > with Cs5 >> it does everything fine until the moment i check the render >>>
I have all the layer render together …
let say i have 20 layer to output . each ONLY and Separately… hum.. I follow the help and do a QUEUE ONLY so i can use the GREAT BG RENDER !…
but like i said … i don t get the nice EACH SEPARATE LAYER by it self … but you know the
“final result” of all my layer together on top of each other.
any thought ?
thanks very much !
))
This could save many hours of ” :@#!ER@IO#$Y()*SF()U@ ” file management !
thanks again ! for all those amazing scripts !!!
hi gerben,
no, you’d need a script like this:
http://aescripts.com/compsfromspreadsheet/
Say I have a composition with a text layer on it, but I need to render out the entire comp several times each time with a different text.
Can I use this script to render it out 5 times, each render being identical apart from the text layer?
hi adamlewen,
yes, that’s the purpose of this script. if you’re unsure if the script will work for you, you can download it for free (enter $0), try it out, then if it works, download it again for whatever price you feel it’s worth. that the only way to evaluate a script right now.
thanks.
I will. And thanks for a quick reply!
Hi there. Basic question regarding the script;
If I have a comp with 20 layers, would I be able to render out 20 files (each layer) in one single render?
hi gregg,
could you use the Keep in Render = Unselected Layers option in some way?
Hey great script! I was wondering if there was a way to have the rendering layers be ‘obscured’ by the non-rendering layers? I’ve got Trapcode’s Lux that I need to render seperately but when the layer normally goes behind another, here it renders as if there’s nothing in the way. I’m probably missing something obvious, just wondering if you had any ideas.
Thanks
hi mang… thanks for reporting that bug. for some reason the person that originally requested it didn’t say anything and so i thought it was what he wanted for it. it’s a bit tricky to fix, as i’d have to duplicate the comp for each selected layer to have each one queued as intended.
Seems like the add to queue option doesnt work, as you dont have the ability to turn layers visibility on and off once they are added. Just ends up rendering the comp as is over and over. Render immediately command works brilliantly though.
hi rich… do you mean as a subfolder of the selected Output Folder? probably could be done by adding a new Output Subfolder field.
That’s exactly what we were thinking. We’d select our Output Folder, and the script would render each layer into its own subfolder ( named [layerNumber]_[layerName] ).
below are what I did to make all rendered layers output into it’s own subfolder.
1). create each subfolders inside your intended target output folder manually (it is painful to create one by one if you have hundreds or more layers).
2). add “folder name” and backslah “\” just before your intended rendered “file name” template in “Output Name Template” field
example:
The text inside “Output Name Template” field maybe something like this:
shot[layerNumber]\shot[layerNumber]_[layerName].[#####].[fileExtension]
“shot[layerNumber]\” will retarget your output folder into
it will output your rendered layer into subfolder named “shot” followed by layerNumber.
my subfolders name is “shot1″, “shot2″, “shot3″, … , etc. (without quote) those suffix number according to it’s layerNumber variable.
note:
makes sure you already create subfolder inside your target output folder otherwise if subfolder doesn’t exist this will never work.
hope it help
many thanks Jeff your script is great and helpful
wish you can make it possible to create it own layers output subfolders automatically
best regards
and one more thing..
if you use variable [layerNumber] twice like my example above you have to add a little into the script
find something like this inside the script:
outFName = outName;
outFName = outFName.replace(“[layerName]“, layer.name);
outFName = outFName.replace(“[layerNumber]“, layer.index);
om.file = new File(outFolder + “/” + outFName);
then duplicate this line:
outFName = outFName.replace(“[layerNumber]“, layer.index);
the final script will be like this:
outFName = outName;
outFName = outFName.replace(“[layerName]“, layer.name);
outFName = outFName.replace(“[layerNumber]“, layer.index);
outFName = outFName.replace(“[layerNumber]“, layer.index);
om.file = new File(outFolder + “/” + outFName);
the reason you have to add that line is the “replace” command cannot detect and replace more than one [layerNumber] variable if you add that variable more than one into “Output Name Template”. it will only replace the first one.
note:
you have to do the same for all variables if you use them more than one.
the number of duplication is equal to how many you use the variable.
Jeff wish you would have this stuff as a consideration into future version.
Thanks again
hi harry… thanks for the workaround. getting subfolder support is something i do want to add.
and thanks for the note about multiple instances of tokens. i really should just make it a global replace (so it replaces as many tokens as possible) instead of the single instance one now.
Great script. Big Timesaver. We’re rendering out image sequences and would love to be able to shoot each layer to it’s own subfolder ideally named [compName]_[layerNumber]_[layerName]
Any thoughts?
Glad you like the script, Koichi. Thanks for the suggestions. I’ll keep them in mind for future versions of the script.
Jeff
Or a simpler fix would be the ability to save all the settings and load the settings you create.
I LOVE this script. It is a huge time saver. THANK YOU!!!!!
Some recommendations for improvement if you decide to make a newer version:
1) Allow the user to create a custom Template from the “Output Name Template Box”. – It would be nice to be able to create a template ex: [layerNumber]_[layerName]_[##].[fileExtension] Then be able to save it and load it.
2) The OutputFolder Browse is a little bit cumbersome- it always starts at the “Desktop” level. The user then has to always manually click the location they desire. it would be a huge timesaver if we can save location presets- for example “E:\projects\myproject\output”
Or have it automatically choose the directory where the AE file is saved.
Just some suggestions. But otherwise this script is PERFECT! Thanks
-Koichi
Glad to hear that, Robert!
This script saved my life! (Well at least a weekend or two.)
Hi Navarro… I’ve never used Nucleo Pro 2, but it sounds like theirs does stuff in the background automatically and replaces the layers. This script is on-demand, can render the work area, and won’t replace the layers automatically. Oh, and this one is cheaper.
Maybe others that have used both can chime in with their experience.
How does this compare to Nucleo Pro 2′s ‘Commit to Disk’?