Installation

THE PLUGIN SUPPORTS MAYA 2009 and greater running pyMel 1.0.0 or greater

  • Copy the MayaMuster9.py script into your Maya scripts installation folder
  • Be sure you actually have pymel installed. This may be bundled with your Maya installation or you may need to download and install it. Go to https://code.google.com/p/pymel/ and follow the installation instructions online
  • Create a shelf command with the following Python instructions to invoke the plugin:
    import MayaMuster9
    MayaMuster9.submitToMuster()
  • Alternatively, you can put the Python script somewhere else in your filesystem and prepend the following commands to the shelf Python script:
    import sys
    sys.path.append(“YOUR SCRIPT PATH”)

Usage

The plugin appears by default with most of its settings nested and with the submission tab focused, while you can switch tabs to setup your Dispatcher first:

* Muster installation path: This field must specify the Muster root installation path
* Muster version: Specifies the Muster used version
* Host name or IP address: The host name or IP address of the machine running the Dispatcher service
* Network port: The management network port configured on the Dispatcher service
* Username: Your Muster account login name, use your directory account if Directory Services are configured on the Dispatcher
* Password: Your Muster account password
* Force save username and password: Stores your username and password into the preferences
* Skip templates synchronisation: If you're sure your Muster templates are up to date, flagging the checkbox tells Mrtool to skip the synchronisation phase making the submission faster
* Refetch pools: By clicking the button, you refetch the pools from the Dispatcher service
* Refetch queue: By clicking the button, you refetch the queue to allow smart submission on existing jobs
* Templates bindings: Depending on the render engine you select for the rendering, you may need to change the templates ID from those fields. Unless you're using custom templates, you can leave the default values

You can also save defaults and resize the windows by accessing the dialog menu:

* Save settings: Stores the settings of the submission plugins persistently as Maya vars
* Reset templates settings: Restores the templates bindings to their default value
* Window size is locked: Lock or unlock the window resizing
* Scene save check on submission is disabled: Disables checking if scene has been modified upon submission
* Password will be stored: Enables storing the password in your preferences
* Multiframe check on submission is disasbled: Checks that your scene is configured for multi frame render before submitting the job

The submission panel itself, is divided in several sections:

Job

* Check for job/layers existence in the queue: When you submit a job, if it already exists in the queue it is overwritten. Pay attention that, to use this function, the connector must make multiple calls to Mrtool and download the entire queue, so it may be a very slow submission experience
* Submit job paused: The job is submitted in paused status
* Submit a job for each render layer: If you have multiple render layers, you can submit a distinct job for each render layer
* Submit into folder: Submits the job(s) inside a folder
* Automatically manage folders names: The name of the folders in case the previous option is enabled, is managed automatically, otherwise you can specify the folder name into the Folder name field
* Group layers into folder: Groups the render layers into different folders
* Submit into emergency queue: Submit the jobs flagged as emergency jobs
* Job name: The name of the job
* Job department: The department of the job
* Job project: The project of the job, this is a custom metadata value, it has no impact on the Maya project folder
* Job camera: The camera of the job, this is a custom metadata value, it has no impact on the Maya cameras
* Job shot: The job shot name
* Job sequence: The job sequence name
* Notes: Notes to be included in the job submission
* Notes from Maya render layer's notes: Automatically fills the job's notes with the notes inside the render layers descriptions

Advanced Job

* Job dependancies IDs: Specifies IDs of jobs to depend from
* Dependance mode: Specifies the error level required for the depending jobs
* Job parent ID: If you want to submit inside a folder, you can specify the folder ID
* Exit code error check: The error check level for Maya exit codes
* Logs error check: The error check level for logs parsing errors and warnings
* Min logical units: The minimal logical units an instance must have to accept the job
* Min cores: The minimum cores an instance must have to accept the job
* Min physical units: The minimum physical units an instance must have to accept the job
* Min cores speed: The minimum speed an instance must have to accept the job
* Min available ram: The minimum amount of RAM an instance must have to accept the job
* Min available disk: The minimum amount of free disk space an instance must have to accept the job
* Environment: Specifies a custom environment in the form VAR=VALUE;VAR2=VALUE , you can also use inline Python for more complex environments. Please refer to the Custom actions and environment section of this Wiki
* Starts on: Specifies a starting time for the job

Job dispatch

* Auto detect render engine: The used render engine is loaded from the scene settings
* Render engine: Manually selects the render engine
* Template version: If the render engine selected has a template with multiple versions configured, you can type the target version
* Abort on log error: If an error is found into the log, the render is aborted
* Enable subframe progress: Enables line by line log's parsing to detect the current frame progress, if supported by the render engine selected
* Ignore image planes: Turns on image planes ignoring
* Output resolution: Sets an output resolution percentage from the one configured into the Render Globals
* Additional flags: Additional flags to pass to the Maya batch render (Render) command
* Destination pools: Specifies a destination pools or instances names. If the context menu is empty, you may need to fetch the pools using the Fetch pools button
* Excluded pools: Specifies the excluded pools or instances names. If the context menu is empty, you may need to fetch the pools using the Fetch pools button
* Frames destination folder: Specifies a destination path for the rendered frames
* Packet size: For multi frame jobs, specifies the packet size
* Packet size field: Manually specify the packet size
* Number of chunks: Calculates the packet size to obtain a specific amount of chunks
* Job priority: The job priority into the queue
* Maximum instances: The maximum number of instances to allocate for the job

Dialog buttons

At the bottom of the dialog, you have several buttons:

* Submit anim: Submits an animation as a Muster multi frame job
* Submit image: Submits an image slicing Muster job
* Open Console: Opens Muster Console
* Open Output: Opens the log output where you can check for submission's errors reported by Mrtool
* Close: Closes the dialog

Actions

Through the configuration of this section, you can define actions to be run on the Dispatcher or onto an instance.
Please refer to Muster console submission dialog to understand the meaning of each option

Image slicing

If you're going to submit an image slicing job, you can configure the behaviours from the following section:

* Frame: The frame to submit as an image slicing operation
* Number of slices: The amount of slices to produce for a single image
* Antialias overlap: The amount of overlap in pixel between each slice
* Slices file format: The render image format for the slices rendering
* Image format: The final image format for the assembled image
* Image width: The final image width
* Image height: The final image height
* Aspect ratio: The aspect ratio of the final image
* Remove slices after assembling: Tells Muster to delete the slices after successfully assembling them
* Skip assembler phase: Skip the assembling phase and keep the slices in place

Animation

If you're going to submit the job as a multi frame job, you can configure the behaviours in the following section:

* Range from render layers: Picks up the frame ranges from the render layers configuration
* Ignore time slider's by frame if less than 1: Ignores the by frame value of the Maya time slider if it is less than 1, and set it to 1
* From render globals: Loads frames ranges from the render globals
* From time slider: Loads frames ranges from the time slider
* Custom: Loads the frames ranges from the fields below
* Current frame: Submit just the current frame

Movie assembler

If you want to enable movie assembler building after the frames rendering, you can setup the following fields:

* Build movie from frames: Enabled the movie assembler phase
* Submit paused: Specifies how the movie assembling job should be submitted into the queue
* Output directory: Specified the output directory for the final movie
* Movie base name: Specifies the base name of the movie file
* Movie extension: Specifies the file extension of the movie file
* Frame rate: Specifies the frame rate of the movie file
* Input flags: Specifies any additional input flag to pass to FFMPEG
* Output flags: Specifies any additional output flag to pass to FFMPEG

Frames checking

If you want to enable frames checking after the rendering, you can configure it from the following fields:

* Enable frame check: Enabled the frames checking feature
* Frame check type: Checks against each individual chunk or each individual frame (scene)
* File check mode: Enables the frames final size check, either using a fixed value into the Low Limit field, or a size range between Low limit and High limit
* Recursion: How many failures may pass until the frame checking is skipped
* Use render layers: If rendering to multiple render layers, the frame checks attempts to check each individual render layer sequence
* Open image file: Attempt to open the image files to validate their content
* Check image dimension: After opening the image files, checks their framed dimension against the supplied values
* Get output resolution: Fills the image dimension fields with the current output resolution set into Maya

Global overrides

Enables some Muster common global overrides:

* Valid exit codes: Puts a list of exit codes values comma separated to consider valid
* Warning exit codes: Puts a list of exit codes values comma separated to consider a warning
* Error exit codes: Puts a list of exit codes values comma separated to consider an error
* Chunk timeout: The global chunks timeout for the entire job
* Chunk requeue count: The maximum requeue count for the entire job
* Job start mail/notificator/mobile: Overrides the logic to send an event when a job starts
* Chunk start mail/notificator/mobile: Overrides the logic to send an event when a chunk starts
* Job end mail/notificator/mobile: Overrides the logic to send an event when a job completes
* Chunk end mail/notificator/mobile: Overrides the logic to send an event when a chunk completes

Render layers

If you want to render only specific render layers, you can check them there: