Gaffer Deadline New Feature Roundup
Since first releasing GafferDeadline, Hypothetical’s extension for submitting Gaffer tasks to Deadline, I’ve added a number of new features to make it more flexible and powerful. Many of them came about from needing them for Hypothetical’s recent Welikia Recreated project.
That project also proved that our Gaffer Windows port and Gaffer Deadline work well in a cross platform environment. All of the production was done with the Windows fork of Gaffer, with rendering being done through Deadline on Amazon Web Services Linux instances. Deadline’s path mapping feature sorted out any differences in file naming requirements and away we went!
The latest releases are always available on Github. Let’s have a look at some of the new features and how they may be useful.
Include an arbitrary list of auxiliary files
Deadline allows the submitter to include what they call auxiliary files with each submission. These are files that are uploaded to the Deadline repository at the time of submission and downloaded to each Deadline Worker when it dequeues a job to render it. GafferDeadline always included the Gaffer script itself as an auxiliary file, and now it is easy to specify a list of additional files to include as auxiliary files.
When GafferDeadline renders the job, it sets an environment variable called “AUXFILESDIRECTORY” that can be used within Gaffer scripts to point file paths to the temporary directory where Deadline saves the auxiliary files.
This can be useful for files that would normally live on a server that you want to “freeze” at the time of submission in case they are likely to be changed before the job is rendered. It can also be handy for including files that are needed by a Gaffer script that are not included in path mapping rules.
Add custom environment variables for render jobs
Environment variables are a convenient way of customizing settings in Gaffer across the whole application. Studios often use them to preload settings specific to a studio location, show, shot and more to make it easy to keep data and settings organized.
Now you can specify any list of environment variables to be set by Deadline when the job is rendered. Especially when combined with GafferDeadline’s new string substitution (see below), this can be a great way of customizing a render job.
Gaffer allows you to use the “${name}” syntax to substitute variables into Gaffer plugs. For example if you normally launch Gaffer with an environment variable of SHOWNAME set, you can have a GafferDeadline SHOWNAME variable set to ${SHOWNAME}. On submission, the ${SHOWNAME} will be substituted with the SHOWNAME set in your workstation’s environment, and properly carried over to the Deadline Worker’s environment.
String substitution
Gaffer’s string substitution is a powerful method of using context variables, environment variables and frame numbers in string plugs. This feature is now included in all of the GafferDeadline string plugs, so you can easily set things like job groups based on an environment variable, job comment based on a context variable and much much more.
Custom Deadline settings
I’ve taken a selected set of commonly used Deadline settings to include in the main interface to GafferDeadline. But these are not always enough, especially considering how many settings Deadline offers. Now you can set any Deadline setting from a GafferDeadline submission. This means every setting can now be included in a submission!
Path mapping
As I described above, path mapping is sometimes a necessary requirement for rendering jobs across different operating systems or network layouts. Deadline’s path mapping is now supported in GafferDeadline, making it simple to submit jobs from one operating system to render on another. It’s also crucial for rendering with Deadline’s AWS integration to resolve file names from cloud-based Deadline Workers.
Coming up next…
There is more in store for our Gaffer + Deadline submitter, and if you are interested in contributing, find a bug or would like to see a particular feature implemented, head over to our Github repository .