La animación de la columna sigue al colisionador en Unity (detección de colisiones)


prefacio

Después de exportar la animación realizada por la columna vertebral a Unity, es posible agregar directamente un colisionador al objeto de animación.
Pero encontrará que cuando el objeto está animado, el colisionador configurado no se moverá con la animación, el rendimiento es que el colisionador permanece en la posición inicial y el objeto se mueve con la animación.
Como se muestra en la figura:
inserte la descripción de la imagen aquí
la razón es que el objeto Transformar no cambia en absoluto en este momento y el colisionador natural no se moverá con él.


1. Utilice el componente BoneFollower

Mira la descripción del documento:

inserte la descripción de la imagen aquí

La función de este componente es hacer que el objeto adjunto siga el hueso especificado.

uso específico

  • Cree un subobjeto debajo del objeto requerido, agregue el componente BoneFollower, seleccione el hueso que el nombre del hueso debe seguir y agregue un colisionador.
    Al correr, encontrará que la transformación del objeto comienza a cambiar y el colisionador seguirá naturalmente el cambio.
    inserte la descripción de la imagen aquí
  • Otro uso se aplica al caso en el que se agrega un cuadro delimitador a Spine .
    边界框是Spine创建动画时一种多边形,类似于Unity中的Polygon Collider。

Puede comprobar si el cuadro delimitador se agrega al recurso exportado viendo el archivo json de hueso
y buscando cuadro delimitador.
inserte la descripción de la imagen aquí

  1. Agregue el componente BoundingBoxFollower al objeto , y aparecerá el mensaje "La forma ideal es agregar el componente al subobjeto", haga clic en el botón a continuación para crear un subobjeto y agregar automáticamente el componente.
    inserte la descripción de la imagen aquí
  2. Seleccione una ranura con un cuadro delimitador en la ranura y se generará automáticamente un Ploygon Collider 2D.
    inserte la descripción de la imagen aquí
  3. Al hacer clic en "Agregar seguidor de hueso" en el componente BoundingBoxFollower, se agregará automáticamente el componente BoneFollower. Selecciona también el hueso a seguir.
    inserte la descripción de la imagen aquí

Seguidor de caja delimitadora:
Seguidor de cuadro delimitador

2. Utilice el componente SkeletonUtility

Utilidad de esqueleto:
inserte la descripción de la imagen aquí

Este componente sirve para dividir la jerarquía ósea del objeto original para formar una jerarquía ósea como la animación 2D.

Uso específico:

inserte la descripción de la imagen aquí

La diferencia entre anular y seguir está escrita en detalle en el documento. En el
modo de anulación de SkeletonUtilityBone, puede arrastrar el hueso; generalmente elija seguir.
Por lo general, puede optar por utilizar el primer método BoneFollower anterior, que es más simple y más eficiente en cuanto a rendimiento.
inserte la descripción de la imagen aquí

Después de hacer clic en el botón de arriba, se generará la jerarquía ósea correspondiente, seleccione el hueso debajo de la raíz, ejecútelo y encontrará que la Transformación del hueso se puede cambiar gracias al componente SkeletonUtilityBone. En este punto, agregue un colisionador debajo del hueso correspondiente.
inserte la descripción de la imagen aquí


Resumir

Resumen de ChatGpt:
este blog presenta dos métodos para resolver el problema de que el colisionador de objetos de animación no sigue la animación y permanece en la posición inicial después de exportar la animación de Spine a Unity.

El primer método es utilizar el componente BoneFollower. La función de este componente es hacer que el objeto al que está conectado siga el hueso especificado. El uso específico es crear un subobjeto debajo del objeto deseado, agregar el componente BoneFollower, seleccionar el hueso a seguir y luego agregar un colisionador. De esta forma, la Transformación del objeto cambiará con la animación, por lo que el colisionador también cambiará.

El segundo método consiste en utilizar el componente SkeletonUtility, que divide la jerarquía ósea del objeto original para formar una jerarquía ósea similar a la animación 2D. Al usar SkeletonUtility, puede elegir el modo anular o seguir y, en general, elegir seguir. Al crear una jerarquía de huesos correspondiente y agregar un colisionador debajo del hueso correspondiente, la transformación del hueso será controlada por el componente SkeletonUtilityBone, de modo que se pueda seguir el colisionador.

El autor también mencionó la adición de un cuadro delimitador en Spine, que es similar al Polygon Collider en Unity. Para objetos con un cuadro delimitador, puede usar el componente BoundingBoxFollower, hacer clic en "Agregar seguidor de hueso" para agregar automáticamente el componente BoneFollower y seleccionar el hueso a seguir.

Finalmente, el autor señaló que el primer método, BoneFollower, es más simple y más eficiente en el rendimiento, se recomienda utilizar este método en la mayoría de los casos para resolver el problema del colisionador que sigue la animación.

Todo el blog presenta en detalle los pasos específicos de los dos métodos y adjunta los ejemplos de capturas de pantalla correspondientes para facilitar la comprensión y el funcionamiento de los lectores.

Supongo que te gusta

Origin blog.csdn.net/RainWind777/article/details/132000628
Recomendado
Clasificación