Edit Marker Pivot

So I have this problem sometimes where the marker would get a wrong/ offset pivot point. Sometimes its fixed by correcting the flipped transforms, other times Utilities-> Reset Constraint Frames fixes it. In cases where rotation doesn’t matter locking channels in ragdoll helps also. Sometimes nothing helps, which I assume is due to rig hierarchy, although aren’t markers supposed to ignore that?

I have noticed that in this video in the documentation for the Ragdoll the pivot point of the marker is manually adjusted, but can’t quite replicate how to do it in the current version:

Edit Constraint Frames

Is it possible to manually change marker pivot position not only orientation?

Here is an example of the issue I’m facing. The markers are parented properly in the marker editor too, the pivot points are also correct on the rig controls. This issues occurs not only on this marker and rig, but amongst on all our rigs I tried in some capacity and had to find workarounds, but still can’t figure out why it’s happening:

1 Like

I’ll try and elaborate more in depth tomorrow, but for the time being:

  1. Make a new locator
  2. Parent Constrain this locator to the parent of your original control
  3. Assign to it

At this point, your locator should behave as you expect. And at this point, you can retarget it to the control it is meant to represent, and all should be well.

Sometimes, controls have custom rotate and scale pivots, and a custom rotate axis, with negative scale - all of the bells and whistles - and it’s possible for Ragdoll to get confused. In such cases, a vanilla and standalone locator or joint can help.

This should be the rotate pivot, which you change like any normal rotate pivot e.g. hold the D key and move it. But I’ll think more on this tomorrow when it’s not too late over here. The constraint frames deliberately do not let you adjust the position because the position is governed by the rotate pivot which is normally what you’d expect for a control.

Heya, having a closer look now. I suspect the issue is more obvious to you, knowing what to look for. But can you spell it out just in case? Is it the inner teal ring that is supposed to be attached at the base of the body, but is instead rotating around some arbitrary point? Are you on Ragdoll Unlimited by any chance? If so, can you Export Physics and upload the file here?

You can also try the Extract Simulation option to help debug where Ragdoll thinks the pivots are.

image

Hello,

Thanks so much for this, I’ll try this asap!

Yes, it’s running on Unlimited here. Just to clarify - by Export Physics you mean running this script described here?

Export Physics

Yes, this menu item here.

image

It’ll produce a small file I can use to reproduce the problem on my machine.

This is a better link:

Thank you! Please find attached an exported physics file. I did Replace Mesh on every marker though, so will it work?

RagPivotQuest.rag (7.1 MB)

Yes, the hinge thing on the left wing has some arbitrary pivot point somewhere around above the right wing. I’m also experiencing the same problem with the camera pod that is supposed to be inside the cabin, but it’s pivot is somewhere far behind the drone. The Extract Simulation also confirms this with joints getting created in those arbitrary pivot spots for the problematic markers.

I think the locator trick does work, although first I have to move the locator into the exact same position where control’s pivot is (by point constraing it) and then do the 3-step procedure described above. Otherwise the marker’s pivot is created in the origin. (Disabling maintain offset in parent constraint puts the locator in the correct positon.) However, after retargeting to the control - the marker is still being represented by the locator for some reason and animation won’t record to the control:

1 Like

I’ve had a look at this and there are a few red flags here.

  1. Pivots
  2. Multiple markers making up a single movable piece
  3. Negative scale

Let’s address these in order, starting with (2) :sweat_smile:

image

This ring here, I expect you want this to move as one solid piece? And that the reason they are composed of multiple Markers is such that you can create that hole in the middle for the other pieces?

If so, here’s a much more stable way that also involves mess Markers.

Slicing the mesh in this way is the same as separating the polygons and using Maya’s Combine to put them back together. Ragdoll will recognise that the polygons are unconnected (that they are “islands”) and create individual collision shapes for each of them, without the need for more Markers.

Next, pivots.

This is bad news. You’ll want to keep the pivot inside of the Marker, or at the very least very close to it. Think of it like a human character. You’ll want the pivot of the elbow right at the end of the upper arm, and the pivot of the hand right at the end of the lower arm. Such that there is a logical connection between their rotate pivots.

In this case, each of these individual pieces are able to rotate independently from the center of the ship. Rather than at the edge of each other, which I think is what you expect.

For a normal Maya setup, this is typically fine. But Ragdoll is very interested in having things fit together as though they were a real object in the real world. It’s the only way it can make sense out of it.

Finally, the left side of the ship appears to have controls that are negatively scaled. I’d imagine the safest bet here is to assign to the underlying joints that make up the ship, rather than the controls themselves. That way, you can retarget onto those controls and all should be well.

Let me know how it goes, looks amazing so far!

Thank you for your reply!

Yeah, the right wing ring is meant to fold into itself as it is composed of the small pieces. So here I just setup ragdoll to test if it would work. But wasn’t really expecting this setup to translate properly in the ragdoll. So I’m thinking of skipping the ring part completely in the ragdoll sim and having a gap there between feathers and the body in the sim. As the ring is meant to kinda disappear when the drone is folding the wings:

But the problem with the pivots is that there are actually no joints in this rig. For the folding/ unfolding it’s just animation curves connected through expression to controls. I tried to assign to geometry, but getting the same issue. And searched for the flipped transforms but could not find any. The locator trick gets me the good pivot, but locators matrix is still connected to the marker after retargeting, so the ragdoll is not recording to it.

Ahaaa, well that’s certainly possible too. The only thing I’m weary of is how physically impossible that contraption really is! :sweat_smile: Haha. There’s just no way they could move like that if this was a real thing, with that tiny tiny hinge holding the whole wing together. So you’d be fighting both Ragdoll and reality for it.

But, doable. I expect you’d need a thicker hinge for Ragdoll, something that isn’t actually the real geometry. Capsules should serve you well here.

For the folding, I’d also look less at how the geometry looks and how you want it to work. For example.

turbine.ma (24.3 KB)

https://user-images.githubusercontent.com/2152766/197332420-f522d8c0-d779-487b-9442-38e3780c1e3e.mp4

Can you elaborate on this? Retargeting those locators to your controls should only record to your controls. You can double-check where things are getting recorded via the Node Editor.

1 Like

Thank you for your feedback - that’s certainly something we should improve with extra supports! Oh and that folding setup certainly looks like something that would fit here.

So for the markers not recording with the locator trick: let’s say here I have an animation on this control that moves the camera pod forward/ backwards. Marker created for the parented locator is retarget to this control as it can be seen in the Retarget Marker Options. And it records to the control in the node editor too. But the actual animation on the control is then overwritten and the sim does not take into account what the controller is doing/ how its animated before recording. Before I record the marker, it moves when I move the control manually, but does not move when the animation is playing:

Hm, I’m struggling to understand what you’ve got there.

There’s a a standalone Locator in the scene, with a Marker assigned to it. Is the Locator connected or constrained anywhere? Why isn’t it falling into the cockpit, and tumbling around like an independent Marker?

You can use Assign and Connect on the Locator, potentially between it and the body of the ship. If you do, then normally it won’t look at your animated Translate XYZ channels unless you have Translate Motion = Soft.

image

Alternatively, you can leave it unconnected, via Assign (not Connect) and use the Attach Constraint to attach it to the body of the ship. That’ll give you the same effect as Translate Motion = Soft.

As for why it isn’t rotating, and why it won’t move when your animation is playing… There are too many things going on. If you go into a new Maya scene, make a new Locator and assign a Marker to it. Are you able to reproduce the issue?

Oh so, the Exported Ragdoll physics file I have attached earlier was to demonstrate what’s happening without the locator trick. Here is the file with locator as a substitute, which I use in the previous video:

RagPivotQuest3.rag (6.7 MB)

Here is the simple scene with primitives that replicate the setup I have there:

RagPivotQuestion.zip (12.1 KB)

As you can see the cube has an animation on the controller, but the actual animation on the control is then overwritten and the sim does not take into account how it is animated before recording. Before I record the marker, it moves when I move the control manually, but does not move when the animation is playing. So if you try to record ragdoll in this sample scene, hopefully it will demonstrate how the keyframe animation is discarded with this setup.

Yes, translation isn’t normally driving any physics, only rotations are. If you want to physics to follow translation, you have a few options.

  1. Either Translate Motion = Soft on the Marker
  2. Pin Constrain the Marker, that’ll drive a Marker via a world space translation
  3. Attach Constraint one Marker to another, for driving it via a local translation

(3) is identical to (1) in terms of behaviour.

Try this.

PS: It would be great if you can zip the .rag files before uploading, to keep our backups happy. :blush:

1 Like

Aha, that’s awesome, Soft Translate works, thanks so much!)

1 Like