WHAT’S IN A NAMESPACE · 2 JANUARY 2025
After doing a bit of work on the last shot, I was trying to add some secondary motion to the cookie jar and Teddy Bear. To really sell it, the fridge needed to have some motion which was easy enough in Maya, but not easily exported the way it’s rigged with just nodes. This got me thinking about whether I should rig it like a prop and possibly do a double namespace in the kitchen set or how to handle set “props” in general. Of course, that led to thinking about how every time I open one of these old Layout scenes, all of the characters, props, and sets are referenced with the very old “naming prefix” method, vs the more modern “namespace” method. Most of my tools are based on expecting a namespace which makes it tricky to work with these old scenes at times. It’s not hard to fix one scene that I want to work on for animation, but it is annoying knowing all of the Layout scenes, are sort of broken and hard to deal with. I’ve known that it has been this way for years, but because I have some extended free time I decided to take a crack at fixing them all. This took a few days to sort out. I know when I first restarted this project in late 2021, I went very quickly with whatever rigs worked to get a scene “loaded” in the latest version of Maya. Sometimes this meant loading a scene in a previous version of Maya, just to save it so a newer version could read it. Mostly I batched these scenes at the time and didn’t think too much about it. Well, now I had to come up with a way to convert old prefix style to new namespace style and apparently you can’t really do it easily. Mostly this involved writing some conversion scripts that would analyze a set’s visibility, what layers objects might be in, whether any objects had animation, then load in the set as a namespace style reference, copy any curves and settings, then remove the old one. Pretty easy but always a few oddball shots that needed extra lines in the script to sort out – especially for batching. After that I decided to tackle the characters and props. I wanted to get everything on modern namespace style for two reasons. One, it’s much easier to use tools like my TurboPicker and two, it’s a lot easier to rig swap. Of course, my naming conventions have evolved over the years and I had to make a spreadsheet to see which rigs with _Rev## matched which actual _v# rigs. Most of the layout was done before I started using _v# and it was only the last 3 shots of the Hallway scene plus the last 2 scenes. As it got towards the end, a few new Revs were used, but didn’t really match any versions. I try to keep my rigs non-destructive when I upgrade them, but v1 is less likely to work with v10 than v2. However, even v2 can break if you start from v1 – and did, so I had to go through each scene 1 by 1 and do a similar script fix to copy anim curves, manually re-establish constraints, then remove the old reference. Finally I did a second pass to update every Layout scene with actual _v# rigs to get rid of the _Rev## all together. A very tedious process which took several days between holiday gatherings and football games. It's not something that has tangible results right away, but should I want to render higher res layout videos or make conversion scripts to upgrade a v1 rig to the current game style rigs, this should make it a lot easier. It also makes it a little easier to start a new anim shot since the layout version set will be ready to go. The more time that goes by on this project, the more out of date things get and the harder it is to go back to old scenes, especially with the rate that 3d software companies force these “yearly” upgrade to their programs, ie 2021, 2022, 2023, 2024, 2025, etc. Something that my have worked fine in 2021 may not work in 2025, let alone something done in 2008. |
|||||||