rrJob submit xml file
Submission .xml file export
Note that rrControl has an "export database .xml file" menu item.
This cannot be used for submission.
But there is another python command if you right-click on a job "Once | Export as Submission xml".
This can be used to be loaded into the rrSubmitter.
XML header
The XML structure is
<rrJob_submitFile syntax_version="6.0">
<DeleteXML>1</DeleteXML>
<Job>
...
</Job>
<Job>
...
</Job>
<Job>
...
</Job>
<Job>
...
</Job>
</RR_Job_File>
DeleteXML:
DeleteXML tells the submitter to delete this file after it has been loaded.
<Job> </Job>:
This section includes all scene settings (scene file name, camera, layer, ...) for each job as xml nodes.
Example Submitter file without RR settings
You can add as many jobs to one xml file as you like.
All jobs that are in one file get the same base rrJob {ID} in RR.
The preID (last small letter of the ID "a", "b", "c", ...) changes automatically.
A job can be anything, you may create an xml file with
- one scene only
- one scene with multiple cameras or layers
- multiple scene files
- multiple scene files of different render applications. (e.g. render with Maya and directly comp that rendering with Nuke.)
Default settings:
You do not have to set everything.
If you do not set a parameter in the xml file, then the default is used.
<Job> XML Attributes - required
Software |
Name of your render application. Same as in the render config file. (Maya, Softimage) |
Renderer |
Renderer you use. Same as in the render config file (VRay, Mental Ray, Arnold) |
Version |
Version you want to render with. (5.11, 2010, 12) |
SceneName |
Name of the scene file with full path. |
IsActive |
Is the job enabled for submission? |
SeqStart, SeqEnd, SeqStep, SeqFileOffset |
Sequence settings of this job |
SeqFrameSet |
Set a frameset string instead of start/end/step. Note: The frameset length is currently limited to 150 characters. Frameset via Boolean String List: To use it, please set <SeqFrameSet> to the value BinaryFrameSetLock Then add another xml variable <CustomBinaryFrameSet>. [boolString] is a boolean list with 0 and 1. 1003, 1006-1014+4, 1017, 1030, 1050, 1065-1075+5 as CustomBinaryFrameSet is: 1003-1001000100010010000000000001000000000000000000010000000000000010000100001 Note: RR might compress the value "1003-1001000100010010000000000001000000000000000000010000000000000010000100001" at submission. import rrJob binFrameSet=rrJob._binaryFrameSet() binFrameSet.setStartFileFrame(1003) #the first frame of your job binFrameSet.setFrame(1006, True) binFrameSet.setFrame(1010, True) binFrameSet.setFrame(1014, True) binFrameSet.setFrame(1017, True) print(binFrameSet.asString_BitA85()) #export as small coded string print(binFrameSet.asString_Bool()) #export as boolean string list print(binFrameSet.asString_FrameSet()) #export as frameSet string list, auto-sequence detection to optimize the length if len(binFrameSet.asString_FrameSet()<150): #use the default submission for a better user experience (able to read and modify) xml.add(“SeqFrameSet”, binFrameSet.asString_FrameSet()) else: xml.add(“SeqFrameSet”, rrSubmitLib.get_frameSetBinaryLock_name() ) xml.add(“CustomBinaryFrameSet”, binFrameSet.asString_Bool() ) #you may use asString_BitA85() as well. |
ImageDir, ImageFilename, ImageExtension |
If you specify ImageDir, then ImageFilename should have no path. Important: Do not forget any _ or . in front or after the frame numbering. |
ImageFileNameVariables |
Some renderer require you to use variables in the filename. |
ImagePreNumberLetter |
Some applications always add a . or _ in front of the frame number. Set this variable to that character. The user can then change the filename at the rrSubmitter and the submitter keeps track of this character. |
ImageSingleOutputFile |
If you render a single file, e.g. Quicktime or Avi, then you have to set this value. Videos have to be rendered at once on one client. |
SceneOS |
The OS the scene was created on, all texture paths are set on that OS. Possible values are windows, linux, osx |
Required for some render applications or jobs:
SceneDatabaseDir |
The database of your scene file. |
ImageWidth, ImageHeight |
Required if you want to split frames on multiple clients. |
Camera |
Flag that may be used as render commandline parameter. |
Layer |
Flag that may be used as render commandline parameter. Shown in a rrControl column. |
AOV |
Flag that may be used as render commandline parameter. Shown in rrControl column "Layer" |
SceneState |
Flag that may be used as render commandline parameter. |
SceneTake |
Flag that may be used as render commandline parameter. |
rendererVersion |
Information shown in Job Info tab in rrControl. |
<Job> XML Attributes - optional
rrSubmitterPluginVersion |
An information about the application that created the xml file. |
RequiredLicenses |
Used for the RR render license function. If you render with Nuke and you use Furnace plugins in your comp, add Furnace. A renderer licenses count can be set in rrConfig |
CustomSceneName |
Override the scene name displayed in rrControl. |
CustomA, CustomMyData, CustomMore, ... |
Custom variables, that can be used in a render config or postscript. |
ImageFramePadding |
Frame Padding of the frame number in the rendered filename. Some render config files are setting the padding at render time. |
OverrideImageFormat |
Some render applications support overriding the image format at the render commandline. |
AOVFilename |
rrControl displays the name of additional AOVs that are rendered. |
PreID |
A value between 0 and 255. Each job gets the Pre ID attached as small letter to the main ID. A new main ID is generated for every machine for every 5/1000s. |
WaitForPreID |
When the job is received by the server, the server checks for other jobs send from this machine. If a job with the PreID was found, then this jobs waits for the other job. Note: This flag can be used multiple times to wait for multiple jobs. |
Division |
You set a custom division name for the job. |
JobType |
Information only Exported into the HistoryDB. Grouping jobs after JobType in rrControl planed. |
CompanyProjectName |
Override the company name of the job |
rrJob_OCIO_File |
The OCIO color space the file was saved with |
OverrideIcon |
If you want to have a different icon for the job in rrControl. |
ImageStereoL ImageStereoR |
If you render stereo images, then we recommend you to use <Stereo> inside the main filename. |
shotgunID |
The ID of this shot in Shotgun or FTrack |
rrEnvFile |
Environment variables. |
CommandPassword |
If you specify a command password for the job, then you can use this password in any script to change/control the job. |
Use variables inside values
Note that you can use variables inside some other xml tags.
For example
<ImageFilename> \\fileserver\share\projectX\render\testrender_<User>.###.exr </ImageFilename>
Available variables inside variables are:
- <User>
- <LocalHost>
- <NetworkShare>
- <CompanyProject>
- <Layer>
- <Channel>
- <CustomScene>
- <CustomShot>
- <CustomVersion>
- <Scene>
- <SceneFolder>
- <Database>
- <../>
Special xml variables
The xml parser supports some special variables:
- <xmlFolder>
The directory where this xml file is located.
Note:
If you do NOT use any xml writer plugin/module,
then do not forget to escape/replace < and > with < and >
Submitter/rrJob Options
The <job> flags include everything about the scene.
But you have a lot of additional Render parameter (Priority, Verbose, Quality ) and Royal Render options (Which client, Post-scripts, Notification ).
These settings are not scene related and usually controlled by "Submitter Defaults Files".
These "Submitter Defaults Files" are stackable. And the rrSubmitter commandline or this .xml is just another stack item for the default settings.
There are two modes:
- Global per Submission:
This is the recommended way.
Add a global xml node and include the same parameter as you would in a commandline.
For example an .xml file could start like this:
<rrJob_submitFile syntax_version="6.0">
<DeleteXML>1</DeleteXML>
<SubmitterParameter> RenderPreviewFirst=1~0 </SubmitterParameter>
<SubmitterParameter> "CustomSeQName=1~345" "CustomSHotName= 1~17a" </SubmitterParameter>
<Job>
.
.
.
</Job>
- Local per job:
You can set these settings per job. But this has some disadvantages:
1) You will not see the settings in the UI of the rrSubmitter.
2) Usually the Submitter Default Files "last" and "non_admin" are applied after the artist changes the rrSubmitter UI, sets flags via commandline or via a global xml setting.
In this case the settings are applied after these files. But before the render config overrides non-valid settings.
<Job>
<SubmitterParameter> "CustomSeQName=1~345" "CustomSHotName= 1~17a" </SubmitterParameter>
.
.
.
</Job>
Some option examples (full and short name)
Please read Submitter Defaults Files for more information about these settings and their names.
"CustomUserInfo=0~My custom message for the job"
"CUI=0~My custom message for the job"
"RenderPreviewFirst=0~1"
"RPF=0~1"
"SeqDivMIN=0~10"
"SDMIN=0~10"
"UserName=0~myUserName"
"UN=0~myUserName"
"CustomSeQName=1~P12" "CustomSHotName=1~50" "CustomVersionName=1~3B"
"CSCN=1~P12" "CSHN=1~50" "CVN=1~3B"
Option name?
You have multiple ways to get the name of an option:
- Open the rrSubmitter, menu item Default Values, "Edit preset file - via text editor".
Use the editors search function to search for a part of the option name as shown in the rrSubmitter.
Note: This does now show new options added by an Update of RR or by your custom changes like new post-scripts. - Open the rrSubmitter, menu item Default Values, "Edit preset file - via UI".
Press the first Edit/Read button.
Enter a part of the option name as shown in the rrSubmitter into the filter box.
See "string value loaded" in the title line of the option.
Note: This shows all recently added options as well. - Open one of the files \sub\cfg_global\submitter_*.txt in any text editor.
Use the editors search function to search for a part of the option name as shown in the rrSubmitter.
Note: This does now show new options added by an Update of RR or by your custom changes like new post-scripts. - There is an example file with most settings in this help as well.
Python script
If you want to create your own xml file via python, please take a look in one of your python script.
For exapmple RR\render_apps\_submitplugins\rrSubmit_Nuke.py
The file includes some functions that will help you to create .xml files.
You will want to use these two sections:
##############################################
# JOB CLASS #
##############################################
##############################################
# GLOBAL FUNCTIONS #
##############################################