¿Cómo utilizo agua?
¿Cómo importo modelos desde mi aplicación 3D?

Guía de buenas prácticas para assets de arte

Unity soporta modelos 3D texturizados desde una variedad de programas o fuentes. Esta guía breve ha sido hecha en conjunto por artistas de juegos junto con desarrolladores en Unity, para ayudarte a crear assets que funcionen mejor y más eficientemente en tu proyecto de Unity.

Escala y Unidades

  • Ajusta las unidades del sistema y del proyecto para que tu software funcione consistentemente con Unity, ej. Sistema métrico.
  • Trabajar a escala puede ser importante tanto para la iluminación como para la simulación de física.
  • Tener presente que, por ejemplo, el sistema de unidades por defecto en Max viene en pulgadas, mientras que en Maya está en centímetros.
  • Unity tiene diferente escalado para los FBX y para archivos de aplicaciones 3D cuando son importados; verificar la configuración de escala de importación de FBX en Inspector.
  • En caso de duda, exportar con su escena un cubo de 1 metro de lado para hacerlo coincidir en Unity.
  • Las velocidades de cuadros de animación por defecto pueden ser diferentes en cada paquete. Es buena idea fijar una velocidad con consistencia en todo el flujo de trabajo, por ejemplo 30 cuadros por segundo.

Archivos y Objetos

  • Coloque los nombres de objetos en tu escena de forma única e identificable. Esto puede ser de ayuda para localizar y hallar problemas en meshes específicos de tu proyecto.
  • Evite utilizar caracteres especiales como *()?"#$ etc.
  • Use nombres simples pero descriptivos tanto para objetos como para archivos (permitirán su posterior duplicación).
  • Mantenga las jerarquías tan simples como sea posible.
  • Con los proyectos grandes en tu aplicación de 3D, considera tener un archivo de trabajo que esté por fuera de tu directorio de trabajo de Unity. Esto hará que se ahorre tiempo consumido en actualizaciones y en importar datos no necesarios.
Los objetos nombrados en forma sensible te ayudan a encontrar las cosas más rápido
Los objetos nombrados en forma sensible te ayudan a encontrar las cosas más rápido

Meshes

  • Construye con una topología eficiente. Use polígonos solo en donde sean necesarios.
  • Optimiza tu geometría si ésta tiene demasiados polígonos. Muchos modelos de personajes necesitan ser optimizados de forma inteligente o incluso ser reconstruidos por un artista, en especial si son obtenidos/construidos a partir de:
  • Datos de captura 3D
  • Poser
  • Zbrush
  • Otros modelos Nurbs/Patch de alta densidad diseñados para render
  • En donde sea posible, los polígonos espaciados uniformemente en edificios, paisajes y arquitectura ayudarán a extender la iluminación y evitarán problemas incómodos.
  • Evite utilizar triángulos largos y estrechos.
La escalera al paraíso de la velocidad de cuadros
La escalera al paraíso de la velocidad de cuadros

El método que se utilice para construir objetos puede tener un efecto masivo sobre el número de polígonos, especialmente cuando no están optimizados. En este diagrama, la misma figura de mesh tiene 156 triángulos a la derecha y 726 a la izquierda. 726 puede que no se vea como una gran cantidad de polígonos, pero si esto es usado 40 veces en un nivel, realmente se empezarán a ver el ahorro. Una buena regla práctica es estar empezando con simpleza y añadir detalle donde sea necesario. Siempre es más fácil agregar polígonos que removerlos.

Texturas

Si las texturas son creadas con dimensiones que sean potencias de 2 (p.ej. 512x512 o 256x1024), las texturas serán más eficientes y no necesitarán ser reescaladas en tiempo de construcción. Se pueden usar máximo hasta 4096x4096 (aunque 2048x2048 es la más alta disponible en muchas tarjetas gráficas y plataformas). Busca en la red por consejos expertos sobre crear buenas texturas, pero algunos de estos lineamientos te pueden ayudar a obtener los resultados más eficientes para tu proyecto:

  • Trabaja con un archivo fuente de alta resolución por fuera de tu proyecto de Unity (tal como un archivo PSD o Gimp). Siempre podrás reducirle la resolución al archivo fuente, pero no se podrá elevar la resolución a un archivo que la tenga baja.
  • Utiliza la salida de resolución de textura que se requiera en la escena (guarda una copia p.ej. un archivo PNG optimizado de 256x256 o un TGA). Puedes decidir basándose en dónde será vista la textura y en dónde sera mapeada.
  • Almacena tus archivos de salida de texturas en tu proyecto de Unity (por ejemplo, en \Assets\textures).
  • Asegúrate que tu archivo de trabajo 3D esté referenciando a las mismas texturas, para mantener la consistencia a la hora de guardar o exportar.
  • Haz uso del espacio disponible en tu textura, pero ten presente que diferentes materiales requieren de partes diferentes de la misma textura. Puedes terminar utilizando o cargando esta textura en múltiples ocasiones.
  • Para alpha (cortes) y elementos que requieran diferentes sombreadores, separe las texturas. Por ejemplo, la textura sencilla a continuación (izquierda) ha sido remplazada por tres pequeñas texturas a continuación (derecha).
Una textura (izq.) vs tres texturas (der.)
Una textura (izq.) vs tres texturas (der.)
  • Haga uso de texturas embaldosadas (tiling textures) (que sin problemas se repiten) luego usted puede utilizar una mejor resolución que se repita en el espacio.
  • Elimina del bitmap los elementos que fácilmente se note que son repetitivos, y ten cuidado con el contraste. Si quieres agregar detalle utiliza decals y objetos para romper las repeticiones.
Embaldosar texturas ftw
Embaldosar texturas ftw
  • Unity estará a cargo de la compresión de la plataforma de salida; así que a menos que la fuente ya sea un JPG de la resolución correcta, es mejor usar para las texturas un formato que no tenga pérdida de datos.
  • Al crear una página de textura a partir de fotografías, reduce la página a secciones modulares individuales que se puedan repetir. Por ejemplo, no necesitas tener una docena de las mismas ventanas consumiendo espacio de textura. De este modo puedes tener más detalle de pixeles para esta única ventana.
¿Estás necesitando TODAS esas ventanas?
¿Estás necesitando TODAS esas ventanas?

Materiales

  • Organiza y nombra los materiales en tu escena. De este modo podrás encontrar y editar más fácilmente tus materiales en Unity cuando los hayas importado.
  • Puedes escoger crear materiales en Unity a partir de:
  • <modelname> - <material name> or
  • <nombre de textura> - asegúrate tener presente acerca de lo que quieres.
  • No todas las configuraciones para materiales en tu paquete nativo pueden ser importadas a Unity:
  • Color difuso, textura difusa y nombres son generalmente soportados
  • Configuraciones de modelo de shader, mapas especular y normal, otras texturas secundarias y material de sustancia no serán reconocidas e importadas

Importar/Exportar

Unity puede usar dos tipos de archivos: Archivos de aplicaciones 3D guardados, y formatos 3D exportados. Lo que decidas usar puede ser muy importante:

Archivos de aplicación guardados

Unity puede importar, por medio de conversión: archivos de Max, Maya, Blender, Cinema4D, Modo, Lightwave y cheetah3D, p.ej. .MAX, .MB, .MA, etc. ver más en Importar objetos.

Ventajas:

  • Procesos rápidos de iteración (guardar y actualizar en Unity)
  • Inicialización simple

Desventajas:

  • Una copia licenciada de este software debe ser instalada en todas las máquinas que utilicen el proyecto de Unity
  • Los archivos pueden volverse repletos de datos innecesarios
  • Los archivos grandes pueden volver lentas las actualizaciones de Unity
  • Menos validación, por lo que la solución de problemas puede tornarse más dura

Formatos 3D exportados

Unity puede también leer archivos FBX, OBJ, 3DS, DAE y DXF. Para una guía general de exportación, puedes consultar esta sección

Ventajas:

  • Exporta sólo los datos que necesites
  • Verifica los datos (reimportar a un paquete 3D) antes de ingresarlos a Unity
  • Archivos generalmente pequeños
  • Se fomenta un enfoque modular

Desventajas:

  • Puede ralentizar el flujo de trabajo, el prototipado y las iteraciones
  • Mayor facilidad de perder el seguimiento de las versiones entre la fuente (archivo de trabajo) y los datos de juego (FBX exportado)
¿Cómo utilizo agua?
¿Cómo importo modelos desde mi aplicación 3D?