LayerShuffler v1.3


 
This location is for Registered Users Only.
Perhaps you need to login or register.
Contributor: Kaloyan Ganev
A handy UI tool that allows user freedom when dealing with multi-layer files (or node streams). The tool has options for custom layer extractions into Shuffle nodes, custom order of extraction, adding nodes after the extraction and more!
Requirements:
11.0, 10.5, 10.0, 9.0, 8.0, 7.0, 6.0 or later
Linux, Mac, Windows
26 Jun 2018
264

IMPORTANT NOTE (IF YOU HAVE DOWNLOADED PRE-v1.2):

Please revisit the Installation Guide, specifically for the menu.py setup step. I have changed the commands text and the name of the LayerShuffler file itself. This will ensure that for future versions you will only have to replace the LayerShuffler Python file itself!

 

Changelog for the current version can be found at the bottom of the page.

 

Layer Shuffler Demo Video

vimeo screenshot


 

Layer Shuffler

main page2

 


Layer Shuffler provides the utility to review a list of identified layers in the node stream of the currently targeted node and extract each layer into Shuffle nodes. Beyond that, in the case of dealing with rendered files, it allows the separation of your Main Passes and AOV passes through two different list selections, as well as custom naming of both. It also allows you to rebuild the main passes of your render, should you desire to do so. However, this feature is currently limited to Arnold and VRay only. More rebuild options will be added in the future. A custom order for arranging the layers after the Shuffle can also be specified by the user. Nodes can be stored in a list to be added during the Shuffle process, the only restriction there being that the node has to be able to receive inputs and create outputs. A selection of an arbitrary amounts of nodes in the Node Graph can be stored as Node Tree Presets which will allow you to later respawn the same set of nodes with their knobs' settings, relative locations to each other and their connections.

This tool acts as a Nuke panel and can therefore be floated, docked to other areas, multiple instances can be spawned, etc. The UI will also locally save the options that you have last set for some elements in a Preferences file.


INSTALLATION GUIDE:

In the contents folder you'll find a 'layerShuffler' folder - copy that to your '.nuke' directory.

In your 'init.py' file in '.nuke', add the following code:

 

 nuke.pluginAddPath('./layerShuffler')

 

In 'menu.py', add the following code, but make sure the '# IMPORTS' section is in the beginning of your 'menu.py' file: 

 

# IMPORTS - these go in the beginning of your menu.py

 from nukescripts import panels

 import LayerShuffler

 

The '# REGISTRATION' section can be placed at any point after that:

 

# REGISTRATION - this goes at any point after the Imports

 

panels.registerWidgetAsPanel('LayerShuffler.LayerShuffler', 'Layer Shuffler', 'LayerShufflerPanelId')



If Nuke is opened, restart for changes to take effect. You will then find the Layer Shuffler as a Nuke panel type under the 'Custom' menu.

startup


FUTURE IMPLEMENTATIONS:

More rebuilds - Scanline, Renderman.

Future versions of the tool will attempt to improve the algorithms for Rebuilds for certain cases where the user might only want to rebuild a few of the required passes for the rebuild. Currently, the algorithms are flawed and unpredictable in that regard.


VERSION CHANGELOG (v1.3):

  • Functionality changes:

    • Added a “Saved Node Trees” tab

      • This feature allows you to save a selection of nodes in the node graph and store them to a file which can then be called upon later, to rebuild them in the Node Graph again (with their values, relative positions and connections)

  • UI changes:

    • Node Distance Slider received some improvements in usability - it will not longer snap between values when you drag the dot.

    • The UI will now save the values you input for some widgets to a “preferences” file in the directory of the LayerShuffler Python file. Those widgets include:

      • Both backdrop naming fields

      • The two lists with your layers in the Shuffler tab

      • The following checkboxes:

        • “Skip EXR Check”

        • “Shuffle selected layers only”

        • “Unlock Shuffle Ordering”

      • “Select color” button’s color value

      • The following dropdown boxes:

        • Rebuild direction

        • Renderer selection

      • Node distance slider (both the number field and slider value itself)

  • Fixes:

    • Added support for storing Group nodes in the tool. Before, it would store the node itself and its knobs, but nothing inside the Group and would therefore be respawned empty.

Full changelog can be found in the downloaded ZIP file.


Contact details:

If you have questions, feel free to contact me on [email protected]. I intend to maintain and improve the tool over time so bug reports and feature suggestions are welcome, all I ask is that you give the subject line of your email a meaningful text!

Please login in order to download these files.

Comments   

 
# zxcvzxcv zxcvzxcv 2018-05-18 14:48
.
 
 
# zxcvzxcv zxcvzxcv 2018-05-18 14:52
.
 
 
# Yan Ligoth 2018-05-21 11:00
Rebuild seems not to work on 11.1 version.
Select all, clear selection, select remaining.. etc, not working either.
 
 
# Yan Ligoth 2018-05-21 11:08
global name 'PySide' is not defined
 
 
# Kaloyan Ganev 2018-05-21 12:01
Thanks for letting me know. I may have an idea why the buttons might not be working but no idea about the rebuild. Could you send me a screenshot of the options you've selected in the UI and also of the error message you get? Especially if there's a line number there, that'd be really helpful!
 
 
# Kaloyan Ganev 2018-05-22 22:53
The issue with the buttons has now been fixed. Download the file again and just replace your .py file in the layerShuffler folder and that should do it.

I couldn't find any issues with the Rebuild, though. If anyone else is experiencing this, please give me as much detail as you can.
 
 
# Yan Ligoth 2018-05-23 18:00
Awesome! It does work now.
Sorry, my bad, the video didn't show that you have to hit (Use renderer-specii fic rebuild), figured out that you should, works like a charm!

*Just a suggestion for a future update. Add unpremult option to each pass and premult at the end, with a copy of alpha channel.
 
 
# Oleg Maximovich 2018-07-10 08:25
add "RedShift render" to preset!!!!!!!!! !!!!!
 
 
# Spencer Fitch 2018-11-20 16:48
I put the proper code into the proper spots but I keep receiving this error in the log - ImportError: No module named LayerShuffler

Not sure whats going on. any help?
 
 
# Kaloyan Ganev 2018-11-20 23:00
Could you please make sure your init.py file contains the necessary line:

nuke.pluginAddPath('./layerShuffler')

This is what tells Nuke where to find the code.
Also, please make sure that the LayerShuffler.p y file is specifically under [...]/.nuke/lay erShuffler (wherever your .nuke folder may be).

If these steps do not help, it might not be an issue with the general setup but perhaps with how you're running Nuke.
 
 
# Niccolo Barbero 2019-04-05 09:34
Hi Kaloyan it's very cool, the only issue it's with arnold 4 you don't have "coat" and "trasmission" stuff but istead you have reflection and refraction so you could update the script with arnokd v4 or arnold v5 presets.
It would be great to have the rebuild function also for Redshift and Mantra too..and maybe the whole stuff as a node instead of a pannel
bytheway grat work!!
 
 
# Kaloyan Ganev 2019-04-15 23:11
Hi Niccolo, thanks for your feedback!
I've wanted to come back to this tool for a while as I have a few improvement ideas sitting in the backlog. For example, I want to find a way to make these presets more user-customizab le to account for future compatibility, personal flavoring, even making your own presets for renderers I couldn't account for.
Alas, I wrote this while I was still in university, so I had access to a Nuke license and since I've graduated I don't have that access. And Nuke is kinda expensive for a starting professional, as it turns out! In the non-commercial version, this tool is kind of unusable due to the 10 node scripting limit.
As for putting it in a node, I didn't find a way to dock my PySide UI inside a custom node type of my own so I had to go with a UI panel.
Definitely am planning on circling back to this when I can later on, so I guess watch this space in the future, haha!
 

You have no rights to post comments

We have 8594 guests and 76 members online