Saltar al contenido principal

Guía Sprites animados publico estadio MiniGame

Descripción General

Se explicará la metodología y flujo de trabajo utilizado para esta parte del proyecto, ademas se puede usar la misma solución para algún otro proyecto en el cual tengamos ambientación con muchos Sprites animados, logrando mejorar el rendimiento y logrando que los "Sprites" reciban iluminación.

Alcances

Hacer sprites animados

Proceso de Desarrollo

Lo primero que se hizo fue conseguir modelos ya existentes que estuvieran texturizados y mantuvieran un estilo visual similar.

Tras esto fueron introducidos en Mixamo y se buscaron animaciones en Mixamo "celebrating" "Yelling", y se se descargaron las animaciones que cumplían con los requisitos  solicitados.

Una vez regresamos a Maya, acomodamos al keyframe que queremos y presionamos el render view

 Allí en necesario asegurarnos con cual motor de renderizado se utilizará, en este caso fue el Maya Hardware 2.0, luego presionamos *Render the current frame,*el botón de más a la izquierda. Lo que sucede es que te renderiza toda la información que tengas en pantalla, incluyendo texturas e iluminación.

Luego nos vamos a *File→Save image,*escogemos la opción 2 del save mode, ajustamos el formato como png y exportamos.

Luego solo se cambia el frame del personaje y se repite el mismo proceso.

, Una vez estuvieron todos los frames, estos se metieron en photoshop para hacer variaciones en sus colores, cada frame era necesario seleccionarlo con selección→Gama de colores, al tenerlos seleccionados, Ctrl+U para cambiar la saturación y el tono para poder tener colores más vivos y mayor variedad.

Una vez los frames listos, era necesario evitar que se aumentaran mucho los batches en Unity, para eso en Maya se creó un plano con las proporciones aproximadas de los modelos puestos uno junto al otro, se le hizo un planar para sacar los UV´s, estos fueron exportados como UV Snapshot. En photoshop los sprites se acomodaron en hileras de combinaciones posibles y se ajustaron uno junto a otro.

Estos se sacaron cómo png para poder ajustarlo en otro archivo de photoshop donde utilizamos el UV snapshot

 se crearon 2 para tener las combinaciones posibles, al ser solo dos materiales, se terminaron de acomodar los objetos en el escenario.

Para volverlo un solo objeto, se seleccionaron utilizando el hypershade, click sobre el material y seleccionar objetos. Por algún motivo no me dejaba unir las piezas, así que lo que tuve que hacer fue exportar las selecciones cómo fbx, unirlo y borrar historia en otra escena.

Una vez listos los dos objetos, se metieron en Unity donde se creó un código que hacía cambiar la textura principal a un material cada cierto tiempo con una corrutina utilizando un array con los frames.

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class CrowdAnimation : MonoBehaviour {

[Header("CONFIGURACION")] public float Frecuencia;

[Header("REFERENCIAS A PROYECTO")] public Material MaterialPrincipal; public Texture[] texturas;

// Start is called before the first frame update void Start() { StartCoroutine(corrutina_Animacion()); }

IEnumerator corrutina_Animacion() { int i = 0;

while (true) {

MaterialPrincipal.mainTexture = texturas[i]; i++;

yield return new WaitForSeconds(Frecuencia);

if (i >= texturas.Length) i = 0; }

}

}

Ventajas

Hacer sprites animados de bajo rendimiento y rápido

Desventajas

Se depende de assets externos para que sea rápido

Elaboró

Ariel Castillero