Sistema elástico: MRTK2

Sistema elástico

MRTK incluye un sistema de simulación elástica que incluye una amplia variedad de subclases extensibles y flexibles, que ofrecen enlaces para muelles de cuaternión dimensionales, muelles de volumen 3 dimensionales y sistemas simples de muelle lineal.

Actualmente, los siguientes componentes de MRTK que admiten el administrador de elásticos pueden aprovechar la funcionalidad de elastics:

Administrador de elastics

Elastic System2

Los procesos de administrador elástico pasan transformaciones y los alimenta en el sistema elástico.

La habilitación de elásticas para componentes personalizados se puede lograr mediante dos pasos:

  1. Llamar al método Initialize al iniciar la manipulación, actualizando el sistema con la transformación del host actual.
  2. Consultar ApplyHostTransform cada vez que se debe realizar un cálculo elástico en la transformación de destino actualizada.

Tenga en cuenta que los elásticos seguirán simulando una vez finalizada la manipulación (a través del bucle de actualización del administrador elástico). Para bloquear el comportamiento, las actualizaciones automáticas de Elastics EnableElasticsUpdate se pueden establecer en false.

De forma predeterminada, el componente de administrador elástico, cuando se agrega a un objeto de juego, no tendrá habilitados elásticos para ningún tipo de transformaciones. El campo Manipulation types using elastic feedback debe habilitarse para tipos de transformación específicos para crear la configuración y extensiones elásticas para el tipo seleccionado.

Configuraciones elásticas

De forma similar a las configuraciones de control de límites, el administrador elástico incluye un conjunto de objetos de configuración que se pueden almacenar como objetos scriptables y compartirse entre diferentes instancias o objetos prefabricados. Las configuraciones se pueden compartir y vincular como archivos de recursos que admiten scripts individuales o recursos anidados que se pueden crear scripts dentro de los objetos prefabricados. Las configuraciones adicionales también se pueden definir directamente en la instancia sin vincular a un recurso externo o anidado que admite scripts.

El inspector de administrador elástico indicará si una configuración se comparte o se inserta como parte de la instancia actual mostrando un mensaje en el inspector de propiedades. Además, las instancias compartidas no se podrán editar directamente en la propia ventana de propiedades del administrador elástico, sino que el recurso al que está vinculada tiene que modificarse directamente para evitar cambios accidentales en las configuraciones compartidas.

Elastics Manager ofrece opciones de objetos de configuración para los siguientes tipos de transformación, cada uno de ellos representado por un objeto de configuración elástico:

  • Traducción elástica
  • Rotación elástica
  • Escalado elástico

Objeto de configuración elástica

Una configuración elástica define las propiedades de un sistema diferencial de oscilador armónico amortiguado. Las siguientes propiedades se pueden ajustar, pero ya vienen con un conjunto de valores predeterminados en MRTK:

  • Masa: masa del elemento oscilador simulado.
  • HandK: constante de muelle de mano.
  • EndK: constante de resorte de extremo.
  • SnapK: constante de muelle de punto de acoplamiento.
  • Arrastre: factor de arrastre/amortiguador, proporcional a la velocidad.

Extensiones elásticas

La configuración de extensiones elásticas varía en función del tipo de manipulación. La traducción y la escala se representan mediante extensiones elásticas de volumen y la rotación se representa mediante una extensión elástica de cuaternión.

Extensión elástica del volumen

Las extensiones de volumen definen un espacio tridimensional en el que el oscilador armónico húmedo es libre de mover.

Límites extendidos de volumen elástico

  • StretchBounds: representa los límites inferiores del espacio elástico.
  • UseBounds: indica si el sistema debe respetar los límites extendidos. Si es true, cuando la iteración actual de la posición de destino está fuera de los límites extendidos, se aplicará la fuerza final.
  • SnapPoints: apunta dentro del espacio al que se ajustará el sistema.
  • RepeatSnapPoints: repite los puntos de acoplamiento en infinito. Los puntos de acoplamiento existentes servirán como un módulo en el que los puntos de acoplamiento reales se asignan a los múltiplos enteros más cercanos de cada punto de acoplamiento.
  • SnapRadius: distancia en la que los puntos de acoplamiento comienzan a forzar el muelle.

Cuadrícula de ajuste de volumen elástico

Extensión elástica de cuaternión

Las extensiones de cuaternión definen un espacio de rotación tridimensional en el que el oscilador armónico húmedo es libre de girar.

Ejemplo de rotación elástica

  • Puntos de acoplamiento: ángulos euler a los que se ajustará el sistema.
  • RepeatSnapPoints: repite los puntos de acoplamiento. Los puntos de acoplamiento existentes servirán como un módulo en el que los puntos de acoplamiento reales se asignan a los múltiplos enteros más cercanos de cada punto de acoplamiento.
  • SnapRadius: ángulo de arco en el que los puntos de acoplamiento comienzan a forzar el muelle en grados euler.

Escena de ejemplo de Elastics

Puede encontrar ejemplos de configuraciones elásticas en la ElasticSystemExample escena.

Escena de ejemplo de Elastics