Followers of this blog should remember me talking about the production asset management system back in june this year. Since then I tried to find a nice way to handle the files in our studio. I looked the on-the-shelf tools like AlienBrain, Shotgun etc. But I wanted to have a system which is structurally not that much complex, and as open as it gets so I could instantly add new features to it. And I think, I was attracted by the idea of being the writer of an asset manager system. So I decided to write of my own system.
Those days we were using a simple MEL script to let Maya to decide where to save the file by looking a template folder structure stored in the file server. With some limitations, this little script was doing its job very well.
In my first attempts to an Asset Management system, I had a lot of ideas about what an asset manager should do and a little bit of idea about what it shouldn't do. I tried to gather those ideas to form a system, but I couldn't manage it. Somehow I couldn't do the thing. I drew graphical charts, schemas explaining the data flow, the program flow and the general structure and I started coding of the Asset class in Python. But again somehow I couldn't manage to have something meaningful. So I let it go.
Because, I couldn't do anything about coding of the asset manager, I decided to rewrite the ProjectCreator tool by using Python. It was originally written in C#. We were using this tool to create empty projects, with a predefined folder structure and with definite number of shots in some specific folders and to add new shots folders inside that project structure. The tool was written very badly around the interface code by myself. And because of the design, we were not able to change the project structure independently for one project to another. So I decided to have a proper object oriented system. Which also lets me to script the regular things like adding folders to all of the projects and sequences at once.
I've started coding of the classes those I'll going to need, like the Database, Project and the Sequence classes. They were doing some basic things. But, the Sequence class was especially special for me, because, some how I saw the way to the asset manager in it. While coding the Sequence class, it is connected it self to the Asset class I had written before. So the basic problem was solved. I had all my basic structures to form a very little living asset manager system.
At the beginning, it was just saving the files to proper folders with proper names (same thing with the previous MEL based system). I had to code an interface for it to let the artist to use it. I decided to use PyQt. We instantly switched to the new system.
In time, the system evolved to a python module and I named the system as AssetManager with peace of mind. The system is evolving very quickly. It is already doing things like, finding all the assets those a user did for a specific sequence or shot, tracks the file versions in a very simple but solid manner (by saving every version with a different version number :) and not letting the user to save over an old version), keeping track of the referenced asset, and updates the references automatically, tracks shot data like shot timings, shot descriptions etc.. The best part of the system is, it is working under any platform that Python is supported. It means, it works under Maya, Nuke and Houdini. And I'm trying to find a way to add it to Photoshop (probably I'm going to write some Java code for it). And while adding all of those features, I always tried to keep the generality of the code.
By having a working system like that, now it is much easier to think about the new features that the system needs. So, I can see the next two steps in front of me.
All the artist are very happy to be able to use a system like that, and they are keen to see new features coming constantly.
Thursday, December 31, 2009
Saturday, December 12, 2009
Famous Maya Render Layer Bug
I bet you encountered that bug before, like all the others maya players around. I'm talking about the render layer bug, you now, you switch to some other layer and got some messages saying that maya couldn't create a connection to a shading engines foo attribute at index [-1], yeeahh :) this one I'm talking about... So here is the solution
The bad thing about it is, they just didn't fix the real problem, it is a workaround...
The bad thing about it is, they just didn't fix the real problem, it is a workaround...
Subscribe to:
Posts (Atom)