Referencing rigs with ragdoll

Hello, I would like to know if (and how) I can set up ragdoll for a decently sized production using references. I’m saying this now: i’m just an animator, i dont usually deal much with tech topics.

So far I’ve tryed this simple test: I open a new scene, i reference my character’s control rig in there, i create the ragdoll setup.
Then I open a scene with animation of the said character (naturally, the control rig is referenced in there) and i replace reference with the file that contains the control rig + ragdoll setup.

When I do this, the character goes back to tpose and the animation is gone.
I tried this step many times and with variations (checking namespaces etc) but i never manage to see the animation after i reference in the ragdoll.

Is this the wrong approach? I see there’s a export/import physics since some times, only today i tried to use it but has a 10 capsules limit. If this is the only way to preserve the ragdoll rig between one scene and another , please let me know cause then i would need to upgrade the licenses.

thanks

Hi Morpai,

Having ragdoll in a reference is totally a valid workflow, why it’s not working for you is you’ll need to open the rig (not reference) - set the ragdoll up on that scene and save that file as a the new rig .

Since you’ve already setup ragdoll in a scene, you could very easily export your physics as a .rag file (Export Physics in the Ragdoll drop down menu) and import that physics into your opened file or use the import physics as a workflow to bring a full ragdoll setup into animation scenes that have referenced anim rigs .

Hope this helps

J

Hey Jason, thanks for your quick reply.

I had it set up in a way thet the ragdoll rig file was referencing the control rig file. And then my anims would not work because there was a “double nested reference” basically. I did what you suggested and now it does indeed work.

Only issue is that when the control rig is gonna change, I will need to import over the physics and i guess i’ll need to get upgrade the licenses.

1 Like

Yea nested references can be a pain to work with.

We’re experimenting with that as well. The advantage of preserving the ragdoll setup in a rig file is that your marker sets get carried over.

One approach that could work for you:
Not something I typically recommend for animators to do (especially not for animation scenes), but you can create references without putting them in a new namespace.
So you initially would have a rig.ma file containing your controls rig.
Reference that in a new file, but under the settings, select merge into selected namespace and rename incoming objects and select the root namespace (:). This will bring in the reference without an extra namespace. Build your ragdoll setup and save it under rag.ma. No you should be able to replace both files in your anim scene without trouble.

I had a look at this now and initially didn’t understand why this wouldn’t work - but, the problem is the names.

  1. Your animation rig have controls called e.g. character1:hand_ctl
  2. Your Ragdoll rig have controls now called ragdoll:character1:hand_ctl

And Maya doesn’t know that these are the same hand_ctl. So when you replace the reference, it will assume hand_ctl is not there, and throw your keyframes away.

There are a few solutions to this.

Export .rag File

This is the route we designed Ragdoll for, to serve 2 main purposes.

  1. Avoid any Replace Reference - it is slow and prone to crashes
  2. Enable rigging in a shot - to avoid needing to edit the original rig

The import of this .rag file would effectively “replay” the actions you took to originally assign the Markers, as though you did it from scratch. It’ll maintain all Markers, meshes and attribute changes you made and “apply” them to any scene. Taking varying namespaces and new animation or poses into account.

This would be the most flexible option and is at the core of Ragdoll. It’s available in the Unlimited version of Ragdoll, precisely because it is so central and effective.

That said, there are still a few options.

No Namespace

That is, instead of referencing your rig and assigning Markers, open it. That way, it won’t be given a namespace and by the time you save this rig the hand_ctl will have identical names in both your original character rig and your Ragdoll rig.

The downside however is that since you assigned Markers onto the original rig, in the original scene file, you can’t update the character rig without redoing the marker assignments.

Merge Namespace

What @dominik mentioned sounds doable! But I wonder, is this a newer feature of Maya? I’ve only got access to 2020 at the moment, and this option does not appear here.

@marcus You need to check use namespaces and select the bottom option. No namespace technically is root namespace.

One more note about doing ragdoll in the rig directly, you can also use the .rag files as a way to “append” your ragdoll setup to newer versions of the rig as well though that has the same (or at least similar) limitations as loading the .rag in the anim file

Yes! That works very well!

I had never noticed that option before, this opens up some new doors to anything I’ve documented earlier.

Here’s my take on it.

Step 1 - Create Reference

The key bit here being to use the Merge into.. option that @dominik mentioned.

Step 2 - Export Selection

Or Export All, the key here being to untick the Preserve References option. This will effectively import the reference into the file you are exporting such that you get the best of both worlds.

  1. You maintain a reference in your original workfile, such that you can update the animation rig
  2. You avoid nested references in the ragdoll rig

In this video, I don’t save the file where I assign markers; but in practice this would be the file you continue editing, with the exported file being the fruits of that labour and what you actually reference and use for animation.

Step 3 - Replace Reference

Now the original animation rig and Ragdoll rigs have identical names, so replacing reference will just work.

I can’t think of any red flags here either, this is a viable and safe workflow.

Was this what you did @dominik? Anything to look out for here in your experience?

Thats it!

The caveat with this method is that animators have to double check their reference settings when loading rigs into anim scenes (Step 3) as the reference settings from previously (merge into namespace) may still be set.
The namespace prevents you from having name clashes when referencing the same scene twice, if you dont use namespaces (or merge the same rig into the same namespace twice, or have an object in your scene with the same name as a referenced assembly node) maya has to rename the object(s) in the reference (which is not something Maya lets the user do manually) to manage these clashes.
Concrete in your example, the rig already contains the _ namespace, in the anim scene it should be something like rig1:_:manikin_rig (if you want to preserve the _) otherwise you will end up with _:manikin_rig and _:manikin_rig1 when you add a second manikin reference.

I have yet to test how this behaves when you unload _:manikin_rig and then create a new reference. If that directly jumps to 2 or also comes it as _:manikin_rig. All in all, not much of a concern to artists, but not ideal to build tools around with all the duplicate and potentially changing names.