When producing an animated short with a team of people one the main hurdles that crops up is organizing the 100’s if not 1000’s of assets produced during the course of production.
as I am embarking on a new project I wanted to share some of my thoughts on how I plan manage assets so that a) there is only one copy of a file in the pipeline at a given time and b) it is versioned so that one can step back at any time to an earlier version of the file.
The basic workflow is as follows:
- Each user produces their initial assets on their local computer inside a “working folder”.
- When an asset has reached a state of completion it is then moved into a shared “incoming” folder and out of the working folder so there is only one copy
- One user is nominated as the gate keeper, she/he copies the file from the incoming folder into a specific place within the main library. The Gate keeper is the only one who is allowed to add new files to the library
- When that file needs to be edited, the gate keeper allows the file in the library to be modified by the users requesting access. When the user is done, the file is locked again.
The key with this system is controlling how people can access the library, and how the backups of the files are maintained when they are edited. In order to achieve this we need a file versioning system such as SVN. This system is primarily meant for programmers and is not really designed for 3D assets but it can be twisted to suit the needs of a 3D production pipeline. The basic premise is that instead of storing the files locally, one “checks in” in a file into a “repository” which stores a copy of the file, and starts to track changes. As soon as the file is in a repository it will be safe as long as you don’t force delete it or damage your SVN server. Every time you “check in” a file it asks you to comment on the changes to the file which it stores as a list of alterations that can be stepped-back through at any given time, while the end user only has one copy of the file. If they remove it from their computer, it will still be in the repository (repo). One can also set who has read and write access, and who as access to particular parts of the repo.
In the model presented above. Each user/team member on your project has their own repository in which they can store whatever they want while they are working on it. See it as a personal backup, it has no effect on the main library and really only serves as an intermediate versioning system for each user to backup their files while they are working. This will provide peace of mind for the teammates while they are working on concepts and fresh assets and that are not yet part of the main library or may not ever be added to the main library.
The “Library” is the main SVN repository, the only person that can add new files to the repo is the gatekeeper. He gets the file out of the incoming folder and adds it to the library. After this step is complete any copies of the file are purged from the incoming folder and any local working folders so that the only copy that exists is contained within the library repo. The gate keeper grants access to the file in the library to those who need to edit it. When an edit is made it is “recommited” back to the library and the changes are tracked by SVN.
As such only one copy of each asset need exist. The team mates do not need to see the whole library structure, only the files they need to work on so there is no risk of files being moved around or lost. They can also safely overwrite files within the library knowing that any changes they make are recorded.