Recomendaciones para mejorar la estabilidad del ragdoll.
Evite pequeños ángulos de la articulación del “Angular Y Limite” y “Angular Z Limit”. Dependiendo en su configuración los ángulos mínimos deberían estar cerca de 5 a 15 grados con el fin de ser estables. En vez de utilizar un pequeño ángulo intente configurar el ángulo a cero. Esto va a bloquear el eje y proporcionará una simulación estable.
Configure la propiedad de articulación (joint) “Enable Preprocessing” a false (sin marcar). Desactivando el preprocessing puede ayudar contra articulación “explotándose”. Las articulaciones se pueden “explotar” si están obligadas a situaciones dónde no hay una manera posible de satisfacer las restricciones de la articulación. Esto puede ocurrir si rigidbodies unidos son separados por una geometría estática de colisión , como generar un ragdoll parcialmente dentro de una pared.
La estabilidad del Ragdoll o estiramiento: Si a los ragdolls se les dan circunstancias extremas, como generarse parcialmente dentro de una pared o empujados por una fuerza muy grande, el solucionador de la articulación (joint solver) será incapaz de mantener los rigidbodies juntos. Esto puede resultar en un estiramiento o “ una nube de partes del cuerpo”. Por favor active la proyección de las articulaciones, utilizando ya “ConfigurableJoint.projectionMode” o “CharacterJoint.enableProjection”.
Si los cuerpos conectados con articulaciones están con fluctuación intente aumentar Edit->Project Settings->Physics->“Solver Iteration Count”. Intente entre 10 o 20.
Nunca utilice un uso directo del acceso directo del transform (direct transform acces) con cuerpos cinemáticos unidos a otros cuerpos. Haciendo esto va a omitir el paso dónde PhysX computa velocidades internas de cuerpos correspondientes y por lo tanto hace que el solucionador (solver) proporcione resultados desagradables. Hemos visto algunos proyectos 2D utilizando direct transform access para darle vuelta al personaje vía alterando la “transform.direction” en la raíz del rig. Esto se comporta mucho mejor si usted utiliza MovePosition / MoveRotation / Move más bien.
Avoid large differences in the masses between jointed rigid bodies. It’s okay to have one body with twice as much mass as another, but when one mass is ten times larger, or even higher, than the other then the simulation can get jittery.
Try to avoid scaling different from 1 in the Transform containing Rigidbody or the Joint. The scaling might not be robust in all cases.
If Rigidbodies are overlapping when inserted into the world and you cannot avoid the overlap then you can try to lower the Rigidbody.maxDepenetrationVelocity to make the bodies exit out of each other in a more smooth manner.