Ragdoll Jitters Upon Camera Looking from Above

Hello,

I have a ragdoll character in unity that is made of ConfigurableJoints, for which I created a movement scripts that enables and disables the ragdoll without setting the rigidbodies to kinematic.

For the enable method, I set each rigidbody’s spring and damper with different values, and so with the disable method.

When I added the ability to rotate the camera with Cinemachine, the character would jitter intensly and not stop.

This also occurs if selected in the hierarchy.

Why does this happen?

Here is the code for further clarification:

public void EnableRagdoll() {
        isRagdoll = true;
        rb.mass = ragdollRbMass;

        for (int i = 0; i < sealColliders.Count; i++)
        {
            ConfigurableJoint joint = sealColliders[i].GetComponent<ConfigurableJoint>();

            JointDrive _angularXDrive = joint.angularXDrive;
            JointDrive _angularYZDrive = joint.angularYZDrive;

            _angularXDrive.positionSpring = postionRagdollSprings[i];
            _angularXDrive.positionDamper = postionRagdollDampers[i];

            _angularYZDrive.positionSpring = postionRagdollSprings[i];
            _angularYZDrive.positionDamper = postionRagdollDampers[i];

            joint.angularXDrive = _angularXDrive;
            joint.angularYZDrive = _angularYZDrive;
        }
    }

public void DisableRagdoll() {
        isRagdoll = false;
        rb.mass = rbMass;

        for (int i = 0; i < sealColliders.Count; i++)
        {
            ConfigurableJoint joint = sealColliders[i].GetComponent<ConfigurableJoint>();

            JointDrive _angularXDrive = joint.angularXDrive;
            JointDrive _angularYZDrive = joint.angularYZDrive;

            _angularXDrive.positionSpring = postionSprings[i];
            _angularXDrive.positionDamper = postionDampers[i];

            _angularYZDrive.positionSpring = postionSprings[i];
            _angularYZDrive.positionDamper = postionDampers[i];

            joint.angularXDrive = _angularXDrive;
            joint.angularYZDrive = _angularYZDrive;

        }
     }

Can you elaborate? I don’t understand how adding a camera will have any impact on your character’s movement. How did you set up the camera? Please show inspectors and the hierarchy so I can see the relationship between camera, vcam, and character.

I agree with Greg, I did happen to have a similar issue, but I managed to find that it wasn’t the character moving, it was my perception of it looking through the camera with Cinemachine.

Since Cinemachine uses lateUpdate, my physics movements were in FixedUpdate, can you try to go to the Cinemachine Brain component, look for the Update Method setting and change it from LateUpdate to FixedUpdate to test if it works?