Ein Paket, das keinen Namen trägt

January 2019

"Ein Paket, das keinen Namen trägt", or in english "A Parcel that bears no name" is a short 3D animation created as Master's project at the University of Applied Sciences Hagenberg. It follows the story of Erich and Rosal who have to deliver a parcel to the top floor in a house without an elevator. On the way a lot of unexpected things go wrong and the struggle to getting this parcel to it's destination is increased.
We were a team of 4 people (Markus Hadinger, Kyra von Baeckmann, Doris Rastinger and I) who worked on this for about 1.5 years. My two primary jobs were creating the pipeline and animating the characters. Other responsibilities included creating the animatic, writing dialogue and handling rendering.
You can find out more about this project on our Facebook page: facebook.com/Handfrankiert

The Pipeline

I was responsible for setting up the complete pipeline in this project, from pre-production to final film. Since it is a 3D animation my focus was on writing tools for Maya. But I also had to consider how dialogue was cut to get it into Maya, how rendered shots were processed in Nuke and then brought to Premiere and much more. The above video shows some of the tools in action (only the first one was not created for the project). The tools were all written in PyMel using PyQt for GUI. For sake of simplicity I'll only talk about some of the Maya tools here.

AssetIO

The core of the Maya pipeline was a tool I called "AssetIO". It enables exporting assets as .ma files with a thumbnail and a little description. That meant that there was always only one file per asset that got referenced. In previous projects, we had the problem of not knowing which file to reference. And if we had a reference we always had to make sure it was pointing to the correct file.
Furthermore the tool had functionality to get assets into the scene. Either by importing or referencing. When referencing a file, it automatically added the project environment variable to the file path to make the reference work on all of our PCs. This was also a lesson learned from a previous project, where we had massive problems with environment variables that someone forgot to set. Finding the right asset was made easier by categorizing them and adding a search functionality. That was then paired with the fact that there was a description and an image saved which meant assets where very easy to find.
The tool also offers functionality to manage assets that were already imported into the scene. It allows to duplicate objects, while maintaining reference and to delete all references to a certain asset. That was especially helpful when building environments where you had to add lots of objects of the same type.

CacheIO

After animation is complete, the pipeline proceeds to lighting. In this stage, all you need to have is moving geometry and materials. CacheIO takes care of that. It exports geometry from the animation shot using alembic. This makes sure that animation is transferred to geometry as well. It also exports a .ma file which holds the materials. Alembic unfortunately has no support to transfer materials. On import the .ma file is imported first, then the alembic is used to move the geometry. This should ensure that materials are transferred to the lighting shot. However there seems to be a problem in Maya using "Export Selected" functionality when there are namespaces involved. This can break the materials sometimes. I've found out that the problem can be "solved", by editing the .ma file and removing certain namespaces. This is however not an ideal solution but rather a hack, that was necessary during production.

Animation

For me animation started before the first rig was complete. I really thought hard about who the characters are and how they would move. I tried to define their thoughts based on the script. This helped develop the characters, but in hindsight it wasn't too useful for final animation because the script changed so much until very late in the process.

As soon as the rig was ready, I started doing some animation tests. Not only to test the rig but also to actually create what I have been thinking about the preceding months. This of course meant that not everything would work as planned but adjustements had to be made. The video above shows one of the first successful run-cycles for that character. The harder part was trying to make a walkcycle for her, since her character is very agile. In the end she never really does a casual walk the slowest walk she does can be seen in the second video. It makes also sense to have her steps be a bit faster, since she is significantly shorter than the second character. That means she has to do more steps to achieve the same speed.

The last video shows the workflow that turned out to be the best one for our project. We've tried shooting reference, but it was just not dynamic enough for our animation style. What we did instead is to sketch out the shot on paper and then find the timing by animating cubes. This worked really well for us because you can really push the hand drawn poses and creating the timing with a cube is very fast. That also means asking for feedback is possible very early. Furthermore it enabled us to see motion in the edit to see if the motion worked with the cut.