The SharedShelves Python script is an out-of-the-box pipeline solution for small production studios (or individuals) that enables multiple remote artists to easily share their gizmos, templates, plug-ins, and toolsets with other team members using Dropbox. The SharedShelves pipeline allows any artist to share plug-ins by simply pasting .gizmo or .nk files into a shared Dropbox folder. The SharedShelves script will reference the Dropbox folder and when Nuke launches, load any plug-ins from the folder into a new shelf in the toolbar with the same name as the Dropbox folder. Other artists are then able to access the shared tools using Nuke's tab menu or toolbar window.
- Create a folder inside Dropbox and place your tools inside.
- Download the "SharedShelves.py" file and place it in your .nuke directory.
- Copy the contents from "menu.py" and paste it in your menu.py file located in your .nuke directory.
- Edit the parameters in the SharedShelves() method with your unique Dropbox information (see below)
from SharedShelves import SharedShelves
s = SharedShelves(dropbox_tools_folder='DROPBOX_FOLDER_NAME', icon='PATH/TO/ICON.jpg', account_type='personal')
s.sync_gizmos('GIZMOS_FOLDER_NAME')
s.sync_toolsets('TOOLSETS_FOLDER_NAME')
dropbox_tools_folder: The name of the folder in your Dropbox containing the gizmos and toolsets you'd like to sync. Change this parameter to exactly match the name of your Dropbox folder. For example, if your folder structure appears as below on Dropbox. Set the
dropbox_tools_folder
parameter tosharedNukeTools
.
Dropbox/
sharedNukeTools/
gizmos/
myCoolGizmo.gizmo
anotherNeatGizmo.gizmo
...
ToolSets/
shotTemplate.nk
keyerTemplate.nk
...
icon: Change this to the filepath of icon you'd like to appear for the toolbar menu in Nuke. For example:
icon='G:/Dropbox/sharedNukeTools/icons/sharedToolbar.png'
Optional
account_type: Change this to match the type of Dropbox account that you're using (personal, business, etc.) The default is
personal
Using the above examples, my SharedShelves class would look like this:
s = SharedShelves(dropbox_tools_folder='sharedNukeTools', icon='G:/Dropbox/sharedNukeTools/icons/sharedToolbar.png', account_type='personal')
- Edit the
folder_name
parameter for boths.sync_gizmos()
ands.sync_toolsets()
to EXACTLY match the name Dropbox folder where your gizmos and toolsets are stored. For example, if your gizmos are stored inDropbox/sharedNukeTools/myGizmos
, your sync_gizmos would bes.sync_gizmos("myGizmos")
. By default,sync_gizmos()
will look for a folder named "gizmos" andsync_toolsets()
will look for a folder named "ToolSets". - Launch Nuke!
To add a ToolSet or gizmo to the shared toolsets, place the .nk or .gizmo file containing the node or ToolSet in your
shared Nuke tools folder on Dropbox. Be sure to place the file inside a folder that's being synced with sync_toolsets()
or sync_gizmos()
, these folders are typically named "gizmos" and "ToolSets" respectively. Any files that are placed
outside these folders will not be loaded when Nuke launches.
ToolSets and Gizmos can also be added inside of Nuke's UI. First, Select the node(s) to be shared to Dropbox. Then,
from the top menu bar in Nuke, navigate to "SharedShelves>Publish Selection to Dropbox". Inside the file browser
window that pops up, choose a folder where the tool should be saved and press "open" (I know...it should say "save"
but Nuke's dialog boxes are limited). Make sure that save folder will be synced by sync_toolsets()
or sync_gizmos()
. Typically, these folders are named "gizmos" and "ToolSets" respectively. Any files placed outside
these folders will not be synced. Finally, restart Nuke in order to see the uploaded toolset in the nodes' menu.
To remove a tool from SharedShelves, navigate to the shared Dropbox folder and delete the .nk or .gizmo file.
Due to Nuke's encryption of files that come from PLE and Non-Commercial editions of Nuke, only .nk and .gizmo files are able to be shared and synced. Any files from PLE or NC version of nuke (.nknc) or other encrypted Nuke files will not be loaded on launch.
This version of SharedShelves is currently compatible only with Nuke 13 or higher. SharedShevles is written using Python3 and I would like to port the script to Python2 to make it compatible with Nuke 12 and below. Until I can get around to that, SharedShelves is limited to Nuke 13 or greater.
SharedShelves written by Isaac Spiegel with some code adapted from Adam Thompson. isaacspiegel.com Write me with any questions! isaacspiegel.freelance AT gmail