LimitRange for additional values rotated by RagdollDynamics

Hi Marcus!

I am new to posting in the forum.

As you can see in the first half of the movie ( 01_before.mp4 ), I have changed the pose of the cloak by setting the key before running RecordSimulation.
Originally, the cloak was hanging straight down, but here the pose is changed in advance so that the cloak spreads out like a fan.
Then when I run RecordSimulation, the result changes depending on the LimitRangeX/Y/Z.
I have one thing I would like to discuss in this part.

The first half of the movie ( 01_before.mp4 ) shows the simulation results with LimitRangeX/Y/Z set to 0.0 and the second half of the movie with LimitRangeX/Y/Z set to 10.0.

When LimitRangeX/Y/Z is set to 0.0, there is no limit, so the animation starts from the pre-set fan pose.
However, when LimitRangeX/Y/Z is set to 10.0, the animation is limited to only about 10 degrees, including the pre-defined fan pose.

Therefore, I would like to leave the pre-defined fan pose as it is and only limit the movement by RagdollDynamics.
I have prepared a movie for reference. ( 02_after.mp4 )

In this way, it is easy to adjust only the movement of RagdollDynamics while keeping the original pose and animation.
I consider this an effective means of correcting interference between meshes and adjusting silhouettes in advance.

Can this be done with the current RagdollDynamics?



Hi @julien-Nadler! Welcome to the forums! :partying_face:

It looks like the animated pose is starting outside of the limit. Would it be possible to share a screenshot of the top joint and their limit? It should become visible when selecting the joint, or in the Limit Mode of the Manipulator.

When you first assign a Marker, Ragdoll will assume your joints are at the center of their limit. So value of Limit X = 10 would mean 5 degrees in both the positive and negative direction. However, as your animation changes, the joints will no longer be at the center of the limit. If you want to change the center, you can use the Reset Constraint Frames command.

For example:

Assign Markers, notice how they start at the center of their limit.

Change the animation, they now start outside of their limit, meaning Ragdoll will snap them towards their allowed range.

Next, re-center your limits to where your animation is currently starting using the Reset Constraint Frames command.

Let me know if this helps!

Hi @marcus !

Thanks for replying to my post.

Would it be possible to share a screenshot of the top joint and their limits?

I have attached a screenshot.

If you want to change the center, you can use the Reset Constraint Frames command.

Indeed, using the Reset Constraint Frames command, I was able to make the center of the joint the center of the limit.

However, I would like you to watch one video here.

In this video, the same key is set at frames -25 and 50.
If I use the Reset Constraint Frames command on the first frame in this situation, there is no problem.
But when I set a different key on an additional 60 frames, the original animation itself is also limited because it is out of the center of the limit.

Is there a best way to prevent the 60 frame key from being limited in this situation?

I think what you mean is that you want the cape to be limited by 10 degrees in every axis, except at frame 60. Unfortunately this is not possible, as limits - and their constraint frames - cannot be animated. The limits are meant to represent anatomical limits, such as how far your knee can bend or your shoulders move, and those kinds of limits do not change during animation.

Perhaps if we take a step back and consider the final result you are looking, maybe we can find an alternative solution to limits. Am I understanding it correctly that you are trying to prevent the cape from folding in on itself too much? That you want it to be very rigid? Have you tried increasing the Rotate Stiffness and decreasing the Rotate Damping? It’s safe to try values such as…

  • Rotate Stiffness = 1000
  • Rotate Damping = 0.001

This should make them very rigid. If you need more rigidity still, you can also increase the Substeps on the solver to e.g. 12 or 16. The next thing you can try is increasing the size of the shapes, even though it may not produce the collisions you are after. At least to try and get the right motion.

Another option is to use less Markers in the simulation. For example, if the cape consisted of only 3 Markers per chain, they would be much more rigid, much less able to bend.