While testing Draft with Deadline + Shotgun we came across this issue.
The description.
Deadline finishes Maya rendering job (started from within Maya).
The rendered image sequence is passed to Draft for quicktime generation.
As soon as Draft is started the error message comes on. Draft runs in an infinite loop generating the
exactly same Error message again and again without ever creating the output quicktime.
Here is the Error message:
Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)
0: INFO: Startup Directory: “C:\Program Files\Thinkbox\Deadline\bin\Draft\64bit”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “C:/Users/theUser/AppData/Local/Thinkbox/Deadline/slave/Rack2/jobsData/DraftSubmission.py”, line 3, in
0: STDOUT: from System.Collections.Specialized import *
0: STDOUT: ImportError: No module named System.Collections.Specialized
0: INFO: Process exit code: 1
=======================================================
Error Type
at Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
From the looks of the error output, it seems like you’re trying to use the Monitor’s Draft Submission Script as a Draft template, which unfortunately won’t do much more than give you that error. In order to use Draft, you’ll have to write Python scripts to use as templates. All the available functions that you’ll need to write a template are described in this post here: viewtopic.php?f=85&t=5680#p23426
There are also sample templates in the original post of that thread, which would be a good starting point if you’re unsure of where to start.
So it looks like you’re using the first (outdated) build of Draft, or at least still have the first version of the DraftParamParser utility script kicking around. You’ll have to override your current Draft folder with the build found here: viewtopic.php?f=85&t=6327
Alternatively, you could setup a new folder for the above Draft build (could be on a network location, even), and update the Draft install path in the Draft Plugin Configuration to point to the new location. This can be done in the Deadline Monitor under Tools > Configure Plugins > Draft, as a Super User.
The outdated version of Draft is why 2/3 sample templates don’t work. It turns out I made an error when updating the Resizable_Demo.py one for the new version, and that one would break regardless . I’ll update it to fix this.
“C:\Program Files (x86)\Thinkbox\DeadlineRepository\events\Draft\Draft.py” is not a Draft template (it’s the Draft Event Plugin script), and therefore will always give this error.
Deleted all Draft. Installed new version 3 from the link you supplied.
Restarted Maya. Using Watermark_Demp_Template.py.
This time the Error message is a bit different:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Constructor: Draft
0: Task timeout is disabled.
0: Loaded job: nebula_v10 [DRAFT] (999_050_999_2427d7d2)
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Program Files\Thinkbox\Deadline\bin\Draft\64bit\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “C:/Users/theUser/AppData/Local/Thinkbox/Deadline/slave/Rack2/jobsData/Watermark_Demo_Template.py” username=“User: theUser” entity=“Entity: some_Task_clickable” version=“Version: 930” width=320 height=240 frameList=1-2 startFrame=1 endFrame=2 inFile=“C:\Users\theUser\Documents\maya\projects\fluid_render\images\nebula_v10.####.iff” outFile=“C:\Users\theUser\Documents\maya\projects\fluid_render\images\Draft\nebula_v10…mov” dependentJobID=999_050_999_304a01b1
0: INFO: Startup Directory: “C:\Program Files\Thinkbox\Deadline\bin\Draft\64bit”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at @rack2
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “C:/Users/theUser/AppData/Local/Thinkbox/Deadline/slave/Rack2/jobsData/Watermark_Demo_Template.py”, line 16, in
0: STDOUT: params = ParseCommandLine( expectedTypes, sys.argv )
0: STDOUT: File “C:\Program Files\Thinkbox\Deadline\bin\Draft\64bit\DraftParamParser.py”, line 196, in ParseCommandLine
0: STDOUT: Command line args:
0: STDOUT: username=User: theUser
0: STDOUT: entity=Entity: some_Task_clickable
0: STDOUT: version=Version: 930
0: STDOUT: width=320
0: STDOUT: height=240
0: STDOUT: frameList=1-2
0: STDOUT: startFrame=1
0: STDOUT: endFrame=2
0: STDOUT: inFile=C:\Users\theUser\Documents\maya\projects\fluid_render\images\nebula_v10.####.iff
0: STDOUT: outFile=C:\Users\theUser\Documents\maya\projects\fluid_render\images\Draft\nebula_v10…mov
0: STDOUT: return ParseParams( expected, params )
0: STDOUT: File “C:\Program Files\Thinkbox\Deadline\bin\Draft\64bit\DraftParamParser.py”, line 119, in ParseParams
0: STDOUT: raise StandardError( “ERROR: Expected parameter ‘%s’ was not found.” % key )
0: STDOUT: StandardError: ERROR: Expected parameter ‘outfile’ was not found.
0: INFO: Process exit code: 1
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)
Exception Details
RenderPluginException – Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)
RenderPluginException.Cause: JobError (2)
RenderPluginException.HasSlaveLog: True
Exception.Data: ( )
Exception.TargetSite: Void RenderTask(System.String, Int32, Int32)
Exception.Source: deadline
Exception.StackTrace:
at Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
0: STDOUT: File “C:/Users/lookfx/AppData/Local/Thinkbox/Deadline/slave/Rack2/jobsData/DraftSubmission.py”, line 3, in
0: STDOUT: from System.Collections.Specialized import *
0: STDOUT: ImportError: No module named System.Collections.Specialized
0: INFO: Process exit code: 1
So it looks like I also overlooked another update to Draft when I was fixing up those sample templates. Here are the updated versions: Draft Templates.zip (4.73 KB)
The DraftSubmission.py file still won’t work though, since that’s just the Submission script. Not all .py Python files are Draft templates
It is working great! The slated quicktime is placed in Shotgun’s “Uploaded Movie” field.
But what if I want to set this generated by Draft quicktime movie into the Shotgun’s “Path to Movie” field (in addition to “Uploaded Movie”. Since it is where the RV player is looking for it…
Here is a possible scenario for the Deadline/Draft to Shotgun submission:
Deadline finishes the rendering job. It creates a Shotgun’s version. Deadline fills the Shotgun’s Version’s “Path to Frames” field with the entire file-path-to-the-image-sequence with the RV friendly frame padding syntax: fileName.####.JPG).
Example:
C:\Users\theUser\Documents\maya\projects\fluid_render\images\nebula_v10.####.png
After that step is completed Deadline without waiting for any user input precedes by sending the just-rendered-image-sequence to Draft for a low-resolution-compressed-slatted-trimmed-who-knows-what-else quicktime movie generation.
When Draft completes a quicktime movie generation it places its links in two fields of the same Shotgun’s Version Deadline created earlier (step 1).
Those fields are:
“Uploaded Movie” (this is what Draft is doing now).
“Path to Movie” (that is what we want it to be places since RV uses it for a default playback).
It would be nice if the options of where and what Draft and Deadline is using would be under the user’s control.
You have mention that Deadline Monitor lets the user to do Shotguns entries customizations. How can we do it working with Draft?
We’re not currently filling in the Path To Movie in Shotgun when the Draft job completes, but it would be pretty simple for us to do alongside the uploading of the actual video; I could get this in for the next beta build.
It would be great if many if not all of the settings or features of the software could be turned on and off or changed or customized any possible way.
Ability to control what software does is invaluable. We don’t want Draft to always upload or associate the data with some predefined baked-in fields in Shotgun.
We want to be able to control what data and what field Draft is associating the data with.
Let’s say I create a custom data field in Shotgun. Now I want Draft to link the generated movie with that custom field. We would need to be able to control as much as possible. Give us some flexibility even if it would require the script tweaking.