Polygonal Mind
  • Home
  • Metaverse Builder
  • CryptoAvatars
  • MegaCube
  • Blog
  • Decentraland
  • Projects
  • Assets

Blog

Clavos, arandelas y un poco de cinta aislante. Escenarios bonitos en una plataforma con bajos requisitos

3/24/2020

0 Comments

 
English
La Misión

Todos queremos buenos resultados en nuestras tareas diarias creando escenarios impresionantes y experiencias rejugables (o no) para un rango de audiencia determinado. Este artículo continene unos cuantos consejos y secretillos cuando necesitamos trabajar con limites técnicos muy justos que están fuera de nuestro control, y debemos trabajar con ellos en vez de darnos de bruces.
Recursos

  • MayaLT 2018+
  • Unity 2018+
  • DCL Unity Plugin (externo)
  • Decentraland
  • Photoshop CC (software de edición fotográfica)
Picture
#01 Primeros pasos: entendiendo tu plataforma, Decentraland

Cuando se desarrolla para una plataforma en específico, se tiene la ventaja de saber qué puedes y no puedes hacer. De esa forma tienes una idea como para empezar a pensar qué te permitirá hacer el motor de forma rápida y empezar a pensar en trucos para solucionar los problemas que saldrán al empezar la producción.

Decentraland (DCL desde ahora) es una plataforma que intenta crear un mundo digital 3D cuyos propietarios son los propios usuario, sólamente limitado por (aparentemente) unas pocas limitaciones técnicas y que se apoya en la tecnología del blockchain. Debo añadir que el motor de la plataforma está todavía en desarrollo y puede cambiar conforme se acerque la fecha del lanzamiento final. Aunque esta documentación es escasa cuando se trata de explicar cómo trabajar con escenarios 3D y no queda claro cómo funciona el motor, los artistas puedes intuir cómo sus creaciones se comportarán sabiendo que Decentraland usa Unity como base.

Su guía de "publishing-tech-constrains" está ahí para tenerla en cuenta, >>Link<<, pero hay algo que Unity adora cuando renderizas tu escena: déjala lo más simplificada que puedas y reduce el número de drawcalls al mínimo.

No entres en pánico si tu escena tiene una cantidad enorme de drawcalls, DCL renderizará tu escena haciéndolo de la mejor forma posible para el motor y reducirá el tiempo que tu creación está en pantalla.

Estos son los puntos más importantes de DCL:
​
  • Todos los hijos de una malla serán comprimidos en una sola malla (el padre), si la malla tiene que interactuar con el jugador, deberías sacarla de la jerarquía y ponerla en el root.
    • En Unity el mejor escenario es hacer un solo material para prevenir varios drawcalls, pero no está claro si esto afecta DCL de la misma forma.
 
  • Para crear colliders, necesitas crear otra mesh con el sufijo "_collider" para indicarle a DCL que esa mesh funcionará como un mesh colliders y no debería ser visible.
 
  • Dentro de Unity, el plugin de exportación detectará la instanciación de materiales como materiales independientes, pero durante la exportación este "problemilla" se arreglará. Tienes que llevar un conteo manual del numero de materiales que estás usando.
 
  • Unity funciona con el eje X invertido, y esto es un problema enorme al principio porque al exportar el modelo invertirá el modelo y causará que tus modelos se salgan de los límites de tu parcela (o se deformarán). Este problema se soluciona rotando el modelo 180º en el eje Y en el editor de Unity. Las transforms se resetean una vez exportes (y así se verán en Decentraland de la misma forma que se ve en Unity).
 
  • DCL usa un "Ambient Light" mezclada con la skybox básica de Unity que ilumina un poquito más tu escena, tenlo en cuenta cuando estés creando la paleta de colores o planeando tus texturas: los tonos claros brillarán mucho.
​
  • Aunque acepta el workflow PBR y el Standard Material de Unity, no aprovecha todo su potencial, haciendo que sea difícil conseguir buenos resultados sin aplicar canales de texturas o ser capaz de modificar los shaders para ahorrar el número de uso de texturas.
    • Los Emisivos son una buena forma de mejorar tus creaciones, el renderer de DCL tiene un efecto de postprocesado de bloom.
DCL no funciona con extensiones de archivo comunes (.fbx, .obj, ...) y en su lugar utiliza la extensión .gltf donde todos los datos están guardados y comprimidos para que el motor lo coloque en la escena.
Documentación oficial de DCL para este problema:
https://docs.decentraland.org/3d-modeling/3d-models/
https://docs.decentraland.org/3d-modeling/meshes/
https://docs.decentraland.org/3d-modeling/materials/
#02 Diluyendo los límites de DCL, atlas packing

A privera vista puede parecer que DCL sea bastante restrictivo con la cantidad y tamaño de texturas permitidas, pero con reutilización, reconversión y un poquito de creatividad puedes lograr resultados geniales a la vez que reduces el uso de texturas.
​
Por ejemplo, en esta terrorífica torre compuesta por una cantidad elevada de triángulos hemos usado solo 2 texturas para todo el modelo, consiguiendo buenos resultados.
Torre sur en Decentraland
La torre terrorífica como estaba el día 27 de diciembre de 2019. La Base de la torre estaba todavía en desarrollo.
Torre Sur en Decentraland
Torre Sur en Decentraland
La clave en este tipo de proyectos es trabajar con un Atlas y reusar texturas tileables. Incluso texturas pequeñas pueden tener un gran impacto en tu escena.
Una textura de Atlas fue diseñada para todo el "suelo" y el barro, como las escaleras y el jardín. La otra textura fue diseñada para todos los elementos de las casas. Es importante mantener las texturas tan neutrales como sea posible para que no se noten tanto las repeticiones al reusarlas.
Textura de 512px para Decentraland
Los edificios (512px x 512px)
Este es el Atlas hecho con texturas neutrales cuyo propósito es ser reusadas constantemente en el entorno.
Textura de 512px para Decentraland
Los suelos (512px x 512px)
Esta es tileable, fácilmente reusable y que permite las repeticiones
En muchos casos, puedes cortar y poner las UVs de forma creativa para usar sólamente una textura y texturizar todo un edificio.
Textura con UVs para Decentraland
Las UVs de las paredes interiores están desplegadas de una forma que hace que las paredes parezcan que tengan dos colores, y lo mismo pasa con otras partes de la casa: siguen tileandose y repitiéndose sin notarse los cortes. Cabe destacar que todas las piezas usan esta textura, creando coherencia entre habitaciones sin que haya mucha repetición.
Casa con unica textura de 512
Esto está hecho con una única textura de 512x512 px!
Además, tener en cuenta la proyección de geometría en un espacio de UVs reducido puede dar resultados válidos como cualquier otra ténica. Los texels deben tenerse en cuenta, así que piensa en darle un espacio más grande a las UVs a las zonas que se van a ver más de cerca que a las que el jugador no va a poder ver.
UVs texturas para casa de Decentraland
La parte de arriba del tejado no se puede ver desde un punto de vista normal, así que usa un mínimo de espacio para sus UVs, simplemente con un color parecido al de los alrededores.
UVs colocadas en la textura
Sus UVs están localizadas abajo a la izquierda bajo la barandilla de piedra
El edificio por supuesto comparte materiales con otros props del escenario, como metal, oro e incluso roca, que están compartidos de forma no exclusiva por todo un área del entorno.
Unity materiales de roca, oro, metal
#03 VFX para una plataforma que no soporta VFX

Los efectos visuales son un dolor de muelas, un problema y a veces difícil de solucionar, muchas veces ni siquiera se utilizan mientras se desarrolla porque el motor no los soporta. Incluso un poquito de Ambient Occlusion o Bloom pueden matar tus fps en una plataforma de bajos requisitos (e incluso en una de altos requisitos) y DCL no soporta ninguno de esos efectos de post-procesado (excepto el Bloom) así que aquí es cuando hay que ponerse el sombrero de pensar y encontrarse con algunas soluciones creativas para simular Luz Volumétrica, oclusión ambiental y bloom.

Por suerte, DCL permitió hace poco utilizar el canal Emisivo en el Standard Shader y con esta característica introdujeron el efecto de bloom en el postprocesado. El bloom es controlado por la Intensidad del valor en el canal emisivo: cuanto más alto sea ese valor de Intensidad, el bloom se hace más grande y más brillante.
​
Para el resto de efectos de post-procesado tendremos que hacer un par de triquiñuelas fáciles. Creamos un set de materiales que utilizamos para ayudarnos a darle un toque bonito a nuestro escenario.
Unity set de materiales
Cada fade fue hecho con un propósito muy específico, pero todos usan la misma textura.
Por ejemplo, en el entorno decidimos poner un poco de AO en las esquinas de un edificio blanco porque la luz excesiva de Decentraland mataba cualquier perspectiva o sensación de oclusión ambiental natural.
Oclusión de ambiente en las esquinas
El Ambient Occlussion está construído con geometría flotante a ambos lados de la esquina.
Oclusión de ambiente en las esquinas
Otro logro que conseguimos con este escenario era la falsa luz volumétrica, renderizándola suavemente pero dándole a la habitación el "feeling" que estábamos buscando. En este caso usamos el bloom emisivo mezclado con material semitransparente.
​
Como puedes ver, el efecto casi ni se nota pero se aprecia en el contexto gráfico y la composición. El bloom puede ser una espada de doble filo, dándote la oportundiad de mejorar tu composición y hacer algo precioso o básicamente arruinarla completamente.
Falsa luz volumétrica en Decentraland
Falsa luz volumétrica en Decentraland
#04 Pensando de manera creativa

La única forma de lograr resultados mejor de los esperados es entender las bases de lo que estás haciendo.

​Hacer click a una secuencia de botones de una interfaz de usuario para conseguir resultados esperados solo hace que te des de bruces con una pared. Saber qué es lo que está pasando entre bambalinas te permite encontrar soluciones creativas cuando problemas técnicos y bugs visuales aparezcan, porque sabrás lo que son.

Hay algo genial sobre trabajar con límites técnicos, y es que te obliga a crear assets que tengan múltiples propósitos. Haz de una roca un ladrillo, y de un ladrillo una puerta, la puerta ahora es una ventana, y luego una viga rota en el techo. Creo que se ve por dónde voy.

Hacer una composición de un escenario completo con una textura de 512x512 px es difícil, pero no necesitas una textura de alta resolución o teselación para obtener buenos resultados. Al final la composición y la coherencia visual es lo que define un buen escenario. Hay un montón de juegos preciosos de todos los géneros y direcciones artísticas porque se apoyan en coherencia visual y un entendimiento de los límites técnicos muy profundo, y cómo superarlos para adaptar las ideas del proyecto para la plataforma.

Aunque el post esté orientado a una producción de un entorno en la plataforma de Decentraland, todos estos tips pueden ser utilizados para desarrollar para móvil u otras plataformas que hace que los artistas lo pasemos mal con los límites para alcanzar nuestras metas visuales.

Hasta la próxima, au revoir!

Picture
Kourtin
ARTISTA DE ENTORNOS
I purr when you're not looking. I'm passionate about environments and all the techie stuff to make them look rad. Learning and improving everyday to be a better hooman.
Twitter
0 Comments



Leave a Reply.

    Categories

    All
    Blender
    CryptoAvatars
    Decentraland
    Decentraland En Español
    Maya
    Metaverse
    Mixamo
    Morphite
    Substance Painter
    The Sandbox
    Totally Reliable Delivery Service
    Unity 3D
    Updates
    Vrchat

    Archives

    March 2022
    July 2021
    June 2021
    May 2021
    April 2021
    March 2021
    February 2021
    January 2021
    December 2020
    October 2020
    August 2020
    July 2020
    June 2020
    May 2020
    April 2020
    March 2020
    February 2020
    December 2019
    October 2019
    September 2019
    August 2019
    June 2019
    May 2019
    February 2019
    January 2019
    December 2018
    November 2018
    October 2018
    September 2016

    Picture
Home
Projects
Assets

Picture
Crypto
Friendly
Picture

Subscribe to get some 💚 in your inbox once in a while.

Follow us and your visit will never be forgotten!
Picture
Picture
Picture

 © 2015-2022 POLYGONAL MIND LTD. ALL RIGHTS RESERVED.
  • Home
  • Metaverse Builder
  • CryptoAvatars
  • MegaCube
  • Blog
  • Decentraland
  • Projects
  • Assets