Joint tension question

Hi, I have a long horizontal bone chain that I’m trying to have hold it’s shape closer to the rig. Currently, the chain droops like a wilting plant as opposed to somewhat-closely following the original rig.

I figured adjusting the stiffness of the bones would have fixed this, but setting the individual or group stiffness to 0, 1, 100, and 100,000 has no visible impact on how the thing simulates. Is there an alternate setting I’m missing? I still want my bones to be simulated, I just need them to follow the rig a bit more closely.

A picture, or in this case a video, would help us better understand what you are seeing and hope to see. Without it, if I had to shoot in the dark, I’d suggest:

  1. Disabling gravity; if following is what you need then zero gravity will do the job without dropping
  2. Making parent shapes larger than their child; lighter children means less work for a parent to steer
  3. Reducing Rotate Damping in addition to increasing Rotate Stiffness; lower damping means less resistance in parents trying to gain control of their children

For more detail, include a picture or video. It does not have to be of your original rig/geometry, but rather something you re-create to illustrate the problem on its own.

Fair, here’s a screenshot of the simulation with some MS paint for what behavior I want given my posing.

I don’t want to reduce the bone count, my ideal simulation would be a very high stiffness whip that would be bendy under super high forces, but rest along this orange line when there isn’t strong movement (as opposed to flopping on the floor like it is now).

Thanks, this makes sense. Ragdoll was designed for character limbs, so this falls outside of normal parameters. You’ll need a few things.

  1. Ideally, thicken up those shapes
  2. If thick shapes interfere with with collisions, disable collisions
  3. Reduce rotate damping overall
  4. Increase substeps and iterations on the solver
  5. Experiment with Scene Scale on the solver
  6. Experiment with Time Scale on the solver

The more robust solution would be to simulate fewer (3-4) parts, and use traditional rigging like Spline IK to drive the curvature of your rig.

I just finished applying all those steps, and it hasn’t changed the simulation at all. I’m not really sure what these stiffness or damping values are meant to do since it doesn’t seem to have much affect on the simulation.

I ideally don’t want to reduce the amount of parts because I am trying to simulate a high tension whip that’s driven from the base of the armature.

Not likely but just in case. If those steps were literally zero effect on simulation result, you might want to check Solver and see if that Cache mode is set to Static. In most cases, it should be Off.

Question:

Is this
image

the same as
image

Maybe I’m adjusting the wrong value?

I did check to make sure the cache was off.

I ended up duplicating my joints to do a test, the selected foreground chain has rotate damping set to 0.01, the background one is default.


There is a change, but it’s extremely minute. Nowhere near the limb being straight under it’s own stiffness like a dinosaur’s tail.

Edit: I will note how impressed I am with the stability of ragdoll in general though. In my game-dev experience ragdolls have a tendency to explode or jitter often, which is absent here.

Ah no. Glad you mentioned, they are different!

The Stiffness and Damping from manipulator’s “Limits Mode” are adjusting properties in marker’s Limit panel. :point_down:


What @alanjfs mentioned were these two, within Behaviour panel :point_down:


And here’s my test setup. :cook:

The only values that are not default, are the Rotate Stiffness and Damping. Those properties in Group is the same as the properties in Marker’s Behaviour panel.



Side Note about Group

By changing maker group’s Rotate Stiffness and Damping, the value will apply to all markers under that group (There should have a group created for assigned markers per default).

The Stiffness and Damping values in marker will be overridden if the Behaviour is set to Use Group.



:heart:

OK this makes more sense, I’ll update in the morning if I can recreate the result in that video. That’s exactly what I’m trying to achieve almost.

Though this makes me wonder what exactly IS limit vs rotate stiffness then, if I had to guess limit variables are related to the soft simulate mode where the different bones are allowed an amount of separation from each other and this is defining that force?

Great question!

  • Rotate Stiffness is how strongly to follow your animated pose
  • Limit Stiffness is how strongly to respect your limits

Here’s an example of Rotate Stiffness.

Notice how with a high value, it barely moves. Because the character is not animated, so it simply tries to maintain the starting pose.

Without any Rotate Stiffness, your limbs would dangle freely, until they hit their limit.

Limits are soft, and the Limit Stiffness and Limit Damping allows you to tune that softness. A high enough value and they will appear hard. But all bones and “limits” in our own physical human bodies are soft, and limits that are too hard may appear mechanical.

The defaults are defaults, and are meant to be tuned on a character-by-character basis, especially if your character is of a special size, like a giant or ant.

OK this explanation helps! I still don’t think I have a very clear mental model of damping vs stiffness or limit vs rotation parameters, but I was able to put my tail in it’s own group with 100 rotation stiffness and 0.1 rotation damping and now it behaves as desired.

It was very floppy until I reduced the damping to that number by accident, I was under the assumption that more damping meant more control/closeness to the animation rig.

Edit: Do groups have names? For example I put both arms in a simulation group that’s named [bone_name.L.rGroup], which feels odd to me. I don’t dare manually change the names of the nodes because I am certain that’s going to break something.

Great! Your best bet for a better understanding at this point is to experiment. Tweak values, run the simulation to see what it does. You can think of damping as “motion friction”. Zero damping means infinite jiggle that never comes to rest.

It’s safe to rename any Ragdoll object. They all have a default name because they need a name. It has no effect on the simulation.