So i’m spinning off of this post:
http://tech-artists.org/forum/showpost.php?p=2912&postcount=19
What I’m interested in discussing is the work folks have done to get referencing/xref/namespace/whatever it is in your dcc package to play nice with the realities of their character and animation pipelines, be it in-game animation, cinematics, or whatever else you do with characters. I’ll start:
I’m going to re-tread some of the stuff presented in Modular Procedural Rigging, so some of this might be old news.
We’ve come to rely more on namespaces for managing assets, along with the xRig system (presented in Modular Procedural Rigging). Starting with xRig, we store any tool relevant data on different types of xRig nodes. Examples include: rig path, render model path, rig component type, etc. This way, as outlined in the paper, we don’t even need to touch content to gather data. The big caveat we’ve some folks have suggested is “well what if an artist touches something and it breaks?” Well:
-
xRig nodes are network nodes, so if you really want to get to it, you have to dig a bit. I’ve noticed that artists are becoming increasingly skittish around the hypergraph:D:
-
again, most artists we work with don’t care…if it isn’t something they need to know about to create content, it might as well be invisible.
-
Since we control the system pretty explicitly, it’s not a big deal to write checks into your tools to validate any existing xRig nodes. Every class of xRig nodes has functionality to validate,version check,repair,upgrade,and otherwise manage the node.
Namespaces can be thought of as our in-scene asset management hooks. As Mark pointed out, Maya’s namespace management tools aren’t that great, so we’ve written a bunch of scripts that wrap various string managment hacks, etc, to allow us more robust namespace management. The next step is probably to port that to a command plugin (i know, i know, if you’re using MPxCommand, you’re doing it wrong) or break it out into a Python package. As an aside, we’re holding off on full Python development until such time as we can take the time to let everyone in the department get up to speed on Python. Porting MEL scripts to maya.cmds is no substitute for learning Python.:rolleyes:
Now since xRig allows us to upgrade rig components in place, the only thing we really have to worry about is getting updated meshes and skeletons into a scene. The obvious answer here might be referencing. Referencing in Maya has definitely made some big strides in the last few versions, but the conclusion we came to was that we just didn’t need alot of the complexity/functionality that the referencing system brings with it. So instead what we did was come up with a tool called xPlant that allows us to transplant a skeleton and mesh into an existing rig. You’d be surprised how minimal the code to cache a set of connections and re-assign them is, even in MEL, hehe.
This is a really broad overview, if anyone is interested in specifics about a certain system, feel free to post questions…