Version: 2017.3
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.

3D formats

Unity supports importing Meshes from two different types of files:

  1. Exported 3D file formats, such as .fbx or .obj. You can export files from 3D modeling software in generic formats that can be imported and edited by a wide variety of different software.
  2. Proprietary 3D or DCC (Digital Content Creation) application files, such as .max and .blend file formats from 3D Studio Max or Blender, for example. You can only edit proprietary files in the software that created them. Proprietary files are generally not directly editable by other software without first being converted and imported. An exception to this is SketchUp .skp files, which both by SketchUp and Unity can read.

Unity can import and use both types of files, and each come with their own advantages and disadvantages.

Archivos 3D exportados

Unity can read .fbx, .dae (Collada), .3ds, .dxf, .obj, and .skp files. Refer to your 3D modeling software documentation for information about exporting 3D files.

Ventajas:

  • Instead of importing the whole model into Unity, you can import only the parts of the model you need.
  • Exported generic files are often smaller than the proprietary equivalent.
  • Using exported generic files encourages a modular approach (for example, using different components for collision types or interactivity).
  • You can import these files from software that Unity does not directly support.
  • Exported 3D files (.fbx, .obj) can be reimported into 3D modeling software after exporting, to ensure that all of the information has been exported correctly.

Desventajas:

  • Models must be re-exported manually if changes are made to the original file.
  • Extra care must be taken to keep track of versions between the source file and the files imported into Unity.

Archivos propietarios de aplicaciones 3D

Unity can import proprietary files from the following DCC software: Max, Maya, Blender, Cinema4D, Modo, Lightwave & Cheetah3D. Files imported this way are converted into .fbx files by Unity during the import process.

Ventajas:

  • Updates made to the original model are automatically imported into Unity.
  • This is initially simple - but it can become more complex later in development.

Desventajas:

  • A licensed copy of the software used must be installed on all machines using the Unity project.
  • Software versions should be the same on each machine using the Unity project. Using a different software version can cause errors or unexpected behavior when importing 3D models.
  • Files can become bloated with unnecessary data.
  • Big files can slow down Unity project imports or Asset re-imports, because you have to run the DCC software you use as a background process when you import the model into Unity.
  • Unity exports proprietary files to .fbx internally, during the import process. This makes it difficult to verify the .fbx data and troubleshoot problems.

Note: Assets saved as .ma, .mb, .max, .c4d, or .blend files fail to import unless you have the corresponding DCC software installed in your computer. This means that everybody working on your Unity project must have the correct software installed. For example, if you use Maya to create ExampleModel.mb and copy it into your project, anyone else opening that project also needs to have Maya installed on their computer.

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