Jump to content
Sign in to follow this  
Jhonatan00_00

ANSWERED Eventos de animación (SOLUCIONADO)

Recommended Posts

Buenos días, he creado la animación de salto de mi personaje y primero el personaje se agacha para después saltar, por lo que si le aplico fuerza instantáneamente, en cuanto pulsemos la tecla, el personaje salta cuando aún está agachado.

Para solucionar esto he creado un temporizador y cuando llega a un tiempo determinado hace que el personaje salte, lo que soluciona el problema, pero me he dado cuenta de que existen los "Eventos de animación" y que se usan para lanzar procesos, sonidos, etc en un fotograma clave y esto soluciona mucho mejor el problema. El caso es que llevo un rato buscando tutoriales y probando como hacerlo y no hay forma.

He conseguido crear un evento pinchando en el modelado de mi personaje y en Animations, después he bajado a la pestaña de Event y he creado un evento con nombre Salto01, pero mi pregunta es:

- ¿Como lanzo ese evento ahora por script?.

Edited by Jhonatan00_00

Share this post


Link to post
Share on other sites

Capturando el evento desde un componente que tenga como referencia una propiedad de AnimatorController, asignas el delegado o método que corresponda. 

 

Si no entendés, anda a la documentación de Unity. 

Share this post


Link to post
Share on other sites

Es lo primero que he hecho pero no me entero porque no explican las cosas paso por paso, por ejemplo, ¿como se llega a esta ventana?:

 

Animation.jpg

Share this post


Link to post
Share on other sites

Es lo primero que he hecho pero no me entero porque no explican las cosas paso por paso, por ejemplo, ¿cómo se llega a esta ventana?:

image.png

Te dejo el link de esta página, no lo compartas, es ultra secreto, lo saque de la deep weeb pero aporta una información vital sobre AnimatioView

Link del infierno

Link del Infierno X2

También quiero que sepas que existe una web a dia de hoy algo conocida, desarrollada especialmente para buscar eso que no sabemos ni como se llama

Link a la página mágica.

  • Like 3

Share this post


Link to post
Share on other sites

Gracias Francoe1, he buscado por Google, por Youtube y por varios sitios, incluso lo explican en el libro que me compré de programación en C# pero lo lían todo mucho y no explican las cosas paso por paso para llegar a las ventanas que se ven. Ahora tengo la ventana del Animation View, pero ¿por que no puedo crear o mover un evento directamente desde el Animation View?.

En los tutoriales o en el manual se ve muy bonito pero después voy a hacerlo y no me deja... tengo que crear los eventos desde la pestaña de Animations de mi modelo 3D.

Share this post


Link to post
Share on other sites
30 minutes ago, Jhonatan00_00 said:

Gracias Francoe1, he buscado por Google, por Youtube y por varios sitios, incluso lo explican en el libro que me compré de programación en C# pero lo lían todo mucho y no explican las cosas paso por paso para llegar a las ventanas que se ven. Ahora tengo la ventana del Animation View, pero ¿por que no puedo crear o mover un evento directamente desde el Animation View?.

En los tutoriales o en el manual se ve muy bonito pero después voy a hacerlo y no me deja... tengo que crear los eventos desde la pestaña de Animations de mi modelo 3D.

Sigue intententando, la documentación de Unity explica paso por paso para niños de 5 a 6 años.... 
Estás intentando que te demos respuestas a experiencias, intenta analizar el inspector y sacar tus propias deducciones de que está pasando, es FÁCIL, ánimo!

Share this post


Link to post
Share on other sites
3 hours ago, Jhonatan00_00 said:

he buscado por Google, por Youtube y por varios sitios, incluso lo explican en el libro que me compré de programación en C# pero lo lían todo mucho y no explican las cosas paso por paso para llegar a las ventanas que se ven

Igual es que no estás buscando correctamente, o que no te paras a leer las cosas para entenderlas. Prueba a tener más paciencia, o a complementar la documentación con vídeos o blogs de otros desarrolladores. Si te decimos ésto es precisamente porque muchos de nosotros no hemos tenido problemas para aprenderlo tal como viene...

Si te pones a investigar el programa una tarde, llegas perfectamente a la ventana de Animation, sí o sí. Y al AudioMixer, y al Profiler, y a otras muchas cosas que por ahora te suenan raro...

Share this post


Link to post
Share on other sites

Buenos días, el tema del hilo no era encontrar la ventana del Animator View, pero veía una chorrada ponerme a tocar todo para encontrarla y perder una tarde como dicen si podía preguntar aquí. El tema es como lanzar un evento de animación que ya había creado.

En el manual lo que dicen es esto:

La función llamada por un animation event (evento de animación) puede opcionalmente tomar un parámetro. El parámetro puede ser un float, string, int, referencia a un objeto o un objeto AnimationEvent. El objeto AnimationEvent tiene variables miembro que permiten un float, string, integer y referencia a un objeto en ser pasada a la función de una sola vez, a lo largo de otra información acerca del evento que activo ese llamado de función.

// This C# function can be called by an Animation Event
public void PrintFloat (float theValue) {
    Debug.Log ("PrintFloat is called with a value of " + theValue);
}

Que traducido al español significa: Desde nuestro script podemos crear una función cualquiera (void LoQueSea () { } ) y del mismo modo que podemos hacer llamada a esa función desde nuestro script escribiendo el nombre de nuestra función así; " LoQueSea(); ", el evento de animación lo va a llamar en el fotograma clave que lo hayamos creado, sin tener que hacer llamada a la función de ninguna otra manera, simplemente poniéndole el mismo nombre al evento que a la función. Ejemplo:

void LoQueSea () {
Vida = Vida + 10;
}

Llamando a nuestro evento "LoQueSea", cuando la animación pase por el fotograma que hemos creado, el evento de animación hará llamada a nuestra función, no tiene mas. ¿Que utilidades puede tener?.

- Hacer que al llegar a un fotograma de la animación de nuestro arma, salga una bala.

- Hacer una animación por ejemplo de saltar para el personaje y que al llegar a un fotograma concreto salte (además esto es mucho mejor que la forma tradicional que suelen usar los programadores para saltar usando OnCollisionStay, porque el animator event ejecuta el salto una sola vez durante la animación y ya no puedes saltar en el aire, solo tienes que usar OnCollisionEnter para detectar cuando toque el suelo al caer y active la animación correspondiente).

De todos modos habiendo solucionado el tema del hilo, sigo sin poder editar los animation event desde el Animator View, ni haciendo doble click sobre nada, ni de ninguna forma... y no me digan ustedes que no lo estoy intentando, es que no me funciona, ¿pero por que? (ya he leído el manual, pero no veo porque no me funciona).

Un saludo.

Share this post


Link to post
Share on other sites

Las animaciones importadas desde un modelo no son lo mismo que las animaciones creadas desde el componente Animation View.

  • Like 1

Share this post


Link to post
Share on other sites
On 2/12/2020 at 6:32 AM, Jhonatan00_00 said:

- ¿Como lanzo ese evento ahora por script?.

En un componente (script) ubicado en el mismo lugar que el Animator, poné:

void Salto01()
{
	//Tu código ...
}

Si se está disparando el evento y ningún componente (del gameObject con el Animator) tiene este método, se te imprimirá en consola un error.

13 hours ago, Jhonatan00_00 said:

De todos modos habiendo solucionado el tema del hilo, sigo sin poder editar los animation event desde el Animator View, ni haciendo doble click sobre nada, ni de ninguna forma... y no me digan ustedes que no lo estoy intentando, es que no me funciona, ¿pero por que? (ya he leído el manual, pero no veo porque no me funciona).

Si el clip es importado (creo que figura como ReadOnly) tenés que irte a las opciones de importación del asset, tab Animation, luego metete en el clip, events y definí todo por ahí.

 

Edited by lightbug
  • Like 1

Share this post


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

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