Version: 2018.2
Character Joint
Constant Force (fuerza constante)

Configurable Joint

Los Configurable Joints son extremamente personalizados ya que estos incorporan toda la funcionalidad de otro tipos de articulaciones. Usted puede utilizarlas para crear cualquier cosa desde versiones adaptadas de los joints existentes a unos joints altamente especializados de su propio diseño.

Propiedades

Propiedad: Función:
Connected Body El otro objeto Rigidbody al cual la articulación está conectada. Usted puede configurar esto a None para indicar que la articulación está adjunta a una posición fija en el espacio en vez de otro Rigidbody.
Anchor El punto dónde el centro de la articulación está definida. Toda la simulación basada en la física utilizará este punto como el centro de los cálculos.
Axis El eje local que definirá la rotación natural del objeto basado en la simulación de física.
Auto Configure Connected Anchor Si esto está activado, luego la posición Connected Anchor será calculada automáticamente para que encaje la posición global de la propiedad de anclaje. Este es el comportamiento por defecto. Si este está desactivado, usted puede configurar la posición del anclaje conectado manualmente.
Connected Anchor Configuración manual de la posición de anclaje conectada.
Secondary Axis Juntos, el Axis y Secondary Axis definen el sistema de coordenadas local de la articulación. El tercer eje está configurado para ser ortogonal a los otros dos.
X, Y, Z Motion Permite que el movimiento a lo largo de los ejes X, Y o Z sea Free, completamente Locked o Limited de acuerdo con las propiedades de límite descritas a continuación.
Angular X, Y, Z Motion Permite que la rotación a lo largo de los ejes X, Y o Z sea Free, completamente Locked o Limited de acuerdo con las propiedades de límite descritas a continuación.
Linear Limit Spring Una fuerza de resorte aplicada para jalar el objeto de vuelta cuando pasa la posición de limite.
        Spring La fuerza del resorte. Si este valor está configurado a cero entonces el limite no se podrá pasar; un valor distinto a cero hará que el limite sea elástico.
        Damper La reducción de la fuerza del resorte en proporción a la velocidad del movimiento de la articulación. Ajustar un valor por encima de cero permite al joint “amortiguar” las oscilaciones que de otro modo continuarán indefinidamente.
Linear Limit Limite en el movimiento lineal del joint (ie, el movimiento sobre la distancia en vez de la rotación), especificado como la distancia desde el origen del joint.
        Limit La distancia en unidades del mundo desde el origen al limite.
        Bounciness La fuerza de rebote aplicada al objeto para empujarlo de vuelta cuando alcanza la distancia del limite.
        Contact Distance La tolerancia de distancia mínima (entre la posición del joint y el límite) en la que se aplicará el límite. Una alta tolerancia hace que el límite sea menos probable que se viole cuando el objeto se mueve rápidamente. Sin embargo, esto también requerirá que el límite sea tomado en cuenta por la simulación física más a menudo y esto tenderá a reducir ligeramente el rendimiento.
Angular X Limit Spring Un torque de resorte aplicado para girar el objeto de vuelta cuando pasa el limite del ángulo del joint.
        Spring El torque del resorte. Si este valor es configurado a cero entonces el limite no pasará; un valor diferente a cero hará que el limite sea elástico.
        Damper La reducción del torque del resorte en proporción a la velocidad de rotación de la junta. Ajustar un valor por encima de cero permite al joint “amortiguar” las oscilaciones que de otro modo continuarán indefinidamente.
Low Angular X Limit Límite inferior de la rotación del joint alrededor del eje X, especificado como un ángulo de la rotación original del joint.
        Limit El ángulo límite.
        Bounciness Torque de rebote aplicado al objeto cuando su rotación llega al limite del ángulo.
        Contact Distance La tolerancia angular mínima (entre el ángulo del joint y el límite) en la que se aplicará el límite. Una alta tolerancia hace que el límite sea menos probable que se viole cuando el objeto se mueve rápidamente. Sin embargo, esto también requerirá que el límite sea tomado en cuenta por la simulación física más a menudo y esto tenderá a reducir ligeramente el rendimiento.
High Angular XLimit Esto es similar a la propiedad Low Angular X Limit descrita anteriormente, pero determina el límite angular superior de la rotación del joint en lugar del límite inferior.
Angular YZ Limit Spring Esto es similar a la propiedad Angular X Limit Spring descrita anteriormente, pero aplica rotación alrededor de ambos ejes Y y Z.
Angular Y Limit Análogamente a las propiedades del Angular X Limit descritas anteriormente, pero se aplica al eje Y y considera que tanto los límites angulares superior como los inferiores son iguales.
Angular Z Limit Análogamente a las propiedades del Angular X Limit descritas anteriormente, pero se aplica al eje Z y considera que tanto los límites angulares superior como los inferiores son iguales.
Target Position La posición destino en la que debe moverse la fuerza motriz del joint.
Target Velocity La velocidad deseada con la que el joint debe moverse a la Target Position bajo la fuerza motriz.
XDrive La fuerza motriz que mueve el joint linealmente a lo largo de su eje X local.
        Mode El modo determina si el joint se debe mover para alcanzar una Position especificada, una Velocity especificada o ambos.
        Position Spring La fuerza del resorte que mueve el joint hacia su target position. Esto sólo se utiliza cuando el modo de drive está ajustado en Position o Position and Velocity.
        Position Damper La reducción de la fuerza del resorte en proporción a la velocidad de movimiento del joint. Configurar un valor por encima de cero permite al joint “amortiguar” las oscilaciones que de otro modo continuarán indefinidamente. Esto sólo se utiliza cuando el modo de drive está ajustado en Position o Position and Velocity.
        Maximum Force La fuerza utilizada para acelerar el joint hacia su target velocity. Esto sólo se utiliza cuando el modo de drive está configurado a Velocity o Position and Velocity.
YDrive Esto es análogo al X Drive descrito anteriormente pero se aplica al eje Y del joint.
ZDrive Esto es análogo al X Drive descrito anteriormente pero se aplica al eje Z del joint.
Target Rotation La orientación que debe girar la fuerza motriz rotacional del joint, especificada como quaternion.
Target Angular Velocity La velocidad angular que la fuerza motriz de rotación del joint debe tener como objetivo. Esto se especifica como un vector cuya longitud especifica la velocidad de giro y cuya dirección define el eje de rotación.
Rotation Drive Mode La forma en que la fuerza motriz se aplicará al objeto para girarlo a la target orientation. Si el modo está ajustado a X and YZ,, el torque se aplicará alrededor de estos ejes como se especifica en las propiedades Angular X/YZ Drive descritas a continuación. Si se utiliza el modo Slerp, las propiedades Slerp Drive determinarán el torque de accionamiento.
Angular X Drive Esto especifica cómo el joint será girado por el torque de accionamiento alrededor de su eje X local. Se utiliza sólo si la propiedad Rotation Drive Mode descrita anteriormente se configura en X & YZ.
        Mode El modo determina si el joint debe moverse para alcanzar una Position angular especificada, una Velocity angular especificada o ambas.
        Position Spring El torque del resorte que gira el joint hacia su target position. Esto solo se utiliza cuando el drive mode está configurado a Position o Position and Velocity.
        Position Damper La reducción del torque del resorte en proporción a la velocidad de movimiento del joint. Ajustar un valor por encima de cero permite al joint “amortiguar” las oscilaciones que de otro modo continuarán indefinidamente. Esto sólo se utiliza cuando el drive mode está ajustado en Position o Position and Velocity.
        Maximum Force El torque utilizado para acelerar el joint hacia su target velocity. Esto solo se utiliza cuando el drive mode está configurado a Velocity or Position and Velocity.
Angular YZDrive Esto es análogo al Angular X Drive descrito anteriormente, pero se aplica tanto a los ejes del Joint Y y Z.
Slerp Drive Esto especifica cómo el joint será girado por el torque de accionamiento alrededor de todos los ejes locales. Se utiliza sólo si la propiedad Rotation Drive Mode descrita anteriormente está configurada en Slerp.
        Mode El modo determina si el joint debe moverse para alcanzar una Position angular especificada, una Velocity angular especificada o ambas.
        Position Spring El torque del resorte que gira el joint hacia su target position. Esto solo se utiliza cuando el drive mode está configurado a Position o Position and Velocity.
        Position Damper La reducción del torque del resorte en proporción a la velocidad de movimiento del joint. Ajustar un valor por encima de cero permite al joint “amortiguar” las oscilaciones que de otro modo continuarán indefinidamente. Esto sólo se utiliza cuando el drive mode está ajustado en Position o Position and Velocity.
        Maximum Force El torque utilizado para acelerar el joint hacia su target velocity. Esto solo se utiliza cuando el drive mode está configurado a Velocity or Position and Velocity.
Projection Mode Esto define cómo el joint será snapped de vuelta a sus restricciones cuando se mueva inesperadamente más allá de ellos (debido a que el motor de física es incapaz de conciliar la combinación actual de fuerzas dentro de la simulación). Las opciones son None y Position and Rotation.
Projection Distance La distancia que el joint debe moverse más allá de sus limitaciones antes de que el motor de física intente encajarlo de nuevo a una posición aceptable.
Projection Angle El ángulo del joint debe girar más allá de sus restricciones antes de que el motor de física intente encajarlo de nuevo a una posición aceptable.
Configured in World Space Deberían los valores configurados por las diferentes propiedades target y drive calcularse en world space (espacio de mundo) en vez del espacio local del objeto?
Swap Bodies Si está activado, esto hará que el joint se comporte como si el componente estuviera unido al Rigidbody conectado (es decir, al otro extremo de la junta).
Break Force Si el joint es empujado más allá de sus restricciones por una fuerza mayor que este valor entonces el joint será permanentemente “roto” y borrado.
Break Torque Si el joint se gira más allá de sus restricciones por un torque mayor que este valor entonces el joint será permanentemente “roto” y borrado.
Enable Collision Debería el objeto con el joint ser capaz de colisionar con el objeto conectado (opuesto a pasar a través de cada uno)?
Enable Preprocessing Si el preprocessing está desactivado entonces ciertas “configuraciones” imposibles del joint se mantendrá más estable en lugar de derivar descontroladamente fuera de control.

Detalles

Al igual que otros joints, el Configurable Joint le permite restringir el movimiento de un objeto, pero también para conducirlo a una target velocity o target position usando fuerzas. Sin embargo, hay muchas opciones de configuración disponibles y pueden ser bastante sutiles cuando se utilizan en combinación; Es posible que necesite experimentar con diferentes opciones para que el joint se comporte exactamente de la manera que desea.

Limitando el Movimiento

Puede restringir tanto el movimiento de traslación como la rotación en cada eje de forma independiente usando las propiedades X, Y, Z Motion y X, Y, Z Rotation. Si Configured In World Space está habilitado, entonces los movimientos serán restringidos a los ejes del mundo en lugar de los ejes locales del objeto. Cada una de estas propiedades se puede establecer en Locked, Limited o Free:

  • Un eje Locked no permitirá el movimiento en absoluto. Por ejemplo, un objeto locked (bloqueado) en el eje del mundo Y no se puede mover arriba o abajo.
  • Un eje Limited permite el movimiento libre entre limites predefinidos, como se explica abajo. Por ejemplo, a una torreta de armas se le puede dar un arco de fuego restringido limitando su rotación Y a un rango angular específico.
  • Un eje Free permite cualquier movimiento.

Puede limitar el movimiento de traslación utilizando la propiedad Linear Limit, que define la distancia máxima que el joint puede moverse desde su punto de origen. (Medido a lo largo de cada eje por separado). Por ejemplo, puede restringir el disco para una mesa de hockey aéreo bloqueando el joint en el eje Y (en World Space), dejándola libre en el eje Z y configurando el límite para que el eje X se ajuste al ancho de la mesa; El puck se vería obligado a permanecer dentro del área de juego.

También puede limitar la rotación utilizando las propiedades Angular Limit. A diferencia del límite lineal, éstos permiten especificar diferentes valores de límite para cada eje. Además, también puede definir límites superiores e inferiores del ángulo de rotación por separado para el eje X (los otros dos ejes usan el mismo ángulo a cada lado de la rotación original). Por ejemplo, se podría construir una “tabla de oscilación” usando un plano plano con una junta restringida para permitir una ligera inclinación en las direcciones X y Z mientras se deja bloqueada la rotación Y.

Rebote y Resortes

Por defecto, un joint simplemente deja de moverse cuando se ejecuta en su límite. Sin embargo, una colisión inelástica como esta es rara en el mundo real y por lo que es útil para agregar alguna sensación de rebote a una articulación restringida. Puede utilizar la propiedad Bounciness de los límites lineales y angulares para hacer que el objeto restringido se devuelva después de que alcance su límite. La mayoría de las colisiones se verá más natural con una pequeña cantidad de regocijo, pero también puede configurar esta propiedad más alto para simular límites inusualmente saliente como, por ejemplo, los cojines de una mesa de billar.

Un joint que rebota que no cruza el limite
Un joint que rebota que no cruza el limite

Los límites del joint se pueden suavizar aún más usando las propiedades del resorte: Linear Limit Spring para la traslación y Angular X/YZ Limit Spring para la rotación. Si ajusta la propiedad Spring a un valor por encima de cero, el joint no detendrá bruscamente el movimiento cuando alcance un límite pero será de vuelto a la posición límite por una fuerza de resorte (la fuerza está determinada por el valor Spring) . Por defecto, el resorte es perfectamente elástico y tenderá a catapultar el joint hacia atrás en la dirección opuesta a la colisión. Sin embargo, puede utilizar la propiedad Damper para reducir la elasticidad y devolver el joint al límite más suavemente. Por ejemplo, puede utilizar un spring joint para crear una palanca que se puede tirar hacia la izquierda o la derecha, pero luego vuelve a la posición vertical. Si los resortes son perfectamente elásticos, entonces la palanca tenderá a oscilar hacia adelante y hacia atrás alrededor del punto central después de que se suelte. Sin embargo, si se agrega suficiente amortiguación, entonces el resorte se estabilizará rápidamente hasta la posición neutral.

Spring joint cruza el limite pero es empujado de vuelta
Spring joint cruza el limite pero es empujado de vuelta

Drive forces (Fuerzas motrices)

No sólo un joint puede reaccionar ante los movimientos del objeto unido, sino que también puede aplicar activamente drive forces para poner el objeto en movimiento. Algunos joints simples necesitan mantener el objeto moviéndose a una velocidad constante como, digamos, un motor giratorio que gira una paleta de ventilador. Puede configurar la velocidad deseada para dichos joints utilizando las propiedades Target Velocity y Target Angluar Velocity. También puede ser necesario que los joints que mueven su objeto hacia una posición particular en el espacio (o una orientación particular); Se pueden configurar con las propiedades Target Position y Target Rotation. Por ejemplo, puede implementar una carretilla elevadora montando las horquillas en un configurable joint y luego establecer la altura objetivo para elevarlas desde un script.

Con el objetivo configurado, las propiedades X, Y, Z Drive y Angular X/YZ Drive (o, alternativamente, Slerp Drive) especifican la fuerza utilizada para empujar el joint hacia ella. La propiedad Mode_ Drive selecciona si el joint debe buscar una target position, velocity position o ambas. El Position Spring y el Position Damper funcionan de la misma manera que para las restricciones del joint cuando se busca una target position. En el modo de velocidad, la fuerza del resorte depende de la “distancia” entre la velocidad actual y la target velocity; El amortiguador ayuda a que la velocidad se estabilice en el valor elegido en lugar de oscilar interminablemente a su alrededor. La propiedad Maximum Force es un refinamiento final que impide que la fuerza aplicada por el resorte exceda un valor límite independientemente de hasta qué punto el joint es de su objetivo. Esto impide que la circunstancia en la que un joint estirado de lejos de su objetivo rápidamente encaje el objeto de nuevo de manera incontrolada.

Tenga en cuenta que con todas las drive forces (excepto por Slerp Drive, descrito abajo), la fuerza se aplica de manera separada en cada eje. Entonces, por ejemplo, usted podría implementar una nave espacial que tiene una velocidad de vuelo hacia delante alta pero una velocidad relativamente baja en el movimiento de dirección lateral.

Slerp Drive

Mientras que los otros drive modes aplican fuerzas en ejes separados, Slerp Drive utiliza la interpolación esférica de Quaternion o la funcionalidad “slerp” para reorientar el joint. En lugar de aislar los ejes individualmente, el proceso slerp encuentra esencialmente la rotación total mínima que llevará al objeto de la orientación actual al objetivo y lo aplicará a todos los ejes según sea necesario. El Slerp drive es ligeramente más fácil de configurar y de afinar para la mayoría de los propósitos, pero no le permite especificar diferentes fuerzas de accionamiento para los ejes X e Y/Z.

Para habilitar Slerp drive, usted debe cambiar la propiedad Rotation Drive Mode de X and YZ a Slerp. Tenga en cuenta que los modos son mutuamente excluyentes; El joint utilizará los valores Angular X/YZ Drive o Slerp Drive, pero no los dos juntos.

Character Joint
Constant Force (fuerza constante)