Ragdoll Wizard (Asistente de Ragdoll)
Tutorial del WheelCollider

Estabilidad de Articulaciones y Ragdoll

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.
  • Si los componentes del Rigidbody conectados con Joints están temblando, abra el Physics Manager (Edit > Project Settings > Physics) e intente aumentar el valor del Default Solver Iterations a entre 10 y 20.
  • Si los componentes del Rigidbody conectados con Joints no responden con precisión a los rebotes, abra el Physics Manager (Edit > Project Settings > Physics) e intente aumentar el valor de Default Solver Velocity Iterations entre 10 y 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.
Ragdoll Wizard (Asistente de Ragdoll)
Tutorial del WheelCollider