Jump to content
UnitySpain
Dexteram

Problema exportando 3dmax a Unity

Recommended Posts

Buenas. Como comentaba en mi presentación me ha surgido un problema en mi comienzo retomando mi interés por todo esto. Antes de tener que dejarlo usaba unity 4. A día de hoy tengo 3dmax 2018 y el Unity actualizado a la última versión. He probado a hacer un árbol muy sencillo con unos pocos objetos en 3d max y he probado a exportarlo para meterlo en un proyecto de Unity. Lo exporto en .fbx porque recuerdo leer que es el formato más amigable, y por ser una prueba no toco ninguna opción y dejo todo tal cual está predefinido.

skdjufhgdgdf.PNG

Cuando lo importo a Unity me pasa lo que puede verse a la izquierda de la imagen, que echando un breve vistazo ocurre que todos los objetos por separado como que se les resetea la rotación del eje X, además de que aun teniendo las hojas del árbol rotadas sobre el eje Y de forma aleatoria, también se quedan como si se hubieran perdido la rotación del modelado 3dmax y hubieran quedado con una predefinida. Lo de la derecha es lo que queda cuando roto los subobjetos 90 grados en el eje X en vez de rotar el propio asset que engloba a los demás objetos. He probado a exportarlo varias veces y nada. He importado como .3dmax y pese a tener las medidas en metros me sale bien el árbol pero de dimensiones enoooormes. He visto que todavía no se por qué tenía puesto el Unity 4 y he probado a importar en esa versión el árbol y en esa versión me lo importa perfectamente. No se ya muy bien qué hacer y no encuentro en ningún sitio a nadie que le haya pasado esto ni me parece medio normal que pasen estas cosas sin haber tocado nada de nada. Si hay alguna forma de arreglar esto me vendría genial porque aunque estas cosas se pueden arreglar es un engorro tremendo estar recolocando todo otra vez.

Un saludo.

Share this post


Link to post
Share on other sites

Hola, revisá los ejes, en 3ds max no recuerdo como viene por default, viendo algunas imagenes (ya que no recuerdo) voy a asumir que así:

https://forums.autodesk.com/t5/image/serverpage/image-id/306122i1B2FA29228A1F6FE?v=1.0

Quizás modelaste como z Up cuando Unity tiene y Up (sacando que lo que es "up" es relativo, hablo de ver las cosas "de entrada"), otra cosa a tener en cuenta es el sistema de coordenadas, Unity y direct3D emplean Left Handed, es decir como tenés en la imagen que subiste, o si querés x pos = hacia la derecha , y pos = hacia arriba, z pos = hacia al frente , de la imagen que yo subí puedo ver que está en Right handed , es decir casi lo mismo que Left handed pero z pos = hacia atras ... digo esto porque si modelaste esos "conos low poly" mirando hacia arriba en 3ds max coincidirian con z pos, pero en tu imagen (unity) coinciden con z neg ... (fijate los ejes arriba a la derecha).

Es decir que el problema en mi opinión viene por el lado de qué es Up y el sistema de coordenadas que estás usando. Quizás viejos Unity "asumían" ciertas cosas, ahora te dan la opción .. ? revisá en las opciones de importación de Unity y/o exportacion de 3ds max.

Saludos

Share this post


Link to post
Share on other sites

Al final no se muy bien qué pensar. En efecto los ejes en ambos están de forma distinta, así que estuve mirando como cambiar el pivote. Conseguí cambiarlo pero solo en el proyecto que tenía abierto, pero no encontré como cambiar la orientación por defecto. Estuve probando a exportar con el pivote cambiado y seguía igual ya que encontré un vídeo en el que explicaba como cambiar el pivote para poder exportar de 3dmax a Unity rotándo el pivote en X e Y 90º, y nada. Descubrí que en las opciones al exportar como .fbx había una opción en un desplegable "axis conversion", que te dejaba tanto con el eje Y como con el Z. Estuve probando con ambas, con el pivote cambiado y sin cambiar haciendo y no haciendo conversión, y nada. Ya a la desesperada desinstalé todo y volví a reinstalarme el 3dmax, y ya de paso al ver que estaba el 2019 probar por si es cosa de la versión. Después de intentarlo como 10-15 veces porque me salía fatal error 1603 instalándolo, mágicamente se me pudo instalar. Y probando con la nueva versión ya no me pasa. Dejo esto escrito por si a alguien le acaba pasando esto. Gracias de todas formas por la ayuda.

Share this post


Link to post
Share on other sites

No se exactamente como se llamará la opción en MAX pero antes de exportar, deberías pasarle un borrado de historial y un freeze transformations ;D

Share this post


Link to post
Share on other sites

no se si usas modificadores en el arbol, los modificadores hay que "collapsarlos" porque no se exportan en el fbx

parece que puede ser algo de eso...

tambien te aconsejo que uses edit poli, no edit mesh, y que unas los objetos en uno solo (atach)... no hagas padres y hijos.... porque la escala del padre afecta al los objetos que tiene en el "interior" (hijos) ...tambien podria venir por ahi...

no se si el arbol tiene animacion por "bones"... pero la imagen que muestras da las sensacion de que podrian ser "huesos" mal...

lo de que los ejes sean diferentes en el max y en unity es una mierda... pero al final ya me he acostumbrado a crear los objetos en el max orientados de tal manera que salgan bien en unity

Share this post


Link to post
Share on other sites

En las opciones de exportación del FBX hay una opción de cambiar ejes, a veces aplicaciones como Unity no los utilizan en el mismo orden que Max, aunque lo normal en esos casos es que el árbol salga tumbado, pero el tuyo aparece deformado, aunque si el palo que sale de lado es el tronco, desde luego hay un problema con los ejes y es que están cambiados, es decir en el Max no están igual en las hojas que en el tronco.

Según veo hay dos partes, una parece las hojas y otra el tronco, si vas a aplicar los materiales en Unity, deja dos objetos, pero asegúrate que los ejes están en la misma posición, para que no te haga marranadas en la exportación. Si vas a hacer un UnWrap y texturizarlo, mejor déjalo todo en un objeto y si lleva modificadores también. Esto  se hace con la opción Convert to Editable Mesh, que no recuerdo ni donde está (el max y sus cientos de miles de iconos y menús), pero hazlo con una copia porque como grabes el .max, dejas la maya fija y luego tocarla es una putada.

Si no fuera algo de esto, prueba a exportar el .FBX como binario o como texto, el que no estés usando, no me preguntes porqué, pero algunas veces con uno aparecen deformidades, puntos que se van a tomar por saco y destrozan la maya, etc. y con la otra forma no.

Otra cosa que me ha pasado es que si modelo un objeto grande a tamaño muy chiquitito en max y lo escalo para exportarlo o lo escalo ya importado en Unity me hace cosas raras, aunque solo he tenido problemas en las sombras y con las físicas, nunca en la malla, pero por todos es sabido que en Unity o usas bien las escalas o te acaban dando guerra, así que si el árbol mide 6 metros, hazlo de 6 metros, porque si lo haces de 6cm y lo escalas, al menos te aseguro que tendrás problemas con las colisiones y vas a ver como los objetos pueden atravesar los arboles y no se detectan. Esto no tiene que ver con la pregunta, pero ya que ha salido al paso, lo comento.

Otra cosa que puede producir el problema es la versión, creo que lo último que leí es que Unity decía que utilizases la última versión del FBX ya que se encargan de actualizar el importador, y que si no funciona utilizases la que ellos consideraban estable, pero te hablo de hace tiempo, me suena que era con Unity 5 y que decía que la que seguro iba a funcionar era la versión, creo recordar 2015.3 o algo así, como es lógico, eso habrá cambiado, pero seguro que viene en la  documentación de la importación de modelos en Unity

Lo otro que se me ocurre es que abras el modelo con otra herramienta, Blender, por ejemplo y lo exportes, igual Max deja algo que no le gusta y Blender  no lo deja.

Y ya no se me ocurre nada más sobre por donde puedan ir los tiros, a ver si algo de esto te funciona.

Share this post


Link to post
Share on other sites

Tranquilos jejejeje como ya dije antes ya no me pasa. Lo que me da rabia es que no he sabido al final por qué pasaba. La única conclusión que he sacado es que parece que limpiando todo del 3dmax y poniéndolo de nuevo parece que ya no pasa, aunque fue terrible reinstalarlo porque no me debía de ir algo bien y tuve que pausar el antivirus, desinstalar librerías de C++, probar varias versiones... Igualmente creo que el post este viene genial para las personas que puedan tener problemas en el futuro. Me ha chocado bastante lo que me dijeron de los ejes que nunca me había fijado que el Z y el Y estaban cambiados. Y sin tocar nada, en el 3d max 2019 me lo exporta correctamente aunque me huelo que si me pusiera otra versión también me iría bien y que lo mismo es porque de trastear con las opciones de exportación debí de dejar algo mal. Ahora mismo no me atrevo a tocar ninguna opción para exportar, con ver que me exporta bien el modelo me conformo. Las texturas de las pruebas que voy haciendo se las pongo a través de Unity y así de paso voy aprendiendo a cacharrear un poco estas cosas. Muchas gracias a los que estáis dejando cosas. Estoy usando 3dmax aprovechando que tengo una licencia de estudiante de 3 años. Seguramente más adelante si sigo haciendo cosas me ponga con el Blender porque menuda pasta las licencias del 3dmax.

Share this post


Link to post
Share on other sites

×
×
  • Create New...