Esta página proporciona sugerencias para mejorar la estabilidad Joint y Ragdoll
Evite los ángulos de articulación pequeños de Angular Y Limit y__Angular Z Limit__. Dependiendo de su configuración, los ángulos mínimos deberían ser de alrededor de 5 a 15 grados para que sean estables. En lugar de usar un ángulo pequeño, intente configurar el ángulo a cero. Esto bloquea el eje y proporciona una simulación estable
Desmarque la propiedad Enable Preprocessing de Joint. Inhabilitar el preprocesamiento puede ayudar a evitar que los Joints (articulaciones) se separen o se muevan de forma errática si se ven forzadas a situaciones en las que no hay forma de satisfacer las restricciones del Joint. Esto puede ocurrir si los componentesRigidbody conectados por Joints se separan mediante una geometría de colisión estática (por ejemplo, engendrando un Ragdoll parcialmente dentro de una pared).
En circunstancias extremas (como spawning parcialmente dentro de una pared o empujado con una fuerza grande), el solucionador de joints no puede mantener los componentes del Rigidbody de un Ragdoll juntos. Esto puede resultar en estiramiento. Para manejar esto, habilite la proyección en los Joints usando ConfigurableJoint.projectionMode o CharacterJoint.enableProjection.
If Rigidbody components connected with Joints are jittering, open the Physics window (Edit > Project Settings, then select the Physics category) and try increasing the Default Solver Iterations value to between 10 and 20.
If Rigidbody components connected with Joints are not accurately responding to bounces, open the Physics window (Edit > Project Settings, then select the Physics__category) and try increasing the Default Solver Velocity Iterations__ value to between 10 and 20.
Nunca use acceso al Transform directo con componentes de Rigidbody Kinematic conectados por Joints a otros componentes rigidbody. Al hacerlo, omite el paso en el que PhysX calcula las velocidades internas de los componentes correspondientes del RigidBody, lo que hace que el solucionador proporcione resultados no deseados. Un ejemplo común de mala práctica es usar el acceso de Transform directo en proyectos 2D para voltear caracteres, alterando Transform.TransformDirection en la raíz de la plataforma. Esto se comporta mucho mejor si utiliza Rigidbody2D.MovePosition yRigidbody2D.MoveRotation en su lugar.
Evite grandes diferencias en las masas entre los componentes de Rigidbody conectados por joints. Está bien tener un Rigidbody con el doble de masa que otro, pero cuando una masa es diez veces más grande que la otra, la simulación puede ponerse nerviosa.
Trate de evitar escalas diferentes a 1 en la Transformación que contiene el Rigidbody o el Joint. La escala puede no ser robusta en todos los casos.
Si los componentes del Rigidbody se superponen cuando se insertan en el mundo, y no puede evitar la superposición, intente bajar el Rigidbody.maxDepenetrationVelocity para hacer que los componentes de Rigidbody se salgan entre sí más suavemente.