Tuesday, February 23, 2010

I love solutions

I figured I'd break up the last post into two parts to avoid TL;DR syndrome.

Today my friend Andrew posed me with an interesting problem: He was working on a scene with a relatively large number of complex character rigs (high polycounts combined with lots of lattice deformers), and he chewed up all of his RAM. This killed Maya, and somehow corrupted his file. This raises two interesting points with solutions I enjoy. First, saving often and making backups. I am terrified of losing my progress and work, so I like to have as many safety nets as possible.

My favorite solution for giving me peace of mind is source control. I have a modest Ubuntu box sitting under my desk running Subversion, and my laptop and work machine both have TortoiseSVN for Windows. It's great because it's easy to keep both machines up-to-date, and I feel much safer knowing that a broken file is only a few clicks away from reversioning to a working file. As an added bonus, I've set my machines to be accessible from any point on campus (password protected of course), so I don't have to lug around a bulky external hard drive. I have never had to actually use the safety net features of my setup, but I am willing to take more risks knowing that, failing a total system meltdown, I can always go back to an earlier version.

The second solution Andrew's situation brings up is proxies. I haven't done much exploration with proxies, but the concept seems highly useful, and I plan to learn more about them. In general terms, referencing files in Maya allows you to pull in assets from other scenes (like character rigs or environment elements) and use them without fear of accidentally breaking them in some way. Also, going back to that compartmentalization I mentioned in my last post, it gives flexibility to edit the original asset file, with changes being reflected in the new scene without needing any user interference short of a reference reload. The problem with referencing is that scenes can often eat up tons of RAM (what with rigs, smooth skins, deformers, textures, etc...), and that's where proxies come it.

From what little fiddling I've done with them, proxies allow you to create low-resolution versions of your assets and have them stand in for the more complex ones. Low-res is, of course, a wide term. It could be anything from a simpler rig with fewer controls and parented geometry chunks instead of smooth skins. It could be just a bounding box. Or it could be somewhere in-between. Whatever the case, it gives you a way to see the asset working in the scene without it taking up unnecessary resources, and, if set up properly, allows you to rough in placement/animation before switching it out with the high-res version for final tweaks. I'm still rather vague on specific implementation, but I'm looking forward to working out how to use them appropriately for smoother workflow.

Also on my list of things to figure out: Maya Trax and how well it works with planning out Matinee work in UDK.

No comments: