We are working on a game project and have recently switched to a new pipeline built on mGear. The basic setup is that we are building and storing the rig in one maya file, and then referencing that into our animation files. Animators will keyframe the controlers and not do too much wierd stuff.
Our iterative workflow often calls for updates or tweaks to the rig, which led to unexpected corruptions in the animation files. The character will distort into wierd poses. Trying to reset all controllers back to the bind pose, with the right click menu, wont fix it.
I traced the errors to reference edits of translation/rotation on internal transform nodes of the rig. Some on the root nodes on modules and some other nodes that I don’t yet know the purpose of. The edits are miniscule, “locking” the nodes into place even when the values are updated in the referenced rig, breaking the pose. My theory is that float imprecision somewhere is interpreted by Maya as legit edits, and saved in the file.
So, I wrote a script that basically nukes all the setAttr references edits on translate/rotate, but spares connectAttr that stores the animations. It works but it would be nice to fix so that the errors doesn’t happen in the first place.
So what I am considering is to lock the unconnected transformation attributes of basically all internal nodes in the rig. It seams like mGear already locks and hides some attributes when generating modules, but not all. Why is that? Sometimes a NPO have hidden attributes and sometimes not. Are there nodes that I definately should not lock? That are used by mGear scripts and needs to be free, but won’t corrupt animations if changed?