En la publicación anterior llegamos hasta animar cada movimiento.
Luego de haberlos realizado debemos de relacionar cada movimiento con el otro, y para poder realizar eso debemos de seleccionar el movimiento que da paso al otro, o en otras palabras seleccionar la animación previa a la siguiente. En mi caso voy a proceder a relacionar todas las animaciones con animacion_espera o conocido como idle.
Para poder relacionarlas como se indica en la imagen debemos de dar clic derecho sobre la animación_espera y seleccionar la opción "make transition" y arrastrar la fecha con la animación que deseamos relacionar.
Y así proceder a relacionar cada una de las animaciones con las otras, es necesario indicar que la dirección de la flecha indica que animación se ejecuta luego.
Es importante indicar que animación es la principal. Reconocer la animación principal es fácil puesto se pone de color naranja. Si la animación de color naranja no deseamos que sea la principal podemos dar clic derecho en otra animación y seleccionar "set as default" para que sea la principal.
Luego de realizar ese proceso, necesitamos crear variables para validar en qué momento se debe de realizar que animación. Animator acepta variables de los siguientes tipos : Float, int, bool, trigger. En el caso de este ejemplo hemos seleccionado Bool o booleano que sirve para la variable verdadero o falso.
Como se observa en la imagen superior he procedido a crear tres variables camina, golpe, y salto de tipo bool que se encuentran desactivadas, para que cuando se activen se active la siguiente animación.
En cada una de las líneas de transición entre cada animación debemos de asignarle que variable debe de afectar a que animación, para así por ejemplo solo se ejecute la animación_salto cuando la variable salto sea verdadera.
Pero antes se debe de confirmar que en la animación principal o por defecto se encuentre activa la opción Solo en todas las animaciones relacionadas, con esto estamos limitando que solo se ejecute la animación cuando se valide la variable.
Cuando seleccionemos cada línea de transición podemos observar que animación se ejecuta previo y después. Y así mismo en la parte inferior encontramos la sección de "conditions o condiciones" en la cual al desplegar el box podemos encontrar nuestras variables creadas. En cada línea que une a las animaciones activaremos las variables respectivas y en el valor indicaremos "true o verdadero". Por ejemplo si queremos activar la animación del golpe del personaje iremos a la línea que une a idle con animacion_golpe y asignaremos la variable golpe con el valor true.
Y ahora toca crear el script que de valor de positivo a cada variable para que se ejecute la animación, por ejemplo que cuando aplastemos la barra espaciadora nuestro personaje salte. El script a continuación se encuentra en C#. Claro este script debe de poseerlo nuestro player.
El script se encuetra comentado para mejor comprensión.
C# "Activa Animacion"
----------------------------------------------------------------------------------------
using UnityEngine;
using System.Collections;
public class activa_animacion : MonoBehaviour {
Animator ani; //esta variable guardará el animator
void Start (){
ani = GetComponent<Animator> (); //aquí asignamos el animator a la variable
}
void Update (){
if (Input.GetButtonDown ("Jump")) {
// si se presiona la barra de espacio se activa la variable salto y se le dá valor positivo
ani.SetBool ("salto", true); // con esta línea se activa la animación
}
if (Input.GetButtonDown ("Horizontal")) {
ani.SetBool ("camina", true);
}
}
}
----------------------------------------------------------------------------------------
Como puedo hacer para que una animacion pase de un estado a otro cada x segundos? Por ejemplo:
ResponderEliminarPasar de idle a lanzar bola cada 5 segundos.
A ver si alguien me puede ayudar q estoy atascado en esto. Si puede ser en c# mejor.
Un saludo
http://singletechgames.com/2014/03/06/tutorial-unity-2d-4-3-juego-plataforma-android-ii/
Eliminarusa un parametro de tipo float, para poner los segundo que pasaran antes de iniciar
como hago para que la animacion se reprodusca infinitamente porque yo coloco
ResponderEliminarif (Input .GetKey (Keycode .w))
miAnimator .setbool ("Avanzar",true);
para que camine pero solo se reproduce una vez y se queda quieto hasta
que suelte la tecla alguien podria ayudarme
Bueno si deseas que la animación se reproduzca de forma infinita (loop) deberás de quitar la condición osea, la tecla w. podrías poner de la siguiente forma.
Eliminarvoid Update (){
miAnimator.setbool ("Avanzar", true);
}
Saludos, me comentas si necesitas algo adicional!
Lo que quise decir es que yo tengo mi personaje con la animacion idle y la animacion de correr , entonces lo que yo hago es que pongo a que se reproduzca la animacion de correr al pulsar la tecla W .
Eliminarlo que quiero que haga es que el personaje siga corriendo mientras yo pulse la tecla W, Pero lo que pasa es que la animacion solo reproduce una vez y luego se queda estático en el aire igual que la animacion de idle , yo opino que el problema no esta en el scripting si no en la animacion .
las dos animaciones las saque de Mixamo.com y el personaje lo hice en Makehuman .
he resuelto el problema de que la animacion se reprodujera una vez
Eliminarfue un error mio pero ahora se genera otro error
el cual consiste en que el personaje esta limitado a correr en un bucle el tipo da los tres pasos y luego se hecha para atras y luego vuelve a correr y se vuelve a hechar para atras ...
como lo soluciono
Lograste resolver ese problema? Yo estoy con el mismo error... El personaje da los pasos y luego retrocede a la misma posición...
Eliminarhola yo voy empezando es esto del unity3d y quiero hacerles una consulta tengo el problema de que al darle clic derecho no me aparece la opcion de make transition ni select as default es por la version de unity o que pasa?
ResponderEliminarHola Creo Que Tiene Un Error Ya Que En Vez De ani Es animator Por Lo Menos En Mi Unity 5.2.3f1
ResponderEliminarani es el nombre de la variable de tipo Animator
EliminarA Ok Gracias Ey Alonso Bueno Eh Podrias Decirme que tal mi proyecto de Unity En Mi Canal Sam Mr Gamer Bueno Asi Nos Unimos Y Yo Te Doy Scripts Tal Vez Que Dices
EliminarBro que pasa si la animacion por defecto(La amarilla si no estoy equivocado) no se reproduce automaticamente
ResponderEliminaruna pregunta como hago para activar una animacion dependiendo del lugar y la tecla EJEMPLO "escalar un muro de una forma parcour cuando yo presione barra espacioadora, sin que realize el salto normal
ResponderEliminar"
debes de incluir validaciones, o colisiones para saber cuando esta en la pared y que ahí y solo ahí la barra no sea salto sino otra animación. Pero es por medio de validaciones
EliminarHola, estoy desarrollando un minijuego basado en wratch your boss, en el cual cuando el jugador interactua con determinados objetos de la pantalla se activa "x" animacion o "y" animacion. querria saber como programar esto en unity. Un saludo
ResponderEliminarAntes que nada me tocó revisar el juego para poder guiarte más o menos por donde ir, para lo cual yo considero que debes de primero realizar las zonas sensibles usando la opcion de onclick del mouse en pantalla de esa manera das clic en las zonas que deseas que sirvan de boton. Luego de eso debes de indicar que al dar clic en cada una de esas opciones se active la animación que deseas, ahora realizar animaciones en Unity de esa forma fluida es un poco compleja deberías de realizar en otro programa como cinema, maya(3d) u otro que maneje en 2d, o en otro caso hacer animaciones que exportes en video.
EliminarNo veo complejo el codigo de los botones, puesto que se basaría que cuando de clic se active animación.
Hola, he hecho lo que esta en este posto, pero no me funciona, para activar la animacion mediante una tecla, por favor ayuda!!!
ResponderEliminarQuisiera que al presionar una tecla se reproduciera la animacion de hablar o correr, se podra? ayuda por favor ....
Todavía, necesitas ayuda o ya lo has podido solucionar??
EliminarQuiero practicar con un modelo cuadrupedo, el cual ya tiene sus animaciones correspondientes pero no logro hacerlo funcionar en unity osea quiero controlarlo pero no se como seria el sctips. alguien me puede ayudar o dar una orientación?
ResponderEliminarhola buenas días gracias por este script esta bien me gustaría saber si podrías ayudarme con un script que me permita poder activar dos animaciones al presionar un botón es decir abrir y cerrar una puerta pero para android pues e buscado pero no e encontrado nada en las redes y pues quisiera saber si me puedes ayudar con esto pues e estado buscando y hasta el momento solo tengo un script que me aparezca el botón de la mano al colisionar con la puerta osea estilo granny pero el botón no activa nada pues no e podido hacer que abra y cierre la puerta le agradezco me puedan ayudar y me informen gracias pues estoy trabajando en juego que deseo poner en play store mi correo es gasuarez1@misena.edu.co
ResponderEliminarBuenos dias alguien puede ayudarme estoy atorado soy principiante en unity, mi duda es como puedo reproducir una animacion al darle clic al objeto
ResponderEliminarTengo un problema, he animado un personaje, y este no aparece en el modo jugar, solo en el modo de pruebas. AYUDA¡¡¡¡¡¡¡¡¡¡
ResponderEliminar