Maya (Next-Gen) submitter reference¶
The Next-Gen submitter for Maya is a plugin node that allows you to configure and submit jobs to Conductor from its attribute editor.
This document is a reference for all the attributes and functionality of the plugin. If you want to get up and running fast, head over to the Next-Gen Maya submitter tutorial page .
The submission preview section shows how the other settings come together to create a submission. It is near the bottom of the attribute editor and its purpose is to help you check over the final submission properties to avoid mistakes. The Submission Preview panel is your friend.
The data in the preview panel updates live as you change attributes on the submitter and on other nodes like the Layer Manager and Render Globals. When you change the frame range in the Render Settings window, for example, connections to the submitter cause the list of tasks displayed in the submission preview to refresh.
To avoid sluggish behavior, the submission preview does not run asset scraping functions by default. Nor does it show more than a handful of resolved tasks. To change this, turn on Display Scraped Assets and set Display Tasks to
-1 or a very large number.
When you submit the job for real, it always includes scraped assets and all tasks.
When you first show the attribute editor, it will attempt to establish a connection with your account on Conductor. After you sign in, the submitter will fetch data required to populate the UI such as projects and instance types.
If the submit button does not activate, press the reconnect button to force an update. This can also be useful when something changed on your account, such as your project list.
After some checks, the job is submitted to Conductor. If the submission is successful, you'll see a dialog window with a link to where you can monitor the job on the web dashboard.
Run validations but don't submit. Validation results may be of type
If there are warnings or info notices, but no errors, a dialog pops up detailing the things to look out for. You can continue the submission, but take heed of the warnings.
If there are any errors, they appear the script editor. You can't submit a job when there are validation errors.
Warning. There are no renderable cameras.
Warning. The destination path is invalid.
Info. To start the upload daemon, enter the following command.
The title that appears in the Conductor dashboard. You may use angle-bracket tokens to construct the title. For example, if you want it to contain the scene name and the render layer name separated by a dash, enter the following expression.
Only tokens in the JOB scope are valid here. See the token table below.
A project you created on the Conductor dashboard. The drop-down menu updates when the submitter connects to your Conductor account. If the menu contains only the - Not Connected - option, or it doesn't show a newly created project from your account, then press the Reconnect button. Alternatively, right-click the label and choose Refresh Projects from the menu.
You can render just the current layer or all renderable layers. If you choose all renderable layers, several jobs are submitted to Conductor.
The submitter will respect frame range and other overrides in Render Settings. If your shot has several layers with different frame ranges, they are distributed correctly to machines in the cloud according to your chunk size setting.
On Conductor's render nodes, the directories that store your uploaded assets are read-only. Therefore you can't write out renders into those directories, and instead, the submission must specify a different directory to save. This destination path appears in the submission as
output_path and is one of only three writable locations, the others being the home directory and the temp directory.
Also, be aware, the destination path must not contain any of the assets you upload.
If your render produces intermediate files such as texture conversions or GI caches, their paths should be below the destination path.
By default, the destination path points to the images directory in the current project.
Specify the hardware configuration used to run your tasks. You are encouraged to run tests to find the most cost-efficient combination that meets your deadline. You can read about hardware choices and how they affect costs in this blog post.
Preemptible instances are less expensive to run than non-preemptible. The drawback is that they may be stopped at any time by the cloud provider. The probability of a preemption rises with the duration of the task. Conductor does not support checkpointing, so if a preemption occurs, the task starts from scratch on another instance. It is possible to change the preemptible setting in the dashboard for your account.
The version of Maya to run on the render nodes. You are not required to use the same as your local version, but be aware of feature changes that could affect your render.
Right-click on the Maya Version label to add plugins.
When you change Maya Version, you'll notice the environment updates in the submission preview section.
Choose the plugins that will render your job. The auto-detect feature should populate the list with a renderer plugin if you have one loaded when you create the submitter. If not, you may need to add one. Right-click over the Maya Version label and choose either Detect Software or Add Plugin.
A chunk is the set of frames handled by one task. If your renders are reasonably fast, it may make sense to render may frames per task because the time it takes to spin up instances, and sync can be significant by comparison.
Use Custom Range¶
When Use Custom Range is on, a text field appears and we ignore the frame range specified in the Render Settings window. Instead, enter a frame-spec.
A frame-spec is a comma-separated list of arithmetic progressions. In most cases, this will be a simple range:
However, any set of frames may be specified efficiently in this way.
Negative numbers are also valid.
Specify a set of frames to render first. We start any tasks that contain these frames. All others are put on hold. This allows you to check a subsample of your sequence before committing to the full render.
You can use a frame spec to specify scout frames, for example:
1-100x30. Alternatively, you can specify how many scout frames you want and let the submitter figure it out based on the current frame range. To specify three well-spaced scout frames automatically, enter auto:3.
Take note that the remote render nodes execute tasks in their entitity, so if you have chunk size set greater than 1, then all frames will be rendered in any task that contains a scout frame.
This section provides read-only information on the resolved sequence of frames and scout frames.
Use Upload Daemon¶
Use upload Daemon is off by default. This means that assets are uploaded within Maya itself. If you have a large number of assets to upload, it will block Maya until it finishes uploading.
A better solution may be to turn on Use Upload Daemon. An upload daemon is a separate background process. It means assets are not uploaded in the application. The submission, including the list of expected assets, is sent to Conductor, and the upload daemon continually asks the server if there are assets to upload. When your job hits the server, the upload daemon will get the list and upload them, which allows you to continue with your work.
You can start the upload daemon either before or after you submit the job. Once started, it will listen to your entire account, and you can submit as many jobs as you like.
To run an upload daemon, open a terminal or command prompt, and run the following command.
Once started, the upload daemon runs continuously, uploading files for all jobs submitted to your account.
Submit a job with no tasks. This can be useful in a pipeline for artists who create assets but do not submit shots. If a texture artist submits an upload only job, then by the time a lighting artist needs to test render, all the assets have been uploaded.
Asset scrapers are Python scripts, responsible for gathering asset paths required by the render. We provide 3 asset scraping scripts and for most situations they are sufficient.
Most of the work happens in
The document icon button to the right of each scraper entry is the test button. Use it to print the result of the scrape to the script editor.
If there are assets not found by the scrapers above, you have 2 options.
Browse for assets in the Extra Assets section. This is quick and easy for one-off requirements, or when the asset you want is always in the same place.
Write an asset scraper and register it here. This is perfect when you need to discover assets programmatically.
Write your own scraper¶
If you want to write an asset_scraper, you'll need to know Python and follow the guidelines below.
An asset scraper is a Python script, starting with
scrape_ by convention, though it’s not required.
It must live in a Python module directory, for example, your Maya scripts directory.
It must contain a
run() function that takes one argument, the submitter node.
It must return a list of dictionaries where each dictionary contains a
You can return paths containing glob patterns. This avoids the need to hit the filesystem. Those filenames are resolved later for the submission itself. You can test this by turning on Display Scraped Assets in the Submission Preview.
Only glob style wildcards are valid in the returned paths. If you want to resolve patterns such as
<frame>, you must do so in your scraper code, or replace those tokens with
*, to make them globbable.
Scraper scripts are reloaded every time you run or test or test, so they are always up to date. This makes development easy. Just Save the script, hit the test button, and check the script editor.
If the scrapers miss some assets, or if you want to upload a script, or maybe a color profile, you can browse explicitly to make sure they are available on the render nodes.
Add one or more email addresses, separated by commas to receive an email when the job completes.
A template for the commands to run on remote instances. The template defines the shape of a Maya command-line render. It uses tokens in angle brackets similar to those used in the Job title above.
If you examine the task template and then check the Submission Preview section, you'll see how it is resolved.
Example template and resolved task commands¶
Render -r <Renderer> -s <start> -e <end> -b <step> -rl "<RenderLayer>" -rd "<OutputPath>" -proj "<WorkspacePath>" "<SceneFile>" Render -r arnold -s 1 -e 5 -b 2 -rl "masterLayer" -rd "/Volumes/xtr/gd/duck/images" -proj "/Volumes/xtr/gd/duck" "/Volumes/xtr/gd/duck/scenes/quack.0003.ma" Render -r arnold -s 7 -e 9 -b 2 -rl "masterLayer" -rd "/Volumes/xtr/gd/duck/images" -proj "/Volumes/xtr/gd/duck" "/Volumes/xtr/gd/duck/scenes/quack.0003.ma"
In the example above, we set the frame-spec to
1-10x2 with a chunk size of
3. The submission, therefore, contains 2 tasks, each rendering a maximum of 3 frames. The start, end, and step parameters are substituted into the template accordingly.
Metadata consists of arbitrary Key/Value pairs that are attached to your submission. The purpose of metadata is to allow you to filter information in the Conductor web UI.
Example: To break down costs by shot number, you can add a metadata key called
shot and enter the shot number in the Value field. You can also enter environment variables in the value field that resolve in the submission. In the above example, you might use
$SHOT for the value.
By default, your job's environment variables are defined automatically based on the software and plugin versions you choose. Sometimes, however, it can be necessary to append to those variables or add more of your own.
For example, you may have a script you want to upload and run without entering its full path. In that case, you can add its location to the
Add an entry with the Add button and enter the Name of the variable:
PATH, the Value
/my/scripts/directory. Make sure Exclusive is switched off to indicate that the variable should be appended.
You can also enter local environment variables in the value field itself. They will then be active in the submission. You might use
$MY_SCRIPTS_PATH (if it's defined) for the value in the above example.
A task may fail if the command returns a non-zero exit code or is preempted by the cloud provider. Set a value above 0 if you would like to try the task again in either of these situations automatically.
On submission, you'll usually want to include the current file. It can be tedious to save the scene each time manually. The autosave feature allows you to set a filename template instead.
By default, autosave is active, and the template is the filename, prefixed by
If cleanup is on, then the autosave file is removed after submission.
You cannot use cleanup if you are using an upload daemon because the file itself is one of the assets to be uploaded, and the submitter doesn't know or care when the daemon has uploaded it.
The autosave template has access to the set of job-level tokens in the token table below, along with any environment variables available on your local system.
Attach a location to this submission for the purpose of matching to an uploader and/or downloader process.
If your organization is distributed in several locations, you can enter a value here, for example, London. Then when you run a downloader daemon you can add the location option to limit downloads to only those that were submitted in London.
|Token name||Example value||Scope|
If you feel there's some useful piece of information that the submitter could provide as a token, please contact support
I can't see the Conductor plugin in the Plugin Manager.¶
If the plugin does not appear, check to make sure the
conductor.mod file exists in the modules folder.
If not, open a terminal or command prompt and enter the following command.