Channel Hotbox v2.0
This location is for Registered Users Only.
Perhaps you need to login or register.
13.1, 12.2, 12.1, 12.0, 11.3, 11.2, 11.1, 11.0, 10 or later
Linux, Mac, Windows
- Converted to Python 3 for Nuke 13 usage
- Stylesheet adjustments to display modification context.
- Bug fix for new shuffle node.
- Thanks to Lukas Fabian's feedback, a major fail is fixed. The shuffle list are now empty on each time and doesn't have the previous selection stored withhin.
- Option to create new shuffle node.
- The new shuffle node is set as default from nuke 12.1 onwards. Below this, it will create an 'old' shuffle node. if you want to explicitly use the old one in Nuke 12.1 and above, you can set the value to '0' on top of the script.
- Implemented suggestion from Mitchell Kehn to better handle window focus.
- Minor refactoring.
- Code clean up.
- Removed option to choose between open up on cursor or centeredon screen. Now openening fixed under the cursor.
- Specified installation command inside script.
- added compatibility for nuke11 and pyside2
- option to create grade node with channel set to selected layer
- switch back to rgba via 'alt'
- replaced autcompleter to inside the line-edit
- code clean up
- sanity check if viewer available and connected
the channel Hotbox
i wrote this small tool in PySide for easy and fast changing channels/layer inside the viewer since the dropdown menu or the page up/down solution are too tedious. after i tested it a while in production i added the option to also use it for shuffling out channels.
it is based on the current viewer and which node it is connected to. NOT the selected node inside the nodegraph. the script checks all available layer at this node and gives you the option to show, shuffle or grade them.
demo on vimeo
change the viewer to the selected channel
shuffle out all selected channels
create grade node with channel set to selected
switch viewer back to rgba
To install with hotkey on alt+q, add this to your menu.py and make sure that the script is located in your nuke plugin path:
nuke.menu('Nuke').findItem('Edit').addCommand('HotBox', 'channel_hotbox.start()', 'alt+q')
I have worked with it under windows and linux. on ubuntu it seems correct, under centos is an issue with the transparent background, which will shown as black.
Any kind feedback is welcome.
nope, there isn't an explicit reason,will change that with the next version.
feel free to use it open as you like!
Just drop the hotbox.py into your plugin dir. On my Mac it's ''Applications ▸ Nuke9.0v1 ▸ Nuke9.0v1(Show package contents) ▸ Contents ▸ MacOS ▸ plugins''
Then put this at the end of your menu.py (This makes the tilda key the hotkey):
#### add menu item to Edit menu
nuke.menu("Nuke").findItem("Edit").addCommand("HotBox", 'hotbox.create_ it()', "`")
any video for this
an integer is required
Line 165 woop
if it's still an issue, please let me know. in my experience, this kind of error means, that a viewer is missing.
sounds like you would have to set explicit the focus to the panel.
so it would be a line of a pyside attribute or just something like "setFocus(chann elHotbox)". but i would to dig around in the PySide doc as well.
on my machines does it work on linux and windows. do you have an english keyboard layout so you don't need an extra key modifier? could be the issue.
rather than this you could just set the hotkey to a different key by just changing the key in the last quotes.
for example to run this by hitting "v" you could change the command to:
nuke.menu("Nuke").findItem("Edit").addCommand("HotBox", 'hotbox.create_ it()', "v")
Channel Hotbox v1.4 ?
nuke.menu("Nuke").findItem("Edit").addCommand("HotBox", 'channelHotbox. start()', "alt+q")
alt+q will be the short cut. you can change this to whatever you like
you might want to check out this tutorial
just to confirm:
the hotbox is affected by the current looked at node. so in case you are selecting one stream and currently viewing another one, the hotbox will listen the channels of the active viewer, not the selected node.
are you still having issues with keeping this in mind?
I'm running Nuke 11.1v1
macOS High Sierra 10.13.1
At launch, I get the "can not interpret menu.py" error.
seems like asimple menu.py error not an issue with the actual script.
the following should do the trick inside the menu.py with mapping the shortcut to alt+q
nuke.menu('Nodes').addMenu("my stuff").addComm and("channelHot box", 'channelHotbox. start()', 'alt+q')
but i do not had chance to actually test it on OSX.
alternatively you could test it with leaving the menu blank and run the following inside the script editor, while making sure the script is inside your nuke pluginpath
Thanks for the response. That seemed to do it! I'll keep testing the other features and let you know what I find. Thanks again.
Seems I ran into one more small issue. When I switch the UX options to:
SHOW_ON_CURSOR = 0
SHOW_ON_SCREEN = 1
I get this error: 'module' object has no attribute 'QApplication'
When I switch the options to:
SHOW_ON_CURSOR = 0
SHOW_ON_SCREEN = 0
I get this error: 'module' object has no attribute 'QDesktopWidget'
Any thoughts? Thanks in advance.
sorry for the late response.
Seems like a PySide issue. Are you on Nuke 11 already or on 10.5 and below?
No worries buddy. I'm using 11.1v1.
i couldn't figure out what the actual issue is.
in the very latest version of this thingy i removed the option for switching around the position. therefore this issue should not appear anymore, well and the option as well.
sorry that i could not find a straight solution, but i never encountered this issue on my end. therefore it's pretty hard to debug.
1 - it is awesome, very responsive and fast!!!
2 - on the installation page of Nukepedia - can you please clean up the installation advises mess? the name of the module is changing from answer to answer - it is confusing!
All the descriptions and names were changing. sorry about that.
I submitted just now cleaned up version.
should be online soon.
is it possible to have only one instance of the pop up?
right now if i did open the channel box and clicked outside of it
the window will stay in the background, and later i will open one more window and so on.
the point is i do not want to pay attention if i did close it or not so every new window is closes one before.
hope you getting my point
like michael pointed out you could add an additional flag.
take a look at line numbers 121, 122 and just keep adding one more with QtCore.Qt.Popup
I made a change to your script that closes the hotbox if the user clicks away from it, rather than keeping it open but running it the background.
With things like this where there's no frame drawn around a pop-up that's pretty common behavior, and It doesn't seem uncommon to have something like 10 of these stuck open behind the main nuke window.
Mind if I email it to you?
not at all!
please send over your enhancements and i will implement them as soon as i can
I get this error in the script editor when trying to import:
ImportError: No module named channel_hotbox
can you help me with this?
Can you also add the alpha channel as a "hot box"
It would be amazing if you could
Thanks in advance
sorry for the late reply. must have fallen through the cracks.
in theory, if you have a channel in your stream which is called "alpha" it should be place on the third position.
the order is pretty fixed at the first positions.
if available it is:
rgba, rgb, alpha followed by all other channels.
lets see if i can make it during the upcoming weekend.
I updated to script so its works within the shuffle node if desired to use those.
But I it seems for me as if the list of selected layers doesn´t get erased after channel_hotbox gets closed.
So if I create a shuffle for layerA and than I open channel_hotbox again to create a shuffle for layerB i get to shuffles for layerA and layerB altough I didn´t select layerA again. After clicking around a little, I and up with 6 or more shuffles that created every time if I not carefully deselect them in a second step.
Selection seems to stay even for different read nodes (that have some of the same layer names)
I am using channel_hotbox v1.7 in Nuke11.3v6 on Windows10
thanks for reporting. I'll check it out later and potentially submit a fix.
i might have broken something with the last update and havent noticed yet..
so i can't replicate the mentioned behavior. as i see in the code, the list gets deleted every time. but i am also on linux with nuke 12.
would you mind sending me your email address, so i could send you a version to check it out? i am still not sure if this would be the solution, but since i can't check on windows, i would appreciate the help for debugging.
I'm using this tool on CentOs and haven't had this issue so far. Even though i remember seeing this somewhere.
A solution could be using a stylesheet rather than a pyside flag.
But again, I can't reproduce ATM.
and I want to report a bug for you.
When shuffle out a layer that contains only rgb channels, the order of rgb is mixed incorrectly. pls check it. thank you
thanks for reporting.
Which nuke version and which shuffle node are you referring to?
the "old" shuffle node or the "new" one?
nuke version is 12.2v3 and shuffle node is "new"
shuffle swap channels as:
in some pass, such as specular , direct or emission
Just change SHUFFLE_TYPE on line 61 to 0
My nuke version is 12.2v5 and the shuffle swap channels as:
>.< i dont know why
i have updated the script just now. since i can't reproduce the issue on my end it is fairly hard to fix this very issue.
feel free to check out the updated version. if the issue persist, feel free to send over a demo image for debugging on my end.
great tool. much wow!
File "C:/Users/user/ .nuke/Python\ch annel_hotbox.py ", line 217, in keyReleaseEvent
shuffle = self.create_new _shuffle(layer, node)
File "C:/Users/user/ .nuke/Python\ch annel_hotbox.py ", line 275, in create_new_shuf fle
RuntimeError: Channel "DetailLighting .alpha" not found in input channels