Home Website Youtube GitHub

How can I update a rig/skeleton mid production

Hi all, I was wondering if anyone had any suggestions on updating rigs/skeletons mid production. Normally I’d import the guide to a fresh scene, update as needed, build from guide, export via Game Tools, and finally reference and connect via Game Tools, and the character looks great, but when I open any existing animation file (our workflow is to have the _model and _rig files referenced into anim scenes), the controls are correct, but the skeleton is totally broken. You can see it here, especially in the legs:

My question is, is our workflow correct, or are we doing something wrong? As I mentioned, the controls are all animating correctly, and the animation can be salvaged via extracting the controls animation using studio library and pasting onto a fresh animation file. But at this point we have nearly 200 animations and we’d like to avoid a manual process to fix each animation.

Thanks for any help!!

Hey there @ggreer the workflow that you suggested sounds pretty standard. I do however have a question on your step about using Game Tools to export out? Could you explain that step for me please?

Just going to put this out there, when you are finished rigging up your character, do you save it to a maya file that has the skinned geo? Let’s call this file character_rig_v001, when the animators reference in this maya scene, it should be a 1 to 1 match and any updates you make to the rig, will reflect in this reference file. If something is wrong with the rig in your scene, it will be wrong in the animators scene as well.

There might be something going on with the step of the export game and connect via games tools that might be making these connections weird? - not sure of the needs of your pipeline and workflows.

Thanks JaschaW! Yeah, so when we’re finished with a rig we use mGear>Shifter>Game Tools, set the asset name, rig top node, mesh top node and output folder and hit “Disconnect and Export” so that we have 3 files generated in the output folder: Skinned mesh “Character_A_model”, rig “Character_A_rig” and the .jmm for importing into a scene. Then we open a clean scene, open Game Tools, and hit “Reference and Connect” and give that scene to an animator.

Now when we want to update the rig, i.e. to add a prop joint, we update the guide, build, and overwrite the existing _model, and _rig files. I was hoping that since our characters are referenced, this wouldn’t impact animations, and it doesn’t impact the animation on the rig, but the joints are totally broken, and the only way to fix is to get the animation data from the controls and recreate the animation with a fresh scene.

I see what you are saying. To be honest, I have never used the Games Tools and cannot speak to the way it works, I think there might be a clue in there as to how it is working under the hood and as to why you are having problems. I’ll try on my end to play around and test what is going on. Maybe one of the other dev’s that come across this could weigh in about it?

In the meantime, to get you and your production going and something that I use as a workflow (general concept) with custom tools and so on. Assuming that you are using the game tools, you are going doing these rigs for games? Correct me if I am wrong here :grinning:

Try just saving the final rig as a maya file (Construct the scene to your pipeline needs). Load that in as a reference for your animators.

When you want to export out the asset, clean bones and mesh, you can use the default maya Game Exporter and export out your asset that way and into the engine (Use export selected and not all). The only thing to make sure of is to have your root joint in world space (root of outliner) and the mesh too (sometimes this creates weird results if it is not)

Try that out, and customize your tools and pipeline to that concept?

I know that does not help you directly with the Games Tool, but hopefully helps out in some way?

Could you also check for me when the joints are being re-constrained, to which controls are the bones being constrained to?

Yep, games. Yeah I was trying that just now, referencing in the ‘final rig’ to an animation scene, but no good, when I update the rig file, then open the animation scene, the character is just back to bind pose with no animation!

As for the connections/constraints:

I’m guessing what’s going wrong is the game tools export creates a matrix for placing + connecting joints to controls in the .jmm, and since we’ve updated the joints, the enum for each joint is wrong. Which means no easy fix! At this point I’m leaning towards automating saving control anim w/ studio library, and paste in a fresh scene as the ‘easiest’ fix.

Thanks for all your help!

Hey I just wanted to share the fix since we solved this issue: basically we had to use mgear.shifter.game_tools.importConnections(‘filename’) and pass in the .jmm path as ‘filename’. This refreshed the connections with the updated .jmm, and the joints are back in the correct location again!