Jump to content
Sign in to follow this  
Jhonatan00_00

Problema con transiciones en Unity 4

Recommended Posts

Buenas tardes, tengo un problemilla con mis animaciones y es que hasta que no finaliza una de ellas no empieza a hacer la transición hacia la otra. Por ejemplo si salto y caigo, cuando toco el suelo hace una animación de agacharse y no comienza a correr de nuevo hasta que no ha terminado la animación por completo, por lo que se para y después sigue corriendo.

En Internet he visto que existe la opción de Has Exit Time que sirve precisamente para esto, para indicar que la animación no tiene por que finalizar por completo para comenzar a reproducir la transición hacia la siguiente, pero en Unity 4 no la encuentro. A mi me aparece solo esto:

Animator.jpg

- ¿Como puedo evitar que las animaciones se reproduzcan completas antes de pasar a hacer una transición?. (No me refiero a recortar el tiempo de la transición, si no a que comience a reproducirla nada mas cumplirse una condición).

- ¿Como puedo cambiar el nombre del objeto que tiene aplicado el Animator?. Me aparece Cabeza.Reposo -> Cabeza.Impulso, pero el animator está aplicado a un personaje y no a su cabeza. :62_dizzy_face:

Un saludo.

Edited by Jhonatan00_00

Share this post


Link to post
Share on other sites

No hay forma compañeros... sigo sin poder hacer las transiciones como las necesito y he buscado por Google pero es que no encuentro la solución...

Les pongo en situación: tengo una animación donde el personaje se agacha para tomar impulso y saltar y otra donde corre. Si vamos corriendo y le damos a salto el personaje (aún corriendo) se agacha poniendo las dos piernas juntas y después salta, pero lo que necesito que haga es que me mezcle la postura entre agacharse y correr (porque estamos corriendo no en parado) y que se agache un poco con la pierna que tenga hacia delante al correr pero no lo hace. Lo que hace es parar de correr, reproducir la animación completa de agacharse sin mas y después saltar.

Cuando cae al suelo hace igual, debería de interpolar entre la animación de agacharse al caer y correr, para seguir corriendo sin que se detenga pero tampoco lo hace, si no que pone las dos piernas juntas, se agacha, se levanta y después comienza la animación de correr, no me interpola bien entre una y la otra.

- ¿Puede haber alguna forma de solucionar esto por medio de programación?.

Saludos.

Share this post


Link to post
Share on other sites

Si lo que buscas es que no aya espacio entre una animación y otra...

as probado a mover la flecha marcada en purpura hasta el símbolo marcado en negro?

 Animator.jpg.a5fc723dad6d271fb9c067190558a55b.jpg

no se si eso soluciona tu problema...

Share this post


Link to post
Share on other sites

Gracias por responder, pero no soluciona el problema. :44_frowning2:

Eso seria básicamente eliminar la transición y lo que busco no es recortar la transición si no que la interrumpa y vaya hacia otra animación en cuanto se cumpla una condición. Creo que no me estoy explicando bien...

EDITO -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Haciendo comprobaciones he visto que puedo conseguir el efecto que quiero simplemente moviendo hacia atrás o hacia delante la animación hacia la que tiene que hacer la transición desde el inspector, el problema es que no es nada exacto porque tienes que hacerlo a ojo con el ratón y me gustaría saber si hay alguna manera de controlar esto de las transiciones por script, para que las animaciones se mezclen exactamente como y cuando quiero.

He probado con animation.CrossFade pero solo sirve para acortar lo que dura la transición.

Edited by Jhonatan00_00

Share this post


Link to post
Share on other sites

Voy a hacer la pregunta tonta de rigor: ¿Estás seguro de que Unity v.4x tiene esa feature en la ventana del Animator? La mejor forma es localizar los blogs con los changelogs, y anuncios de novedades, y buscar en qué versión añadieron esa característica...

Share this post


Link to post
Share on other sites

Tiene razón Pioj, creo que la función de Has Exit Time no está disponible hasta Unity 5... o actualizo o actualizo...

Share this post


Link to post
Share on other sites

Buenos días, me alegra que el foro vuelva a estar operativo después de todo este tiempo. He actualizado a Unity 5.2.0f3 y ya tengo todas las opciones de transiciones, etc para el Animator, pero he estado haciendo pruebas y aún así sigo sin poder conseguir exactamente lo que busco. Lo que quiero es poder interrumpir en cualquier momento una transición y que esa transición evolucione hacia la animación que yo quiera. Es decir, que si el personaje está cayendo y toca el suelo, no se agache y se levante para después correr, si no que si le damos a correr nada mas tocar el suelo el personaje interrumpa la transición de agacharse para evolucionar hacia la de correr de forma fluida.

Solo he conseguido interrumpir la transición por medio de script usando GetComponent<Animator>().Play, pero no hace la transición si no que directamente reproduce la siguiente animación y no es lo que busco.

¿Alguna idea?.

Saludos y animo, que ya queda menos de cuarentena.

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...