Jump to content
UnitySpain
Sign in to follow this  
J4v1v1g2

GUIA PARA JUEGOS CON ENTORNO 3d PARA MÓVIL

Recommended Posts

 GUÍA TUTORIAL PARA JUEGOS CON ENTORNO 3d PARA MÓVIL

Buenas gente mi nombre es Javier García, el desarrollador del juego de Bramson Case, (esperemos que próximamente en las plataformas , que ya me queda pokito^^’).
Debido un comentario que me hizo Pioj en uno de los hilos, me he animado a preparar un post para explicar algunas cosillas desde mi experiencia y punto de vista que he aprendido estos años con el proyecto que llevo entre manos.

Lo primero vamos a comentar son algunas cosas a tener en cuenta antes de empezar nuestro proyecto, ya sea tanto para móvil, como para pc, aunque en este post luego lo enfocaremos  a la preparación de juegos en 3d para las plataformas de móvil ya sea en primero o en tercera persona.  

CREACIÓN DE UN GRUPO TRABAJO.

Tenéis que tener en cuenta que aunque parezca fácil, la típica frase de..“VOY A HACER UN VIDEOJUEGO Y ME VOY A FORRAR” eso lleva una carga de trabajo impresionante que nunca se suele tener en cuenta al empezar el proyecto.
(lo digo por propia experiencia y ya veremos lo de me voy a forrar xD)
-Ilustraciones
-Texturizado
-Modelado 3d
-Guionistas
-Programación
-Betatesters
-Música
-Marquetin
-Etc.etc..

(A mi manera de ver, a no ser que sea un proyecto pequeño que puedas cumplir en un par de meses como mucho, intenta montar un grupo de trabajo, ya que en un par de meses suele comenzar la cuesta arriba y empiezan a aparecer todos los problemas que no tuviste en cuenta cuando dijiste esa mítica frase, tanto personales como a nivel del juego). 
 
Ya se que puede parecer algo pesado esta intro de post, pero lo considero bastante importante.

Y con esta pequeña presentación, vamos a ponernos con el tema.:D

---------------------------------------------------------------------------------------------------------------

Para una explicación mas sencilla vamos a separarlo en dos bloques, como he comentado anteriormente esto esta enfocado para las plataformas de móviles (concreta-mente en entornos 3d, aunque algunos conceptos también se pueden aplicar en otras plataformas).


-BLOQUE 1 (Modelado, Texturas, Iluminación, Consejos)
-BLOQUE 2 (Menús Básicos)


BLOQUE 1 (modelado, texturas, iluminación, consejos)

COSAS A TENER EN CUENTA ANTES DE COMENZAR EL MODELADO.

-No existe ninguna formula mágica para una optimización perfecta.

Como indicamos no existe ninguna forma concreta de optimizar el juego para sacar el 100 del rendimiento, en plan... si pongo las texturas en modo móvil, y pocos polígonos en el modelado, me va a ir todo fluido.(desgraciadamente eso no funciona así :7_sweat_smile:).

Unity tiene múltiples maneras que puedan ayudar a una buena optimización en el compilado, pero esas opciones de menú (que explicaremos mas abajo) son ayudas muy generalizadas, una buena optimización implica un bueno modelado desde un principio, tanto de personajes, como escenarios, acorde a lo necesitemos en cada momento.

Buen modelado + buen ajuste en los menús = todo va de puta madre :D 

Por poner un ejemplo la imagen puesto a continuación es el exterior de la  mansión Bramson donde se desarrollara el juego que llevo entre manos.
 (No solo la mansión esta completamente amueblada, si no que dentro de esta misma escena hay otra mansión de 2 plantas, también totalmente amueblada y algunos eventos especiales que también están cargadas en la misma escena, por lo que si se plantean bien las cosas desde un principio se pueden conseguir los resultados deseados.)

IMG_1_mansion.jpg

Olvidaos de detalles hiper realistas en los gráficos.

Tenemos que tener en cuenta que vamos a realiza un juego para móvil y el procesamiento y los recursos de un móvil son muy limitados comparado con un pc de sobremesa, en este caso tendremos que tener en cuenta algunos conceptos básicos al modelar.

1-MODELADO 
Intentar siempre modelar en medida de lo posible en low-poly, dándole algún detalle mas a los objetos que puedan estar mas próximos a la cámara, por ejemplo.
(Si en un decorado tenemos una montaña al fondo del escenario que nunca vamos a llegar en el juego, es una tontería detallarla con muchos polígonos y darle una textura a mucha resolución, ya que en un móvil no se va a apreciar ese tipo de cosas, pero si se apreciar en los objetos del escenario que estén  mas próximo a la cámara)

2-DETALLE DE ESCENA
Una de los trucos mas comunes es usar algo mas de detalles donde el jugador vaya a fijarse en el proceso del juego, este ejemplo es muy básico, si tenemos un folio con un punto negro en medio, el ojo humano por norma general suele enfocar la vista en el.
(En la imagen puesta a continuación se aplica la misma teoría, el personaje tiene una textura muy básica y algo menos detallada que la cara, que literalmente la cara es una fotografía, por lo que al haber algo mas detallado en ese momento, te sueles fijar mas, otra cosa es que alguien se fije en algo mas concreto como algún detalle en la ropa.. pero eso no suele ser común, a no ser que estés también en el mundillo para percatarte de esas cosas, o que lleves 2 meses buscando la típica puta  llave que te tiene atascado y ya miras hasta en debajo de las piedras).

   

Regístrate para acceder a este contenido.

3-COLLIDER
Un tema delicado, esta sección para mi bastante  importante y a tener muy en cuenta a la hora de preparar la escena en el Unity, como sabréis para los polígonos de los modelos en unity existen varias maneras de meterle los collider a los objetos, ya sea para crear alguna activación de un evento o para bloquear el paso del personaje y evitar de esta manera el clipeo.

IMG_3_colliders.jpg

Intentar usar exclusivamente los collider mas básicos, a ser posible todo cubos o planos, olvidaros de los mesh collider (ya se que es automático y mola mucho), eso al principio parece que no consume mucho recurso pero conforme vaya creciendo el proyecto, la cosa se desmadra muy rápidamente, a continuación os pongo un pequeño ejemplo de una de las salas de la mansión. 

IMG_4_ejemplo collaider.jpg

4- EXPORTAR MODELOS A UNITY (OBJETOS PRE-FABRICADOS)
Un de los errores mas comunes que suele haber a la hora de exportar, es exportar todo el conjunto creando un único prefabricado, teniendo en la escena objetos iguales como pueden ser libros, sillas, etc.  
Para poder explicar esto bien vamos a simplificarlo al máximo en un par de imágenes, ya que es algo mas complejo pero de esta manera se quedara la base mas clara.

 

Regístrate para acceder a este contenido.

-En la imagen 1 hemos creado 4 sillas  y las hemos exportado a Unity ya sea en FBX, OBJ o el formato que sea. Como podemos ver al pasarlo a Unity nos a creado 1 único prefabricado con las 4 sillas de 400 polígonos, ese calculo se queda guardado en memoria y si repite el prefabricado en algún otro sitio usara el dato en memoria.

 

Regístrate para acceder a este contenido.


-En la imagen 2 como la silla que vamos a usar es igual que las otras, la exportamos independientemente y luego copiamos el prefabricado, hemos conseguido el mismo resultado y nos hemos ahorrado el calculo de 300 polígonos.
(aunque parezcan pocos polígonos, recordar que es un juego para móvil, todo lo que podáis ahorrar en una parte, podréis meterlo en otra cosa, o pensar que si tenemos 50 sillas en todo un decorado no son 300 polígonos… 50x100 con 5000 polígonos,  comparado con 100 la cosa ya cambia bastante mas :7_sweat_smile:


5-SHADER ,TEXTURIZADOS
Bueno aquí si que hay para gustos colores, ya que hay muchísimas variedad para jugar en esta sección, simplemente me centrare en comentar mi opinión personal y ya cada uno que sopese las opciones, yo en mi caso he usado el shader standar, evitando en medida lo posible usar el shader para móvil, ya que si a malas tengo mucha perdida de fps siempre tendré la opción de pasar todas las texturas a los shader de móvil para ganar algo mas de optimización, para la resolución de las texturas he ido jugando 2048 para objetos mas detallados y cercanos, y 1024 para cosas mas de fondo.

IMG_6_shader.jpg

 

-Que  tenemos que tener mas en cuenta de un shader estándar, para un juego 3d para móvil.

IMG_7_shader.jpg

De todas las opciones que podemos ver en la imagen vamos a centrarnos en las mas importantes de mi punto de vista

ALBEDO (diffuse para algunos programas)
-Este es el color base de la textura, ya sea JPG, BMP, Etc..
(Al ser un juego para móvil intentar que sean todas las texturas en jpg no mas grandes de 2048)

METALLIC (Specular par algunos programas)
-Esta textura es el brillo que puede tener un objeto al recibir un punto de luz.
(Aquí tenéis que llevar mucho cuidado si se usa esta textura, tener en cuenta que no existe en la vida real un objeto que tenga brillo perfecto en toda su superficie, debido a la suciedad, el desgaste, o mil imperfecciones que pueda tener, por lo que el objeto necesitaría una textura para que quede bien y un punto de luz en “tiempo real” para que haga un buen efecto, por lo que es un gasto de procesamiento enorme que a veces no merece la pena meter)  

NORMAL MAP
-Esta textura lo que crea es un capa nueva encima de la textura albedo que le da relieve, dándole un detalle al modelo de low-poly haciendo que parezca que tiene muchos mas polígonos teniendo la base de low-poly.
(Aquí realmente no he hecho muchas pruebas para el juego ya que me centrado mas en otras cosas, me imagino que si es solo para darle detalles a algunos objetos en concreto no quedara mal, pero sinceramente no se lo que puede llegar coger de los recursos del móvil, pero me imagino que bastante)
IMG_8_shader.jpg


REFLECTIONS
-Como su nombre indica son los reflejos de un objeto como puede ser un espejo, el reflejo del agua, etc…
(Para un juego de móvil yo no me centraría en usarla, a no ser como siempre comento que sea algo muy… muy concreto y pequeño, no poneros ha hacer rascacielos de cristal que se reflejen entre si, que vais a poner el móvil para que se puedan freír huevos).:4_joy:


6-ILUMINACIÓN

Este para mi es el tema mas importante y el primero que se tiene que tener en cuenta para realizar nuestro proyecto, debido a que es algo complejo ya que hay menús involucrados los voy a dejar para el final, con los menús correspondientes para explicarlo lo mejor que pueda.


ALGUNOS CONSEJOS
COSAS PROHIBIDAS A TENER EN CUENTA.  
-Cosas que tenemos que intentar evitar en medida de lo posible, ya que esto para un juego de móvil hace que la cosa se pueda ralentizar de cojones… hablando en plata.

1-Texturas con canal Alpha, como la gente conocerá y si no lo comentamos, hay algunas texturas como puede ser el PSD, TIF , PNG,etc.. que contienen información para crear desde el mismo archivo una transparencia a la textura, se puede encontrar mucho en hierbas, las hojas de los árboles, etc..
Esto ayuda mucho al modelado 3d (para los juegos de pc),porque poniendo un par de planos bien colocados podemos conseguir unos buenos detalles, pero el problema es que el procesamiento en un móvil para estas texturas es muy… muy limitado y aunque para pc sea una ventaja, para móvil suele ser una desventaja y un gasto de recurso brutal.

IMG_9_alpha.jpg 
(En mi caso este es uno de los árboles, como se puede ver tiene el tronco y 8 texturas en PNG que tienen el canal alpha, pues si no me equivoco hay 8 árboles enfrente de la mansión y cada vez que se mira hacia los árboles me da una bajada importante, por lo que intento desactivarlos cada vez que puedo).
Vamos…que la primera vez que los puse entre 20 y 30 para dejarlo mas bonito, al girarme en el juego se me peto el movil por completo y creo que hasta me soltó un…Pero tu estas flipando chaval :4_joy::4_joy:.


COSAS ACONSEJABLES A TENER EN CUENTA.

1- Acostumbraros a que cuando carguéis un objeto, revisar lo que habéis exportado, ya que al exportar un objeto puede haber cosas activadas que si no me equivoco pueden darle una sobrecarga innecesaria al prefabricado.

Regístrate para acceder a este contenido.

1-MODEL
En la sección de Model ya cada uno que lo ajuste a lo que necesite.

2-RIG
Aquí por el momento lo dejare para otro post si la gente lo ve bien ya que esto hay que explicarlo desde el programa 3d también.

3-ANIMATION
Si el modelo no contiene animaciones esto desactivado.

4-MATERIAL
Aquí hay algunos formatos que exportan las textura y se la aplican al modelo directamente, a mi me gusta desactivar esto y poner yo la textura en el Unity, pero eso ya son manías mías, me imagino que si esta bien configurado no importa mucho.


DESACTIVAR LOS OBJETOS QUE NO SE VEAN EN CÁMARA.
-Aquí simplemente comentar un par de detalles, cuando preparéis el inicio del juego intentar desactivar todos los objetos que no se vayan a usar nada mas empezar, ya que todos los objetos desactivados no cargan sus scripts, por lo que nos ahorramos bastante procesamiento de primeras, y ya cuando los vayáis necesitando los vais activando poco a poco.
(Yo en la escena solo dejo el charácter controller y seguido un script de precarga que me activa la zona de inicio, todo lo demás esta desactivado de primeras).

SCRIPTS (UPDATE & START)
Intentar no usar muchos scripts que tengan codigo dentro del void Update y optimizar la sección de void Start todo lo que podáis.
(Aunque parezca que no hace nada, todos las secciones de “ void Update y void Start “ que suelen salir de base en los scripts, si van a estar vacíos, los borráis por completo, porque aunque no tengas nada dentro si están en el script, ya se gasta un mínimo de recurso en checkearlo y si no están nos ahorramos ese chekeo, sobretodo el update.

Y ya con esto pasamos al bloque 2, este bloque es mucho mas cortito que ya se me esta haciendo muy largo esto y no quiero extenderlo mucho mas ^^’

-BLOQUE 2 (Menus Basicos)


Hay varios menús básicos que tenéis que revisar para ir aprendiendo a gestionarlos y mejorar la optimización del juego, por el momento comentare lo mas básico de cada uno, pero estos menús hay que aprendérselos bien para poder jugar con lo comentado anteriormente.

Buen modelado + buen ajuste en los menús = todo va de puta madre :D

(Tener en cuenta que estas opciones, son opciones generales y afectan a todo el juego cuando se compila, es como si fuera un limite, si tenemos una luz con una sombra super ultra realista, y en este menú ponemos que las sombras son super ultra low, se pasara a los parámetros super ultra low del menú al compilarlo). 

 


-MENU DE QUIALITY
En este menú se controla y se configura que calidad y que modos dispondrá el juego. Por ejemplo:
PC :         BAJA, MEDIA, ALTA, UTRA.
IOS :         BAJA, MEDIA.
ANDROID :     BAJA, MEDIA,
(y en cada opción su configuración claro esta)

Regístrate para acceder a este contenido.

(para juego de móviles, la opción de “ V Sync Count “  es el demonio en persona, eso es lo primero que tenéis que quitar).:4_joy:


-MENU DE GRAPHICS
 
Este es otro menú a echarle un ojo también, poco a poco tendréis que ir aprendiendo a gestionarlo para sacarle punta en las compilaciones para móvil. 
 

Regístrate para acceder a este contenido.

-MENU OCCLUSION 

Este menú es para acelerar el procesamiento de la cámara, prácticamente lo que hace es desactivar (las caras de los polígonos, collider,etc..) que están fuera de la visión de la cámara, ayudando al procesamiento del escenario.

 

Regístrate para acceder a este contenido.


-LIGHTING y MENU LIGHTING

Y por fin llegamos a la ultima parte, que me la he dejado para el final porque la considero de las mas importantes.

Este menú controla las luces generales de la escena.


 

Regístrate para acceder a este contenido.

-Environment
Propiedades de entorno.
(En este menú se controla una iluminación global que afecta a toda la escena, dándole  el tono que necesitemos a todo el decorado)
 en mi caso suelo darle un color base y ya voy jugando con los shadowmask.
(shadowmask se explicara mas abajo)

-Realtime lighting
Iluminación que se aplica en general a toda la escena como bien pone en tiempo real.
(esto en medida de lo posible intentar no usarlo, se puede conseguir casi los mismos resultados jugando un poco con los puntos de luz)

-Mixed Lighting
Calculo de las luces en modo bake.
(Bueno… esta es la opción mas a tener en cuenta para conseguir una buena optimización y buenos resultados de iluminación para nuestra escena, muy… pero que muy importante, aprender a configurar esta parte del menú)

 19_menu_shadowmask.jpg
De las tres opciones me enfocare exclusivamente en el shadowmask que es el que mejor resultado nos puede dar.


Lo primero que tenemos que conocer a la hora de iluminar nuestro decorado, es que lo que mas recurso puede llegar a consumir en un entorno 3d es la iluminación, por lo que un exceso de puntos de luz sobrecargaría todo el procesamiento, ya sea por el radio de la luz en si, como por las sombras que puede llegar a generar. 
Debido a esto toda la iluminación en Unity tiene 2 opciones.
 

17_luz.jpg


-Realtime
(como bien indica, es una iluminación en tiempo real del punto de luz, con todo lo que eso con lleva). 

-Bake
(El bake es la opción de decirle a Unity que genere una textura que se aplicara a todos los objetos que interactuan con dicha luz, creando en la textura todas las sombras que se supone que tendría general el punto de luz, de esta manera se ahora el procesamiento en tiempo real, acelerando bastante el procesamiento del decorado).

Esto es un pequeño ejemplo de la sombra de una farola en modo bake (Shadowmask)
 

18_shadowmask.jpg


También comentar que esto tiene sus pro y sus contra.


-Pro: Ayuda en el procesamiento del calculo de iluminación de los punto de luz.

-Contra: Lo malo que tiene el bake, es que solo se puede aplicar a objetos estáticos.

16_static.jpg

(Aunque como siempre digo, todo es cuestión de saber jugar con los menús, vamos a poner el ejemplo del típico juego de terror en una casa con una linterna).

-Iluminación Environment : luz azulada muy oscura para dejar intuir el escenario (MODO BAKE)

-Iluminación decorado : algunos puntos de luz con sus sombras en algunas lámparas, el  televisor, etc, etc..(MODO BAKE) 
 
-Iluminación de linterna : le damos un punto de luz que no tenga mucho radio y las sombras en calidad media, para ir iluminando por donde vaya mirando el personaje (MODO REALTIME)


Lightmapping Setting
Esto son las propiedades textura que crea el modo bake.
(Importante saber gestionar este menú  para darle la calidad que queremos a los shadowmask).

-Other Setting
Como bien indica el menú, niebla y los halos.

--------------------------------------------------------------------------------------------------------------------------------------------------

 

-Bueno señores, por el momento con esto ya se despide un servidor, espero que no se haya echo muy pesado el post, porque creo que me he emocionado un poco de mas y no soy de escribir mucho xD.

Si lo veis bien, lo iremos puliendo con el tiempo, agregando y organizando poco a poco las secciones que falten por explicar, para que podamos tener un buen post de ayuda para la comunidad sobre este tipo dudas.

 

Regístrate para acceder a este contenido.

Edited by J4v1v1g2

Share this post


Link to post
Share on other sites

Gran aporte!!!!! He empezado a leermelo y he parado para darte las gracias, se merece que lo lea con calma. 

Share this post


Link to post
Share on other sites

La verdad es que se agradecen los comentarios mas de lo que imaginaba:7_sweat_smile:, debido a que estoy preparando ya el marquetin del Bramson case no tengo mucho tiempo, pero intentare sacar algo e tiempo para pulir un poco mas el post y preparar uno nuevo para el tema de las exportaciones de las animaciones a unity explicando los pros y los contras entre usar el Animator y el Animation :11_blush:.

Y ya para cuando saque el juego pondré mi granito de arena creando una sección exclusiva si lo veis bien sobre los juegos de VR.

Edited by J4v1v1g2

Share this post


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

×
×
  • Create New...