Export/import setup, best practice?

Hi!

What is best practice for exporting a Ragdoll Setup and importing later on in different scenes with referenced rigs?

It does not seem to work out of the box for me, Markers either don’t import, or they end up in unexpected locations. I can provide images/video later on, but I figured I might start by actually getting a grasp on what’s the best workflow.

Let’s say I have a rig that’s gonna be used throughout different scenes on a project. Where do I create the ragdoll setup for export? In the actual rigfile? Do I reference in the rig, create the setup and then export?

Also, some clarification on namespaces would be great. Right now, I’ve tried exporting/importing physics with namespaces, and the results are unexpected, like I meantioned earlier. Whenever I have a namespace, I also lose “rGround” when importing.

Is there some documention or video that goes over this?

Thanks!

Best,
Max

I would love to learn more about what you tried, what you expected, and what happens. Do you think you can write a little bit about that? To us, we work with this every day so many of the first-encounter and first impression issues are invisible to us. Anything you can share here would be fantastic.

After you’ve done that, have a look here: :slight_smile:

Sure thing!

The first thing I tried, was to create the ragdoll setup in my rigscene. I want to use it on different scenes on referenced rigs, so my intuition told me that I wanted a way to simply import/export the markers.

  1. Created the markers on the actual rigfile.

  2. Opened up a new scene, referenced in the rig and then tried importing the markers. (Sidenote: rGround gets lost in the namespace here, how do include it? Or how do I create a new ground plane?)

  3. These were the results:


After that I figured that it might be a good idea to create the setup on the referenced rig as it will be more similar to my usage down the line.

  1. New scene. Reference in the rig, create markers (quickly just to test). Export.

  2. Open a new scene. Reference in the rig, import the setup:

  3. These are the results:

A thing to note, that shouldn’t be an issue though, is that this is a mixamo character with it’s own skeleton. However, to drive this in Maya, that skeleton have been constrained to another skeleton based of Advanced Skeleton. I have done all the markers on the driving rig though (advanced skeleton).

Now, with my crappy trial-and-error tests out of the way, I’ll go ahead and look into the tutorial on how to actually do this. Thanks for directing me to the correct video!

Best,
Max

Just checked the video. Perfect, just what I was after!

So my two remaining questions are these:

  1. How do you manage the ground plane? Is it not important, can I assign a general plane as the ground?

  2. Why is my arms/legs off when imported? I realise that this is because of me assigning markes to the IK setup. I followed the documentation on this and here are the steps I took.

a) Assigned markers to the upper body.
b) Starting with the root controller, I selected the root, hip JNT, knee JNT and foot JNT.
c) Assigned markers
d) Retargeted the hip and knee JNTS on to the knee polevector controller.
e) Retargeted the foot JNT to the foot controller

Also, if you’re looking for first impressions on how to get into Ragdoll from a newbie:

Your documention, video tutorials and support on the forums are absolute top class. They are just the right amount of information, presented with absolute clarity. The tool itself is very intuitive as well.

What I typically like to see, and where most of me questions stem from, is a general overview of the workflow. I didn’t quite find that when I started browsing the documention or video tutorials. The resources are so well done, but felt a little bit scattered. I’d love to see, first on the list, under overview: A section that goes over the general workflow of using ragdoll (with a character), and from there, link to these other articels on how to set up IK markers etc.

I get that you probably don’t want to scare people away with too much information on the get go, and I also get that this would not be suitable for people who just want to “play with physics” in isolated contexts. But for me, and I guess for other people hoping to use the tool in a broader way, as an assisting tool when animating whatever - it would be great!

Hope this helps!

Best,
Max

Your intuition is correct! Let’s see how Ragdoll lines up…

Now you’re thinking like a rigger. :blush: Ragdoll tries to do what animators normally do; which is work with the scene they are animating in. So there is generally no need to assign any physics in the original rig file. Instead, you can assign directly in your shot, or at the very least in a scene with the rig already referenced.

It’s possible Ragdoll gets confused here where e.g. the lower arm control doesn’t have a namespace in the original file, and then is expected to import onto one with a namespace. I’ll double check this; it would be an unusual way of Ragdolling.

  1. Make a Maya polygon plane
  2. Assign to it
  3. Set Behaviour = Animated

Were there any errors printed here? It looks like it didn’t manage to finish importing.

Alternatively, could it be that there are other nodes with the same name, under different namespaces? For example, controls:Elbow_L and model:Elbow_L, whereby the markers are imported onto the wrong control? Try using the Match By: Hierarchy just in case.

Bingo.

Let me know if there are any errors in the Script Editor here as well.

Would it be possible to send me the scene file? Alternatively, if you can reproduce this in a smaller scene, maybe just using the Mixamo skeleton.

Thank you for getting back to me Markus!

I’ve reached out with scene files in a message to you.

Best,
Max

Hey @marcus,

Just checking in to see if you recieved my scene files and managed to decipher the issue?
Thanks!

I got them, just haven’t found the time just yet. I’ll ping you in this thread once I have something.

1 Like

Hi! @marcus

I managed to slightly progress regarding this issue. So to recap: when exporting/importing physics, markers would not end up where I expected them to be. They where off in translation and rotation. This only affected markers that where retargeted from IK joints.

This could be solved by unchecking the mirror option when adjusting the markers and then exporting physics once again. After that, they imported correctly. Is this a known issue? I have a faint memory of seeing a video where you unchecked mirror when you adjusted feet markers for a tutorial. Is there a caveat with the mirror function that can be good to be aware about?

This led me to another issue, the feet pops into an unnatural position when playing the simulation. I made sure to check that the feet markers where slightly above ground level (although there’s no ground in the video below).

Hi @Max, so sorry for the delay on this one, it had completely slipped my mind! I’m having a look as we speak.

Thank you Marcus!

Nevermind my previous update, I did not in fact find a solution. Turns out that the markers that has been retargeted from the IK Joints don’t end up on my controllers at all after importing, even though the importer indicates that it has found it’s target. There’s simply no output node on the controllers, but the markers are still there.

Maybe you ran into the same thing when testing my files?

Hey @Max, I’ve taken a look at this now, and from what I can tell this is an issue of name clashing.

The default option for finding which Marker goes to which control is called “Name”, but if you switch that to “Hierarchy” instead it appears to do a better job finding the controls. It’s not clear to me why it isn’t able to find these names, but I suspect it’s due to there being other controls that end with the same name as the original controls, throwing off Ragdoll’s matching algorithm.

  • winston:Toes_L
  • winston:AlignIkToToes_L

Notice how they both end with Toes_L. I have not come across this before, but it certainly should not struggle to separate between these two very different names. So I’ll file this as a bug and have this patched up for the next release!

Hi!

Awesome stuff, it worked instantly by switching to hierarchy. Thank you for taking a look at it!
So Ragdoll was not wrong by indicating that it had found it’s target, it’s just that it was the wrong target?

Anyways, thank you once again!

Exactly, even in your screenshot of the Import dialog you can see how it is about to import onto the wrong controls. I don’t think those were the ones you originally assigned to!