CUSTOMIZING PLUMBER

 

Overview

 

While Plumber is a Turn-Key system for production, it is probably not a perfect stand alone system for every project. Plumber's native functionality makes it easy to use, but also limits what can be done. While Plumber3D.com offers Pipeline Customization, many experienced users will want to add their own features -- such as having Plumber set the frame ranges of an Opened Take automatically based on an external list.

 

Note that all of these custimization features will affect an individual Show only. It is possible to have two separate shows with completely unique customized systems.

 

Plumber has three types of built-in hooks that allow you to enhance the Plumber workflow, and to incorporate your own production wide tools and systems:

 

Plumber Scripter

 

The Scripter allows for custom Mel tools to be brought into the Show Repository and added to the Scripts menu of Plumber, making them accessible to everyone.  The Scripter takes existing Mel script tools, brings them into a common place, and sets them up to at the pressing of a button.

 

Quick Tutorial

 

1.


Go to the Scripts menu in the Plumber UI.  Whatever opther options are available, choose Add Scripts.  The Scripter UI should appear and look something like this.

 

Category Box - Allows Scripter Category Selection of existing Script Categories

 

Scripts - Lists the available scripts for the currently selected Category

 

Add Category Button - Creates a new Script Category

 

Delete Category Button - Removes the current Script Category. Will delete all contained Scripts, as well.

 

Add Script Button - Makes a new script available from the Scripts menu within the selected Category

 

Delete Script Button - Removes the selected script from the Scripts menu within the selected Category

2. Press the Add Category button.  
3 When prompted, type Example and then press OK.  It might seem like nothing happened, but if click on the Category list box, you will see that the Example Category is ready for use.  Select the Example Category.  
4 The Scripts list of Scripter will now be empty.  Press the Add Script button.  A file browser will come up.   Select any Mel script presently available.  
5.

The Set Script Runner window will come up.  At this point any commands required to run the script are entered. Multiple line statements can be separated by a “;”.

select cubeOne;sampleScriptProcess();

Scripts are automatically sourced whenever chosen from the Scripts menu in Plumber. If a script only needs to be sourced to run, do not enter any commands.

 

When satisfied, press OK, and close the Scripter.

6. There is now a catagory named Example within the Scripts menu of the Plumber UI window. Within that category is the recently added script. If the Script is selected from the menu, it will be sourced, and the commands previously entered will be run.  

 

 

CUSTOM Command Button

 

One simple way to add a custom process is to use the CUSTOM Command Button in the Shots Module. With it, every artist has access to a production unique process of your own design. To Change/Set what the Custom Button Command does, use Tools Menu->Change Custom Command Button. A file browser will appear. Browse to the mel script you wish to use. A window similar to the Set Script Runner seen in Step 5 of the Plumber Scripter Quick Tutorial will appear. Follow the same process as presented in Step 5.

 

Plumber Global Variables

 

 

While Plumber is a Python-based application, it creates and updates several global Mel variables that you can access in any Mel script. These allow you to create custom tools driven by what is selected in the GUI. Additionally, with the Base Project Path and the Current Show Name, the elements and file paths for the entire show can be tracked down due to the predictable and constent directory structure of Plumber elements.

 

 

Global Variable List

 

SHOTS

Base Project Path
$plumberMelProjectsPath
Current Show Name
$plumberMelShow
Current Plumber Sequence
$plumberMelSeq
Current Plumber Shot
$plumberMelShot
Current Plumber Department
$plumberMelDept
Current Selected Take
$plumberMelTake

 

ASSETS

Current Asset Type
$plumberMelAssetType
Current Asset Name
$plumberMelAssetName
Current Component Type
$plumberMelAssetCompType
Current Component Version
$plumberMelAssetCompVers
Current Component LOD
$plumberMelAssetLOD

 

Sample Mel Script

Here is a Mel script to show you how to incorporate all of the Plumber Global Mel Variables. Source this script in a Mel window when Plumber is running, and it will return the selection choices of the UI:

global string $plumberMelProjectsPath;
global string $plumberMelShow;
global string $plumberMelSeq;
global string $plumberMelShot;
global string $plumberMelDept;
global string $plumberMelTake;
global string $plumberMelAssetType;
global string $plumberMelAssetName;
global string $plumberMelAssetCompType;
global string $plumberMelAssetCompVers;
global string $plumberMelAssetLOD; print "\n";
print ("Asset Type = " + $plumberMelAssetType + "\n");
print ("Asset Name = " + $plumberMelAssetName + "\n");
print ("Componant Type = " + $plumberMelAssetCompType + "\n");
print ("Componant Version = " + $plumberMelAssetCompVers + "\n");
print ("Asset LOD = " + $plumberMelAssetLOD + "\n\n");
print ("Plumber Path = " + $plumberMelProjectsPath + "\n");
print ("Current Show = " + $plumberMelShow + "\n");
print ("Current Sequence = " + $plumberMelSeq + "\n");
print ("Current Shot = " + $plumberMelShot + "\n");
print ("Current Department = " + $plumberMelDept + "\n");
print ("Current Take = " + $plumberMelTake + "\n");

 

Plumber User Defined Mel Scripts

 

 

This is a very powerful customization option. Whenever Plumber tasks are run, a Mel script gets sourced before the task is performed, and another is sourced immediately after it is performed.   These scripts are initially blank, but these scripts can be edited to add any custom functionality, processes or workflows that will automatically be incorporated into the Plumber system. Since Shots and Assets have a consistent directory structure, global tools and processes for any show are relatively easy to add.

 

It cannot be understated just how powerful this is.

 

Here are just a few of the possibe enhancements with User Def scripts:

 

 

The UserDef Mel Scripts are located at:

 

$plumberMelProjectsPath\$plumberMelShow\data\mel\userDef

 

 

 

Plumber Action
Pre Script
Post Script

Add a Sequence to Show

preAddSeq.mel

postAddSeq.mel

Add a Shot to Sequence

preAddShot.mel

postAddShot.mel

Add a Show

preAddShow.mel

postAddShow.mel

Add an Asset to Scene

preAddToScene.mel

postAddToScene.mel

Make a Playblast

preBlast.mel

postBlast.mel

Commit  Version

preCommitVersion.mel

postCommitVersion.mel

Edit a Version

preEditVersion.mel

postEditVersion.mel

Load a Work in Progress

preLoadWip.mel

postLoadWip.mel

Add an Asset Placeholder

preNewAsset.mel

postNewAsset.mel

Open a Take

preOpenTake.mel

postOpenTake.mel

Remove an Asset From Scene

preRemoveFromScene.mel

postRemoveFromScene.mel

Save a Take

preSaveTake.mel

postSaveTake.mel

Save a Work in Progress

preSaveWip.mel

postSaveWip.mel