Maya Plug-in Guide
- 1 Maya Plug-in Guide
- 1.1 Job Submission
- 1.2 Cross-Platform Rendering Considerations
- 1.3 Plug-in Configuration
- 1.4 Integrated Submission Script Setup
- 1.5 FAQ
- 1.6 Error Messages And Meanings
You can submit jobs from within Maya by installing the integrated submission script, or you can submit them from the Monitor. The instructions for installing the integrated submission script can be found further down this page.
To submit from within Maya, select the Thinkbox shelf and press the button there.
- Camera: Select the camera to render with. Leaving this blank will force Deadline to render using the default camera settings (including multiple camera outputs).
- Project Path: The Maya project folder (this should be a shared folder on the network).
- Output Path: The folder where your output will be dumped (this should be a shared folder on the network).
- Maya Build: For Maya 8 and later, force 32 bit or 64 bit rendering.
- Use MayaBatch Plugin: This uses our new MayaBatch plugin that keeps the scene loaded in memory between frames, thus reducing the overhead of rendering the job. This plugin is no longer considered experimental.
- Ignore Error Code 211: This allows a Maya task to finish successfully even if the Maya command line renderer returns the non-zero error code 211 (not available when using the MayaBatch plugin). Sometimes Maya will return this error code even after successfully saving the rendered images.
- Command Line Args: Specify additional command line arguments to pass to the Maya command line renderer (not available when using the MayaBatch plugin).
- Deadline Job Type: Select the type of Maya job you want to submit. The available options are covered in the next few sections.
Maya Render Job
If rendering a normal Maya job, select the Maya Render Job type.
The following options are available:
- Threads: The maximum number of CPUs per machine to render with.
- Submit Render Layers As Separate Jobs: In Maya 7 and later, you can submit each layer in your scene as a seperate job.
- Override Layer Job Settings: If submitting each layer as a separate job, enable this option override the job name, frame list, and task size for each layer. When enabled, the override dialog will appear after you press Submit.
- Submit Cameras As Separate Jobs: Enable to submit each camera as a separate job.
- Ignore Default Cameras: Enable to have Deadline skip over cameras like persp, top, etc, when submitting each camera as a separate job (even if those cameras are set to renderable).
- Enable Local Rendering: If enabled, Deadline will render the frames locally before copying them over to the final network location. This has been known to improve the speed of Maya rendering in some cases.
- Strict Error Checking: Enable this option to have Deadline fail Maya jobs when Maya prints out any "error" or "warning" messages. If disabled, Deadline will only fail on messages that it knows are fatal.
- Render Half Frames: If checked, frames will be split into two using a step of 0.5. Note that frame 0 will save out images 0 and 1, frame 1 will save out images 2 and 3, frame 2 will save out images 4 and 5, etc.
- Tile Rendering: Enable tile rendering to split up a frame into multiple tiles that are rendered individually. By default, a separate job is submitted for each tile (this allows for tile rendering of a sequence of frames). For easier management of single frame tile rendering, you can choose to submit all the tiles as a single job. You can also submit a dependent assembly job to assemble the image when the main tile job completes.
If rendering with Mental Ray, there is an additional Mental Ray Options section under the Maya Options:
- Mental Ray Verbosity: Set the verbosity level for Mental Ray renders.
- Auto Memory Limit: If enabled, Mental Ray will automatically detect the optimal memory limit when rendering.
- Memory Limit: Soft limit (in MB) for the memory used by Mental Ray (specify 0 for unlimited memory).
If rendering with VRay, there is an additional VRay Options section under the Maya Options:
- Auto Memory Limit Detection: If enabled, Deadline will automatically detect the dynamic memory limit for VRay prior to rendering.
- Memory Buffer: Deadline subtracts this value from the system's unused memory to determine the dynamic memory limit for VRay.
Mental Ray Export Job
If rendering a Mental Ray Export job, select the Mental Ray Export Job type.
The following options are available:
- Output File: The full filename of the Mental Ray files that will be exported. Padding is handled automatically by the exporter.
- Export Settings: This opens up the Mental Ray export settings dialog where you can configure the remaining of the settings. Note that this dialog must be open when you submit the job to Deadline.
You have the option to submit a dependent Mental Ray Standalone job that will render the exported mi files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some Mental Ray specific job options that you can specify as well.
VRay Export Job
If rendering a VRay Export job, select the VRay Export Job type.
The following options are available:
- Output File: The full file name of the VRay files that will be exported (padding is handled automatically by the exporter).
- VRay Render Job: You have the option to submit a dependent VRay Standalone job that will render the exported vrscene files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some VRay specific job options that you can specify here.
- Vrimg2Exr Render Job: If you are submitting a dependent VRay Standalone job, and the output format is vrimg, you have the option to submit a dependent job that will convert the vrimg files to exr files, using VRay's vrimg2exr application.
Renderman Export Job
If rendering a Renderman Export job, select the Renderman Export Job type.
The following options are available:
- Threads: The number of threads to use for exporting. Specify 0 to automatically use the optimal number of threads.
- PRMan Render Job: You have the option to submit a dependent PRMan job that will render the exported rib files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some PRMan specific job options that you can specify here.
Arnold Export Job
If rendering an Arnold Export job, select the Arnold Export Job type.
The following options are available:
- Arnold Render Job: You have the option to submit a dependent Arnold Standalone job that will render the exported .ass files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some Arnold specific job options that you can specify here.
Cross-Platform Rendering Considerations
In order to perform cross-platform rendering with Maya, you must setup Mapped Paths so that Deadline can swap out the Project and Output paths where appropriate. You can access the Mapped Paths Setup in the Monitor while in super user mode by selecting Tools -> Configure Repository. You'll find the Mapped Paths Setup in the list on the left.
As long as all paths used in your Maya scene are relative to the Project and Output paths, and those paths are network accessible, you should have no problems performing cross-platform renders.
You can configure the MayaBatch and MayaCmd plug-in settings from the Deadline Monitor. While in super user mode, select Tools -> Configure Plugins and select the Maya plug-in from the list on the left. To get a description of each setting, simply hover the mouse cursor over a setting and a tool tip will be displayed.
Integrated Submission Script Setup
The following procedure describes how to install the integrated Maya submission script. This script allows for submitting Maya render jobs to Deadline directly from within the Maya editing GUI. The script and the following installation procedure has been tested with Maya versions 7.0 and later.
- Copy the file [Repository]\ClientSetup\Maya\InitDeadlineSubmitter.mel to [Maya Install Directory]\scripts\startup.
- On Windows, if you do not have a userSetup.mel in [My Documents]\maya\scripts, copy the file [Repository]\ClientSetup\Maya\userSetup.mel to [My Documents]\maya\scripts. If you have a userSetup.mel file, add the following line to the end of this file:
- source "InitDeadlineSubmitter.mel";
- The next time Maya is started, a Thinkbox shelf should appear with a single button that can be clicked on to launch the submitter.
On Windows, if you don't see the Thinkbox shelf, it's likely that Maya is loading another userSetup.mel file from somewhere. Maya can only load one userSetup.mel file, so you either have to configure Maya to point to the file mentioned above, or you have to modify the file that Maya is currently using as explained above. To figure out which userSetup.mel file Maya is using, open up Maya and then open up the Script Editor. Run this command:
Custom Sanity Check
You can create a CustomSanityChecks.mel file in the [Repository]\submission\Maya folder which can be used to set defaults in the submission script before it is displayed. For example, here is a script that can set the default Limit Groups based on the renderer:
AddStringAttribute( "deadlineLimitGroups" ); string $renderer = GetCurrentRenderer(); if( $renderer == "mentalRay" ) setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "mental_ray_for_maya"; else if( $renderer == "vray" ) setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "vray_for_maya"; else setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "";
- Which versions of Maya are supported?
- Maya versions 7.0 and later are all supported by Deadline.
- Which Maya renderers are supported?
- 3Delight, Arnold, Final Render, Gelato, Maxwell, MayaSoftware, MayaHardware, MayaVector, Mental Ray, Mental Ray Exporter, Renderman, Turtle, and VRay are all supported.
- Does the Maya plugin support Tile Rendering?
- Yes. See the Job Submission section above for more details.
- Which Maya application should I select as the render executable in the MayaCmd plugin configuration?
- Select the Render.exe application. This is Maya's command line renderer.
- Which Maya application should I select as the render executable in the MayaBatch plugin configuration?
- Select the MayaBatch.exe application. This is Maya's batch renderer.
- What is the MayaBatch plugin, and how is it different than the MayaCmd plugin?
- This plugin keeps the Maya scene loaded in memory between frames, thus reducing the overhead of rendering the job. This is the recommended plugin to use, but if you run into any problems, you can always try using the MayaCmd plugin.
- Why is each task of my job is rendering the same frame(s)?
- This happens if you have the Renumber Frames option enabled in your Maya render settings. Each task is a separate batch, and if Renumber Frames is enabled, each batch will start at that frame number.
- I have a multi-core machine, but when rendering the machine isn't using 100% of the cpu. What can I do?
- When submitting the job to Maya, set the Threads option to 0. This will instruct Maya to use the optimal number of threads when rendering based on the machine's core-count.
- Does Deadline support Maya render layers?
- Yes. You can either submit one job that renders all the layers, or you can submit a single job per layer.
- Can I render scenes that use Maya Fur?
- A recommended setup for Maya is to have your project folder on a shared location that all of your machines can see (whether it be a Windows folder share or a mapped path), then create your Maya scene in this project folder. This way, when you submit the job to Deadline, you can specify the shared project path in the submission dialog, and all of your slave machines will be able to see it (and therefore see the Maya Fur folders within the project folder).
- Can I make use of the particle cache during network renders?
- Yes you can. All that is necessary to do this is to make your scene's project directory network-accessible by your slaves. For a guide to setting up particle caches, check out this guide on the ResPower Website that describes the proper set-up procedure for the Maya particle cache.
- When rendering with Mental Ray in Maya 7.0, the rendered images are sent to the Project path instead of the Image Output Path.
- There is a bug in Maya 7.0 that causes the command line option which specifies the output path in Mental Ray to be ignored. This has been addressed in Maya 7.0.1.
- Currently, the best solution is to ensure the project path you specify is network accessible, and that the Maya Plugin option "RenderToNetworkDrive" is set to true. Doing this disables the local rendering feature, and ensures that your rendered images are saved on the network.
- When clicking on one of the folder browser buttons in the Maya submission dialog, I sometimes get an error.
- There is an article on this problem. It's a .NET problem that seems to randomly occur when the user specifies a path of more than 130 characters, but it looks like Microsoft provides a hotfix for it.
- When submitting the job from Maya, if I check the Submit Each Render Layer As A Separate Job box, no jobs are submitted to Deadline when you click submit.
- The render layers you want to submit need to be set to renderable (the letter 'R' need to be there next to the render layer) for the submitter to submit the layer. Note that render layer should not be confused with display layer. Deadline only deals with render layers. It is not using the Maya option to render only the content of a specific display layer.
- I'm trying to render certain frame range from maya, but Deadline is rendering the entire frame range set in the Maya render globals.
- If you have the Submit Each Render Layer As A Separate Job box checked, Deadline grabs the frame information from each individual layer's render globals when submitting the job. If unchecked, Deadline will use the info from the Frame List in the submission dialog.
- Rendering Maya scenes with Deadline is taking forever in comparison to a local render of the same file.
- One thing you can try is ensuring that the Local Rendering option is enabled when submitting the job to Deadline. This forces Maya to render the frame locally, then copy it to the final destination after. This has been known to improve rendering speeds.
- How do I configure Mental Ray Satellite to render Mental Ray for Maya jobs with Deadline?
- Choose a satellite master machine, then modify the maya.rayhosts of the that machine so that it uses the slaves you want.
- Only put the master machine in Deadline.
- Submit a job to deadline, and make sure that the job will be picked-up by the master machine you have setup. Use pools to do so.
- In the job property page of the Maya job, in the Maya tab, you could add the following line in the additional arguments field: -rnm 1
- This -rnm 1 means "render no master true", whicht will force the master not to participate in the rendering but only submit and receive the render tasks. You will get better results this way.
- You could also use -rnm 0 which means "render no master false" and force 1 cpu on the master (if your master is a dual cpu) so you have 1 cpu free on the master to dispatch the task. In short you should always have 1 cpu free on the master machine for dispatching or else your render time will suffer.
- Can I submit MEL or Python Maya script files to Deadline?
- Yes, you can submit your own custom scripts from the Advanced tab in the Maya submission script in the Monitor Submit menu.
Error Messages And Meanings
This is a collection of known Maya error messages and their meanings, as well as possible solutions. We want to keep this list as up to date as possible, so if you run into an error message that isn't listed here, please email Deadline Support and let us know.
- Exception during render: Error: (Mayatomr) : could not get a license
- Mental Ray is reporting that it can't find a license. Mental Ray requires an additional license for network rendering, whereas renders such as mayaSoftware and mayaHardware simply uses your Maya license.
- Certain versions of Maya come with satellite licenses for Mental Ray, but this requires some additional setting up to enable network rendering. It's probably best to contact the Maya support team about this.
- Exception during render: Renderer returned non-zero error code, 211
- When Maya prints this error message it usually means that Maya can't access a particular path because it either doesn't exist or it doesn't have the necessary read/write permissions to access it. This error tends to occur when Maya is either loading the scene or other referenced data or when saving the final output images.
- When you get this error, you should check the slave log that is included with the error report. If it is a path problem, Maya shows which path it wasn't able to access. Check to make sure that the slave machine rendering the job can see the path, and that it has the necessary permissions to read/write to it. If it's not a path problem, the slave log should still provide some useful information that can help explain the problem.
- There is also the case where Maya exits with this error code after successfully rendering the images. If this is the case, there are two things to try:
- When you submit the job, enable the option to ignore error code 211.
- When you submit the job, enable the MayaBatch option. Deadline doesn't check error codes in this case.
- Exception during render: Error: Cannot find procedure "getStrokeUVFromPoly"
- This error can occur when rendering with paint effects. When you write prerender/postrender scripts be sure to use maya commands and not function wrappers that the gui posts since a huge number of functions don't get loaded when rendering in batch mode.
- For a quick fix, add the following before the call to the prerenderscripts main functions:
- source "getStrokes";
- Turtle: The system cannot find the path specified.
- When Turtle is installed, it sets some environment variables. However, Deadline will not recognize these variables until the Deadline Launcher (the application in the Windows tray) is restarted. Restarting the Deadline Launcher will fix this problem.
- Exception during render: Renderer returned non-zero error code, -1073741819
- The error code -1073741819 is equivalent to 0xC0000005, which represents a Memory Access Violation error. So Maya is either running out of memory, or memory is becoming corrupt. Take a look at the full render log to see if Maya prints out any information prior to the crash that might explain the problem.
- mental ray: out of memory
- Try tweaking your Memory and Performance settings in the mental ray tab in the Maya Render Settings window. Try increasing the Physical memory setting (if you have the extra RAM). A common suggestion is to set it to 80% of your available RAM. You could also try tweaking the Acceleration method settings.
- Another thing you can try is trimming down your scene so that is uses less memory.