Version: 5.4
Componentes Mesh
Material

Meshes

Los Meshes hacen gran parte de sus mundos 3D. Además de algunos plugins de la a Asset store, Unity no incluye herramientas de modelado. Unity sin embargo tiene una gran interactividad con la mayoría de los paquetes 3D de modelado. Unity soporta meshes de tipo polígono triangulated o Quadrangulated. Nurbs, Nurms, y las superficies Subdiv necesitan ser convertidas a polígonos.

Formatos 3D

Importar mallas a Unity se puede lograr mediante dos tipos de archivos principales:

  1. Formatos de archivo 3D exportados, como: .FBX u .OBJ
  2. Archivos propios de aplicaciones 3D como formatos .Max y .Blend, de 3D Studio Max o Blender por ejemplo.

Cualquiera de estos tipos de archivos deberían dejar importar sus mallas a Unity, pero, existen algunas consideraciones a tener en cuenta de acuerdo al tipo que se elija:

Archivos 3D exportados

Unity puede leer archivos .FBX, .dae (Collada), .3DS, .dxf y .obj, los exportadores FBX se pueden encontrar aquí y exportadores obj o Collada se pueden encontrar en muchas aplicaciones.

Ventajas:

  • Solo se exportan los datos que se necesitan
  • Los datos son verificables (se re-importa en el paquete 3D antes que en Unity)
  • Generalmente son archivos más pequeños
  • Fomenta un enfoque modular - p. ej. diferentes componentes para tipos de colisión o interactividad.
  • Soporta otros paquetes 3D para cuyo formato propietario no tenemos soporte directo

Desventajas:

  • Puede ser un flujo de trabajo más lento para la creación de prototipos e iteraciones
  • Es más fácil perder la pista de las versiones entre la fuente (archivo de trabajo) y los datos del juego (un FBX exportado por ejemplo)

Archivos propietarios de aplicaciones 3D

Unity también puede importar, mediante conversión archivos : Max, Maya,Blender, Cinema4D, Modo, Lightwave & Cheetah3D, e.g .Max, .MB, .MA etc.

Ventajas:

  • Proceso rápido de iteración (al guardar el archivo fuente, Unity re-importa automáticamente)
  • Simple de usar al principio

Desventajas:

  • Una copia licenciada del software debe estar instalada en todas las máquinas que usan el proyecto de Unity
  • Los archivos pueden llenarse de datos innecesarios
  • Los archivos grandes pueden ralentizar las actualizaciones de Unity
  • Menos validación, por lo tanto es más difícil solucionar problemas

Aquí hay algunas pautas para aplicaciones 3D que son compatibles directamente, otras pueden exportar más a menudo el tipo de archivo que aparece arriba.

Texturas

Unity intentará encontrar las texturas utilizadas por un mesh automáticamente en importación al seguir un plan de búsqueda específico. Primero, el importador va a buscar por una sub-carpeta llamada Textures dentro de la misma carpeta que el mesh o en cualquier carpeta padre. Si esto falla, una búsqueda exhaustiva de todas las texturas en el proyecto se llevará acabo. Aunque mucho más lento, la des-ventaja principal de la búsqueda exhaustiva es que puede haber dos o más texturas en el proyecto con el mismo nombre. En este caso, no se garantiza que la correcta sea encontrada.

Coloque sus texturas en una carpeta Textures en el nivel superior o igual del asset
Coloque sus texturas en una carpeta Textures en el nivel superior o igual del asset

Las opciones del importador FBX

Generación del material y asignación

Para cada material importado, Unity va a aplicar las siguientes reglas:-

Si la generación del material es des-activada (i.e. Import Materiales está sin marcar), entonces se asignará el material Default-Diffuse. Si está habilitado, entonces hará lo siguiente:

  • Unity va a coger un nombre para el material de Unity basado en los ajustes del Material Naming.
  • Unity va a intentar encontrar un material existente con ese nombre. El alcance de la búsqueda del material se define por los ajustes del Material Search.
  • Si Unity es exitoso encontrar un material existente entonces será utilizado para la escena importada, de lo contrario genera un nuevo material

Colliders

Unity utiliza dos tipos principales de colliders: Mesh Colliders y Primitive Colliders. Los Mesh Colliders son componentes que utilizan los datos importados del mesh y pueden ser utilizados para colisiones con el ambiente. Cuando usted habilite Generate Colliders en los Import Settings (Ajustes de Importación), un Mesh Collider se agrega automáticamente cuando el mesh es agregado a la escena. Este se considerará como sólido en cuanto al sistema de física se refiere.

Si usted está moviendo el objeto alrededor (por ejemplo un carro), usted no puede utilizar Mesh Colliders. En vez, este tendrá que utilizar Colliders Primitivos. En este caso usted debería desactivar el ajustes Generate Colliders.

Animaciones

Las animaciones son automáticamente importadas de la escena. Para más detalles acerca de las opciones de importación ver la sección acerca de preparación de asset e importación en el sistema de animación de Mecanim.

Normal mapping y personajes

Si usted tiene un personaje con un normal map que fue generado de una versión de muchos polígonos del modelo, usted debe importar la versión de la calidad de juego con un Smoothing angle de 180 grados. Esto evitará las costuras (seams) de aspecto extraño en la iluminación debido a la división de la tangente. Si las costuras todavía están presentes con estos ajustes, habilite Split tangents across UV seams.

Si usted está convirtiendo una imagen greyscale a normal map, usted no se necesita preocupar por esto.

Blendshapes

Unity tiene soporte para BlendShapes (también llamado morph-targets o vertex level animation). Unity puede importar BlendShapes de .FBX (Blendshapes y animaciones que controlen) y .dae (solamente BlendShapes) archivos 3D exportados. Los Unity BlendShapes soportan vertex level animation en vértices, normales y tangentes. El Mesh puede ser afectado por skin y BlendShapes al mismo tiempo. Todos los meshes importados con BlendShapes utilizarán SkinnedMeshRenderer (sin importar si tiene skin o no). La animación BlendShape es importada como parte de una animación regular - simplemente anima los pesos BlendShape en SkinnedMeshRenderer.

Hay dos maneras de importar BlendShapes con normales:

  1. Configure el modo de importación Normals a Calculate, de esta manera la misma lógica será utilizada para calcular normales en un mesh y BlendShapes.
  2. Exporte la información de los smoothing groups al archivo fuente. De esta manera, Unity va a calcular normales de los smoothing groups para mesh y BlendShapes.

Si usted quiere tangentes en su BlendShapes entonces configure el modo de importación Tangents a Calculate.

Consejos

  • Fusione sus meshes tan juntos como se puedan. Asegúrese de que compartan materiales y texturas. Esto tiene un beneficio enorme en rendimiento.
  • Si usted necesita configurar su objetos aún más en Unity (agregando física, scripts u otras cosas cheveres), ahorre un mundo de dolor y nombre sus objetos adecuadamente en su aplicación 3D. Trabajando con muchos objetos pCube17 o Box42 no es divertido.
  • Asegúrese de que sus meshes estén centrados en el origen del mundo en su aplicación 3D. Esto hará que sean más fáciles de colocar en Unity.
  • Si un mesh no tiene vertex colors, Unity agregará automáticamente un arreglo de todos los colores blanco vertex al mesh la primera vez que sea renderizado.

El Editor de Unity muestra muchos vértices o triángulos (comparado a lo que dice mi app 3D)

Esto es correcto. Lo que usted está viendo es la cantidad de vértices/triángulos que en realidad están siendo enviados al GPU para que sean renderizados. Adicionalmente al caso dónde el material requiere que estos sean enviados dos veces, otras cosas como normales duras y UVs no contiguas aumentan la cuenta de vertex/triangle de manera significativa comparado a lo que una app de modelo le dice a usted. Los triángulos necesitan ser contiguos en ambos espacios 3D y UV para formar una tira, para cuando usted tenga UV seams, los triángulos degenerados tiene que crearse para formar tiras - esto aumenta la cuenta.

Componentes Mesh
Material