Process Automation Within the Wonderful World of Animation

DZone 's Guide to

Process Automation Within the Wonderful World of Animation

DevOps principles like a focus on automation can exist well outside of the world of software development.

· DevOps Zone ·
Free Resource

I’ve been animating professionally for 4 years now, and I've enjoyed every last minute of it. Whilst in my final year at Staffordshire University, I studied the basics of using Autodesk Maya’s script editor to automate processes such as auto-rigs, pipeline tools, batch files, etc. These are developed using the languages MEL (Maya Embedded Language) and Python. At the time this was quite a new challenge, as my only prior experience with programming was my time spent as a kid personalizing my MySpace page. Lately, I’ve been looking into my personal processes as an animator, and it has come to light that certain tasks are repeated time and time again. Linking the two together, I began to look into process automation, and how it could be implemented to help streamline my workflow. This is what I have found from the past 2 weeks of my journey into process automation.

Benefits to Process Automation

The most valuable benefit of implementing automated processes is that it saves you time. But there are many other advantages to process automation:

Reduced Personal Hours

The right automation solution will reduce the amount of time that is spent on each given task — the time saved is highly dependent on the task that is getting automated. For instance, generic tasks such as folder setups are processes that are carried out with each and every project. Automating this process means short snippets of time can be saved on a regular basis; this inevitably builds up to save more time than originally spent creating and implementing the automation solution.

Reduced Error

Most mistakes or inconsistencies are made due to human error. This is because the user has to memorize the original process, resulting in slight deviations. These errors can end up spiraling and result in many painstaking hours trying to backtrack and resolve. For example, you create a 3D composition, texture, animation, and carry out the render setup. A few hours into your render you notice the lighting isn’t correct. The last few hours have been wasted rendering, and you have to find the source of the issue. You find that you didn’t set the render camera to a V-Ray Physical camera. All of this could have been avoided if you hadn’t forgotten to select a small checkbox.

Reduced Costs and Overhead

Process automation ultimately reduces costs directly because of the reduction in time. With the right processes selected, they can be automated and result in a large amount of time saved, allowing targets to be reached with more efficiently and with higher accuracy. Also, services become more valuable because the work produced is carried out to the timescales, and to a consistently high standard.

Where Should You Start With Process Automation?

The first step is to assess your current workflow. I decided to break down the animation processes taken, from first receiving the brief, to the delivery of the final project. With this formalized workflow, I could find where automated possesses were best to be implemented.

From this, I identified two processes: file organization and full scene setups.

One of the first tasks I carry out every time I start a new project within Autodesk Maya is to create an object outliner folder setup. This isn’t a lengthy task, but with each new project user-generated inconsistent naming structures can be found. With larger projects, this could be an issue because objects may not be in their obvious location. This is where I began creating process automated scripts, by developing a Python script in Maya to create a general folder setup. This is something that anyone can use, and if someone else opens the project file, they’ll immediately know what to expect and where to find each object within the outliner. This was a short script to write and carries out a task that is performed on every new project. Wanting to be consistent across different platforms, I decided to write a script for Adobe After Effects, which carried out a similar command with uniform naming conventions, resulting in consistency across multiple programs.

Another task that is carried out with every project is a general scene setup. This includes the lighting for the scene, along with the V-Ray render and camera setups. These are lengthier tasks, as they require multiple render tests to ensure the output image looks correct. Automating this process wouldn’t be as quick as the file organization script, but the outcome would save a larger amount of time and avoid possible user-generated errors. Once created, this second script generated 12 different render layers, using different individual lighting setups, along with multiple cameras for different scenarios (depth of field, fish eye etc.). Finally, the script automates the V-Ray render setup, meaning I have 12 V-Ray render-ready scenes created within the click of a single button.

These scripts have been generated into docked buttons within the Maya interface, making it easy for the user to navigate and execute.

Overall I have already been seeing the benefits that implementing process automation has had on my workflow. Every time I now begin working on a new project within Maya, I have the option to click two additional shelf buttons, one which generates a folder setup, and the other that gives me a full render-ready scene. Both of which save me time that can be better spent on other tasks such as 3D modeling. They also give me the peace of mind that I won’t have any errors in the run-up to rendering the 3D composition. I’ll continually assess my processes, and develop further ways to streamline tasks to save time, reduce error, and increase consistency.

If you would like to have a copy of these automated process scripts, please feel free to drop an email to Nathan.Brady@colonelduck.co.uk

animation ,python 101 ,maya ,automation ,process automation ,streamline ,devops

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}