Mostrando las entradas con la etiqueta animacion unity con sprite. Mostrar todas las entradas
Mostrando las entradas con la etiqueta animacion unity con sprite. Mostrar todas las entradas

martes, 17 de junio de 2014

#script Activar animaciones en modo Mecanim #unity3d

Luego de haber revisado mi otra publicación con respecto a "Animación con #Sprite en #Unity o animación con secuencias de imágenes 2D" procederé a indicarte como activar las animaciones realizadas con sprite por medio de un script.



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);
}


}
}
----------------------------------------------------------------------------------------

lunes, 16 de junio de 2014

Animación con #Sprite en #Unity o animación con secuencias de imágenes 2D

Cuando deseamos elaborar un videojuego tipo 2D un factor importante es conocer el funcionamiento de los sprite en unity.
A continuación indico de forma breve como se procede con el trabajo de importación de sprite en Unity.



Antes que nada es necesario conocer que los sprite son en otras palabras secuencia de movimientos de algún objeto o personaje populares en las consolas de videojuegos como Nintendo en 1978.

Para importar una secuencia de sprite debemos de colocar el archivo PNG dentro del proyecto de unity e indicarle que esta imagen pertenece al tipo de textura de sprite.

Si vas a importar movimiento por movimiento puedes trabajar con el sprite mode single, para que sea una sola imagen pero si vas a trabajar en un solo png con una secuencia de movimientos debes de cambiar del sprite mode single a Multiple y dar clic en el botón Sprite Editor.

En mi caso he seleccionado una imagen de secuencia de movimientos de internet y la imagen posee varios movimientos. Al dar clic en Sprite Editor se habilitará una nueva ventana que te permitirá realizar el corte por slice de cada uno de los movimientos, y así te evitas tener que poner movimiento por movimiento, y unity lo hace complemente rápido por tí.

En este venta posees la opción en Slice de realizar de forma manual dibujando el recuadro en cada elemento, o usar la opción automática de unity y dar clic en slice y automáticamente unity selecciona los elementos, siempre es bueno revisar que los cortes sean los correctos. luego de haber arreglado los cortes de ser necesario procede a dar clic en "apply" y se procederán a generar la secuencia por cada imagen en la vista project.


Ahora el proceso a seguir es realizar la animación incorporando la posición inicial de la animación en la scena, y luego crear la animación en la opción "window/animation". Luego de crar la secuencia fluida de la animación procederemos a crear todas las animación que tiene el personaje.


Para adicionar al mismo personaje más animaciones puedes dar clic en el nombre de la animación en la ventana de animación, y se habilitará la opción "Crear nuevo clip".


Luego de crear todas las animaciones necesarias puedes revisar cada una de estas en la vista Animator y proceder a crear la secuencia y las validaciones respectivas para que se active cada animación en el momento necesario. Eso será materia de otra publicación.


Si deseas revisar esta publicación en video puedes verla en el siguiente link de donde yo tomé como base para realizar esta entrada. https://www.youtube.com/watch?v=Kq4MkZDlTQY

Les dejo la imagen del sprite para que pueden hacer sus pruebas.