Pipeline Tool Dev [001]
- Dominik Haase
- Aug 26, 2019
- 2 min read
Updated: Sep 15, 2019
A few weeks ago, I started working on a new personal project. My goal was and is to create a set of pipeline tools, that helps me to keep my projects and especially the ones I am working on with friends, more organized and cleaner.

I finished the basic structure and the first version of my Maya tool last week. The basic structure is set up by a simple tool (installer), that creates config files for the applications a user has installed. These setup files automatically load and update to the latest tool. As we are also not all connected to a local server that stores our files, the installer takes care of setting all the paths to our shared cloud storage in which a folder hierarchy is generated for each project and its assets. As everybody has their system set up in a different way, it was necessary to keep a file with all the user dependent information. When launched, the tool recognizes the current user and queries the information that is needed from the system and from the info file. The users can change their setups at every time as the config files can be rewritten with a single click.
The Maya tool allows me to create, edit and share model, rig and animation data. Every file gets saved as a Maya Ascii file and an FBX file to keep maximum compatibility with other programs and versions. As FBX files cannot store the same data as most other software specific formats like .ma/.mb or .blend files, there are some cutbacks. For rigs this means, the outer deformations can only be driven by skin clusters and/or blend shapes. The rig FBX file saves the skeleton and the bound geometry whereas the .ma file still contains the whole rig.
For animation files I did something similar. While the rig.fbx contains the skeleton and the geometry data, the anim.fbx only contains the skeleton with the baked animation. The .ma file still holds all the original animation data.

In order to prevent human errors, the tool contains a function set that automatically checks whether the user tries to share valid information or not. This contains checks from too many shape nodes under a single transform over deformers that cannot be picked up by FBX up to invalid time ranges for eg. Marvelous Designer. It also creates a local copy when pulling a file from the server to avoid overwriting the shared files on the server by accident.
There are a few more features I want to include in the next view versions of this tool but for now, we needed a first working version to get started. As usual, I tried to keep my code as scalable as possible to make my future-me's life easier when adding more functionality. Another thing I will do when I find the time, is creating a tool set for Unity to pick up the FBX data.
The installer was written in C#, the Maya tool was written in Python and I used PyQt for it's UI.
Cheers
コメント