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.
Example: 1003, 1006-1014+4, 1017, 1030, 1050 ,1065-1075+5 


Note: The frameset length is currently limited to 150 characters.



Frameset via Boolean String List:
There is one alternative by using a Boolean String List instead.
The disadvantage is that you cannot view or edit the frameset in rrControl.

To use it, please set <SeqFrameSet> to the value  BinaryFrameSetLock

Then add another xml variable <CustomBinaryFrameSet>.
The format of CustomBinaryFrameSet value is [firstFrame]-[boolString].
[firstFrame] is the first frame of the frameset.

[boolString] is a boolean list with 0 and 1.

Example: The frameset 

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.
So in rrControl it will look like this  "4!!!!z:BGvhzzzm/!!!@BW@;Yqn/Orx4B!".


Note that we have a python class to create this boolean list if you do not want to create it on your own:

from rr_python_utils.load_rrsubmit import rrSubmitLib  

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. 
If you do NOT specify ImageDir, then ImageFilename has to include the path. 
Same for ImageExtension. If you specify an extension, then the ImageFilename must not have any extension

Important: Do not forget any _ or . in front or after the frame numbering. 
Usually ImageExtension always starts with a . (.tga .sgi .exr)

ImageFileNameVariables

Some renderer require you to use variables in the filename.
For example older Maya versions automatically add the Layer name if you have not added <Layer> to 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. 
In Maya and XSI called "project", in Lightwave "content dir"

ImageWidth,

ImageHeight

Required if you want to split frames on multiple clients.

Camera

Flag that may be used as render commandline parameter.
Shown in a rrControl column.

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.
Shown in rrControl column "Layer"

SceneTake

Flag that may be used as render commandline parameter.
Shown in rrControl column "Layer"

rendererVersion

Information shown in Job Info tab in rrControl.
May be used for rrEnv files to use the right renderer version




<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
AOVExtension

rrControl displays the name of additional AOVs that are rendered. 
Each channel requires these two values. 
AOVFilename has to contains the full path. (Might be automatically converted into a relative path to main output for shorter display)

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.
Division names can be used in rrConfig to prefer jobs over other jobs.
Grouping jobs after JobType in rrControl planed.
Exporting into HistoryDB planed.

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
rrJob_OCIO_View
ColorSpace_ConfigFile

The OCIO color space the file was saved with
Your view color space (NOT display color space)
The OCIO config file that you use

OverrideIcon

If you want to have a different icon for the job in rrControl.
Specify the filename only.
The file has to exist in folder RR/render_apps/_config_inhouse

ImageStereoL
ImageStereoM

ImageStereoR

If you render stereo images, then we recommend you to use <Stereo> inside the main filename.
And use these variables to specify the actual filename part of the stereo file.
The rrViewer will display both views.
You can simply test to submit a stereo Nuke file to see it.

shotgunID

The ID of this shot in Shotgun or FTrack

rrEnvFile
rrEnvList

Environment variables.
Please see Render Environment.

CommandPassword

If you specify a command password for the job, then you can use this password in any script to change/control the job.
(In case your RR setup requires user authorization)




Use variables inside values


Note that you can use variables inside some other xml tags.

For example
<ImageFilename> \\fileserver\share\projectX\render\testrender_&lt;User&gt;.###.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 &lt; and &gt;



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 #

##############################################