hman


hman v0.5



hman ( for Houdini MAya Nuke ) is a jobs management tool written in python. It allows the user to create stack of jobs ( called a flowview ) and run them one after the other automatically, tested only on window machine for the moment.

Jobs can be :
    - Maya jobs ( Rendering the scene or exporting meshes in obj )
    - Houdini jobs ( Rendering cop / rop_output / mantra node )
    - Nuke Jobs ( Rendering write nodes )
    - Python Job (Executing a given python file with the given interpreter)
    - Batch command Job ( On windows, can be either a bat file or a given command / args )

For instance you can render a Maya scene ( Background and props ), creating a simulation in Houdini on one the props of the Maya Scene, comping all the results in Nuke and show the result using Maya fcheck command.
Then if you have to update your Maya scene you have to run again the flowview in hman in order to update automatically the Houdini output as well as the Nuke comp.
Using the Batch command job you can open the result comp in fcheck autimatically at the end of the flowview.

Hman doesn't use software's python implementation directly ( like hython or maya.cmds ) but generates python scripts and run them with the correct interpreter. This means it can be used with any 2.x python version. As long as the libs are compatible with the interpreter you use ( PyQt4 and matplotlib mainly, see the "libs" folder to see what is used).

How to use:

Simply run the hman.py.

The first time you run the tool, you'll see the path picker window, this is where you set all software (Maya, Houdini, Nuke ) paths needed by hman, at least one path must be valid.
This must point the global install path ( not including /bin or anything else ), for instance, on windows for Maya 2015, by default the path would be "C:\Program Files\Autodesk\Maya2015".


Paths picker window (click to see a larger picture)

Main UI:


hman main UI (click to see a larger picture)


1. Toolbar, where you can create / save / load flowviews

2. Flowview, this is where all the jobs created are stored. To render a flowview, click on one "Render" button, this will render the current job and all the jobs before it in the flowview (the order is from top job to bottom job).

3. Flowview information, here you can edit the flowview label and you can see jobs informations. Keep in mind that every jobs with a warning ( see below "job" section ) will be skipped.

4. Properties view show all the properties of the selected job. You can also render only the current job here.

5. Ouput view shows I/O informations, informations on jobs progress etc.

Jobs:

Job's informations


1. Job type
2. Move job up or down in the flowview
3. Path to the file used by the job ( hip file for Houdini job etc.)
4. Render this job and all other jobs upper in the flowview.
5. Warning(s) of the job, if any warning displayed, the job will be skipped when flowview is rendered. See the tooltip of the warning icon to see what the warnings are.
6. By pass job on/off toggle.
7. Delete this job from the flowview.

You can also add a description text on the properties view for each job. This will be displayed as tooltip on the job widget in the flowview.

Maya Job:

Maya job

Maya Job can be:
    - Render the current scene using the given renderlayer
    - Change the camera used in the scene.
    - Change the frame range used in the scene.
   
    - Export selected meshes to .obj format.

Maya job's properties


You can override the output folder for "Render Scene" job, all layers data will be saved here.
For Mesh export, this output file is mandatory and must be a valid path to an .obj file.

Maya file should be saved in ASCII mode ( .ma ), .mb are supported too but they are opened much slower and some issue can append with rendering engine.


Houdini Job:

Houdini job


Houdini job can render these kind of node for now: rop_output, comp node, and mantra node.

For Mantra node, pixel sample can be overriden.

Houdini job properties


To select a node click on the "Render Node" icon and pick one node you want to render in the given list ( ifd type is Mantra node ):

Pick a node to render from Houdini file

Nuke Job:


Nuke Job

Nuke job can write ouput imags from a write node from the given .nk file. The user can also override the frame range rendered.

Nuke job properties

Python Job:


Python job

The python job executes Python script from selected interpreter. Frame range is not used with this type of job.

Python job properties



Batch Job:

Batch job

Batch job can either launch a given .bat file or launche a command set in the "Command" field with given arguments if any.
"Wait for end of process" hangs the batch job thread until the command is finished (should be OFF for instance if you want to open a picuture with fcheck or other reader utilities ).

Batch job properties


Graphdata dock:

After a flowview rendering process, hman can save data about rendering times for each job. You can see a graph in the "Graphdata" dock.
It uses matplotlib to generate this graph ( for python 2.7 by default ), be sure you use the right version of the lib in the ../libs folder, otherwise the graphdata will be disabled.
You can also save the graph as png image file by clicking on the save button.

The graphdata UI