UNREAL - Problemas e Dúvidas ao importar Arquivos do Max2018

Por: Alexandre Longo  

Em: 09/09/2018 21:35

Boa Noite Pessoal...

Estou estudando UE4, usando youtube, e outras fontes de estudos disponíveis na internet.
Quero entender como expotar arquivos do MAX, para a UE4, sem uso do DataSmith, não quero ficar refem dele, mesmo pq entendo que entender bem esta importação, me deixa livre para Exportar o que eu quiser, sem enfrentar problemas no final do projeto.

Entendo que a parte principal para se ter um bom resultado, é trabalhar corretamente a malha no 3DS Max, deletando faces qua não vão aparecer, arrumando bem as faces do unwrmap, e etc. Estou careca de ver tutoriais na internet explicando a mesma coisa. Pois bem, decidi começar finalmente a exportar minha primeira cena, baseado em estudos de vários tutoriais, até criei uma lista de procedimento... porem enfrentei vários problemas que nao surge em nenhum tutorial.

Segue em ordem todo meu procedimento, para tentar diminuir a maior quantidade de dúvidas, que por ventura alguem possa ter, antes de me dizer onde errei... Vou focar somente nas paredes da minha cena arquitetônica em questão.

Seguem elas em ordem, acredito que servirá de ajuda para várias pessoas que vão tentar iniciar uma cena arquitetônica na UE4.... Espero que alguem possa me responder estas questões:

1. Deixei todas as paredes com nomes corretos para facilitar meu trabalho dentro da MAX, e na UE4, utilizando a nomeclatura sugerida pela Epic Games.

2. Estou trabalhando com a cena em centímetros, como mostro na imagem do item 02.

3. Entendo que nao devemos fazer malhas muitos complexas, e segui isto a risca...  mas mesmo assim estou passando por problemas.. Usei os dois scritps mais comentados nos tutoriais do Youtube.. (SteamRoller, para fazer o mapeamento de UVW automático e UE4FBX, para exportar de forma prática...só para deixar registrado).

4. Esta imagem mostra uma parede em especifico, onde não temos nada muito elaborado, uma parede simples, sem muitas mudanças de ângulos, onde aprendi que pode dar problemas de cálculo de Luz.

5. Item 5 mostra as configuraçãoes de exportação do FBX dentro do 3DS MAX 2018.

6. Item 6 mostra a setagem de importação para minha UE4, versão 4.20.1

7. Costumo usar o Lightmap Density, para averiguar se as malhas importadas estão corretas, e já arrumo a quantidade de amostras de luz, no override do objeto. Observe que na seta "B", a meshe em questão esta toda em Azul, diferente das outras, e as setas "C, D" também estão em azul puro, o que já me mostra que deu erro de mapeamento.
O mais interessante, é que foi exportado todas as meshes juntas, nao deveria, ao meu ver, dar problemas aparentemente "aleatórios" nas meshes.

8. Observem que eu insiro valores absurdos, a mesh deveria ficar vermelhíssima, porém continua azul.

9. Dando uma olhada mais detalhada no editor de Mesh, vemos a mesma mesh, sem UVW... Pergunto quase chorando.. Porqueeeeeeeeeeeeee!!!.. Visto que o tratamento foi igual para todas as meshes da cena, em Lote, usando os plugins comentados.

Para Finalizar, vou me tornar repetitivo, para que a escência da minha dúvida nao se perca ao leitor que pulou algumas partes deste meu extenso post....
Pergunto: Porque algumas meshes vem para a UE4 corretamente, e outras não, visto que foi feito em Lote?!?!... e ja vi tutoriais que exportam meshes muito mais complexas, e dava certo....

Bom, nos meus testes, eu voltei no max, e desatachei a malha, subvidindo o máximo possível, remapeei com os mesmos plugins, exportei,, e deu certo... 
Dai me pergunto, terei que fazer essa "Colcha de Retalhos" das paredes, e de todos meus blocos futuros que pretendo converter para UE4?!?!... caramba, é muito trabalhoso!!

Quero deixar registrado que não usei o Datasmith, embora saiba que teoricamente é mais pratico, mas confesso que ainda nao me convenceu.. só vou usar este médoto, assim que eu dominar a exportação de forma "convencional"...

Assim que eu obter respostas conclusivas, prometo colocar o processo em forma de video, mostrando de forma real e sem mi mi mi, como fazer exportação de forma correta e acertiva.....

Grande abraço, Paz e Luz a todos!!!!
Oi Alexandre, tudo bem?

É um prazer muito grande ver a sua postagem aqui e agradeço pela participação.

Acho que você faz muito bem em querer entender bem o procedimento de exportação de FBX para o Unreal em vez de usar o Datasmith porque é muito mais eficiente em termos de memória, mais organizado, facilita a criação de interatividade e evita dor de cabeça, o Datasmith vai ter que melhorar muito para valer a pena.
Na minha opinião ele só serve para quem deseja fazer visualização rapidamente para extrair imagens e vídeos se tiver uma placa de vídeo boa, não serve para criar maquete interativa.

Sobre a preparação do Mesh, é bom deletar o que não vai aparecer como você disse, mas tomando o cuidado para não deletar faces que não aparecem mas interferem na iluminação, por exemplo, nas paredes é bom deixar a parte de fora que não aparece para não vazar luz para dentro da cena, caso contrário terá que usar a opção 2 Side nos materiais e isso ocupa mais memória do que a face 3D da parede.

Já no Unwrap você deve dar preferência apenas para as faces que aparecem, deixando uma área pequena para as que não aparecem como você disse, pois dai otimizará a resolução do Lightmap da melhor forma possível.

Sobre o problema de não aparecer o segundo canal do mapeamento que fez, por acaso você colapsou o Unwrap antes de exportar em FBX?
Parece que ele despreza o segundo canal se você não colapsar ou converter o objeto em Mesh ou Poly antes de exportar.

Sobre os procedimentos que adotou, eu sugiro algumas alterações.

1- Para mim está correto.

2- Para mim está correto.

3, 4 e 5- Sugiro que mapeie manualmente, não é difícil no caso das paredes, é só dar um Mapping > Flatten Mapping no Unwrap e posicionar as peças na área útil do UV, você pode posicionar com o Tools > Pack UVs do Unwrap, mas nem sempre ocupa a área útil da melhor forma possível.

Muito importante: No final sempre colapse o Unwrap ou converta o objeto para Editable Mesh ou Editable Poly antes de exportar.

Também sugiro que exporte manualmente em FBX para entender bem todo o processo, principalmente a questão dos Pivots, neste caso marque a opção Triangulate na janela de exportação do FBX como mostra a primeira imagem em anexo, como é recomendado pela Epic, pois o Unreal trabalha com triângulos.

6- A importação para o Unreal depende de cada objeto, por exemplo, se tem todas as paredes da casa no mesmo FBX, tem que desabilitar o Combine Meshes e dai cada parede chegará no Unreal como um objeto independente, mas com o ponto Pivot relativo ao centro da cena no Max, portanto, se por exemplo girar a parede no Unreal, ela não vai girar pelo centro dela.
Isso é o ideal para facilitar a montagem da cena no Unreal no caso das paredes, mas imagine um móvel cheio de almofadas, se desligar o Combine Meshes cada parte dele será um objeto separado e terá que montar no Unreal, então, neste caso é melhor usar o Combine Meshes, como mostra a segunda imagem em anexo.
Mas para isso tem que ter mapeado o segundo canal com todos os objetos juntos, porque o Combine Meshes é igual o Attach do 3ds max e vai unir os mapeamentos de cada parte em um só na hora que importar.

Como regra, se as partes do objeto estiverem no mesmo Mesh como Elements do Mesh, é melhor importar com o Combine Meshes ligado e se as partes do objeto forem Meshes independentes dentro do mesmo FBX, é melhor importar sem o Combine Meshes.

Se tiver criado os colisores no Max precisa habilitar o One Convex Hull Per UCX na importação e ter colocado o nome certo nos colisores no Max.

Se tiver aplicado Vertex Color em algum objeto para criar efeitos no Unreal, precisa colocar na opção Replace do Vertex Color Import Options.

Basicamente estas são as coisas mais importantes na importação, além de desligar a importação de materiais para criar os materiais você mesmo e poder usar instâncias.

7 e 8- Sugiro que ajuste a resolução do Lightmap diretamente no Mesh do objeto em vez de ajustar na instância dele na cena, pois assim sempre terá que ajustar o valor quando usar este objeto, mas se configurar diretamente no Mesh dele, sempre que usar já estará configurado.
É só clicar no Mesh que importou e vai encontrar o Lightmap Resolution como mostra a terceira imagem em anexo.

Eu acho que 1024 é mais do que suficiente para ter boa qualidade no sombreamento de uma parede e usaria no máximo 2048 no piso para melhorar o sombreamento vindo dos móveis, na minha opinião não precisa usar 4096 porque ocupa muita memória e aumenta bastante o Pack da aplicação interativa, se este for o objetivo.
Mas entendo que aumentou para 4096 apenas para testar o Lightmap Density.

O Lightmap Density informa visualmente a resolução do Lightmap dos objetos, então, objetos em azul e verde estão com baixa resolução no Lightmap, amarelos e laranjas estão com resolução média e vermelho estão com resolução alta como você disse muito bem, mas realmente só funciona nos objetos com o segundo canal de mapeamento, pois é onde guarda o Lightmap.

Se o objeto não tem o segundo canal de mapeamento o Unreal considera que ele é Movable e não vai fazer o Bake da iluminação, então, mostra o objeto em azul porque ele não pesa na geração do Lightmap.

O problema de ter faltado o segundo canal eu acredito que seja porque não colapsou o Unwrap UVW no 3ds max antes de exportar o FBX.

Agora, como você usou os Plug-ins que citou e alguns Meshes foram com o segundo canal de mapeamento e outros não, fica difícil de dizer qual é o motivo, pode ser os Plug-ins, por isso que sugiro que exporte manualmente para ter certeza de tudo que acontece.

Eu prefiro exportar objeto por objeto em vez de tudo junto por vários motivos, no caso de móveis sempre vai querer criar mapa de AO ou Bent Normals para melhorar o sombreado e dai fica ruim fazer isso com todos os objetos da cena no mesmo arquivo FBX, também é mais difícil criar os colisores, a não ser que modele os colisores no Max para já importar junto com o FBX, dificulta a criação de interatividade em alguns casos, dificulta a reimportação de apenas certos elementos e a utilização do objeto em outros projetos, só para citar alguns.

Se você preparar cada móvel e objeto de decoração individualmente e importar num projeto do Unreal para aplicar materiais, criando tipo uma biblioteca de móveis prontos, será fácil usar os mesmos objetos em outros projetos com o Migrate, então, só vai precisar mapear as paredes e exportar em FBX em cada nova maquete.

Não é trabalhoso mapear as paredes, é quase automático com o Flatten Mapping e o Pack UVs, mas se puder arrumar o UV manualmente depois do Pack ficará melhor ainda.

E nem precisa dos Plug-ins, em 5 cliques você mapeia todas as paredes e exporta em FBX sem ter que fazer nada se não quiser arrumar manualmente os UVs.

Abração e tudo de bom.

André Vieira
Boa Noite André!!!

Como sempre, suas respostas sempre vão além do que foi perguntando. Muito Obrigado!

Bom, eu sempre colapso tudo, é mania minha rsrs.. então com certeza o unwrap MAP, está colapsado.
Anotei tudo que vc me falou, e com certeza vou seguir.
Meus estudos tem como objetivo criar um fluxo de trabalho definitivo do MAX para o Unreal, e não basta somente ser funcional este fluxo, para se tornar equilibrado, é necessário otimizar o tempo tmb. por isso optei por usar plugins que me ajudassem a agilizar o processo (sem chegar no Datasmith, claro).

Bom, no fim, minha solução para essas paredes, foi simples, eu apliquei um material STANDART, onde o difuse adicionei um CHECKER, apenas para facilitar a visualização na viewport, em seguida apliquei o modificador UVW MAP, no formato de BOX, com dimensoes de 100,100,100... Apliquei em todas as paredes, de uma vez só.. 

Após isso colapsei tudo.. e apliquei o Plugin STEAMROLLER, que é o criador de UNWRAP em Lote, e deu certo lá dentro da UNREAL, tudo lisinho!!!.. rsrsrs

Agora que resolvi esta parte, estou estudando a melhor forma de trazer os sofás, cadeiras, portas.. etc...
Vou exemplificar com um sofa meu procedimento....:
1. Desatacho todas as partes (Encostos, assentos, pés, almofadas...) e aplico o plugin SteamRoller

2. Com todas as peças já mapeadas, e colapsadas, eu seleciono todas exporto em FBX, pelo método de exportação por seleção, como arquivo único, sem uso de nenhum plugin.

3. Dentro da UE4, eu importo porém ligo o "Combine Meshes", e ligo tmb o "Gerar light Map"

4. Com isto tenho o sofá todo montado, e com poucos "overlaps".

5. O que nao me agrada é ter de fato "overlaps"... por esta razão concordo que preciso refazer o UNWRAP lá no MAX, de cada peça... porem neste caso especifico, como é um sofa com modelagem orgânica e com TurboSmooth já aplicado e colapsado, se torna demorado.

Dito isto, pergunto.. estou fazendo certo?

Aconselham outro procedimento para que eu traga meus blocos para a UE4???

NOTA: Como eu trago o Sofa com o ponto Pivot fora do centro da massa do mesmo (Teimosia em nao mexer rsrsr), eu crio uma BluePrint de Actor, insiro este sofa, realoco ele no centro.. e insiro esta BluePrint na cena, onde o sofa fica com o Ponto Pivot certinho.... Isto é problema de alguma forma para a UE4?... 


Abraço, Paz e Luz a Todos!!!!
Oi Alexandre, tudo bem?

É um prazer enorme poder conversar com você sobre o Unreal aqui no fórum, também tenho certeza que será interessante para vários leitores que estão estudando o Unreal, portanto, sou eu que te agradeço.

Sobre o problema de não exportar o mapeamento, se você sempre colapsa tudo, a única outra opção que me passa pela cabeça é você não ter criado o primeiro canal de mapeamento, principalmente pelo que você falou de como resolveu o problema, porque se tiver apenas um canal ele será usado para as texturas, ficando sem o canal para o Lightmap.
Então, eu sempre aplico o primeiro Unwrap no canal 1 para as texturas e em cima dele outro Unwrap com o canal 2.
Se tiver mapeado o canal 1, quando aplicar o outro Unwrap e mudar para o canal 2 ele vai perguntar se quer mover ou abandonar, escolhendo o mover ele faz uma cópia do canal 1 para o canal 2 e dai já estará tudo mapeado.

Eu entendo o seu objetivo de criar um fluxo rápido e produtivo para usar no trabalho diário.
Por isso que sugeri fazer primeiro manualmente para ficar por dentro de como as coisas funcionam e poder escolher o que sacrificar em cada projeto conforme o tempo disponível.

Eu dei uma olhada no Steamroller e ele faz a mesma coisa que o Render To Texture do Max, aplicando o Flatten Map automático, apenas deixa configurar algumas opções do Flatten que não estão disponíveis através do Render To Texture.

A primeira imagem em anexo mostra as configurações do Render To Texture, é só você selecionar todos os objetos que deseja mapear, colocar na opção Use Automatic Unwrap, escolher o canal de mapeamento na frente e clicar no Unwrap Only na parte inferior da janela.

A segunda imagem em anexo mostra o resultado na esfera, pois no Box fica perfeito, mas em objetos redondos ele acaba criando muitos cortes no mapeamento e os problemas de iluminação no Unreal vão aparecer justamente nestes cortes.

Objetos com formas arredondadas é melhor mapear manualmente e não é difícil, na maioria das vezes é rápido também se usar a técnica certa conforme o objeto como Pelt, Peel, Relax, Spline Mapping e tal.

O único Plug-in que vi para o 3ds max que faz um bom mapeamento automático de coisas redondas é o Unknit, que a Epic comprou da Motiva para adicionar no Datasmith.

Você pode ver o vídeo quando mostraram ele pela primeira vez neste link: http://3d1.com.br/noticia/66594

A outra opção é o programa Unfold3D, que agora chamam de Rizom UV, a página dele é essa: https://www.rizom-lab.com/

Um Plug-in que pode ajudar um pouco dentro do próprio Max é o Flatiron, a página dele fica neste link: https://www.texturebaking.com/flatiron-2-34-massive-speed-improvements/


O Generate Lightmap UVs na importação do Unreal faz exatamente a mesma coisa que o Flatten automático do Render To Texture ou do Steamroller, então, é ruim para objetos curvos e pode apresentar problemas no Bake da iluminação.

Por isso que o ideal é exportar o mapeamento do segundo canal diretamente do Max, onde tem total controle, em vez de ligar o mapeamento automático na importação no Unreal, pois se tiver mapeamento no segundo canal ele vai substituir pelo mapeamento automático.

A forma como você fez o sofá deu certo porque ligou o mapeamento automático na importação, pois quando habilitou o Combine Meshes com vários objetos no arquivo FBX, o mapeamento de cada parte ficou sobreposto, coisa que apresentaria defeitos sérios no Bake da iluminação, mas o mapeamento automático sobrescreveu essa sobreposição.
Você pode certificar que aconteceria isso se importar sem habilitar o mapeamento automático e olhar o UV depois da importação.

O Combine Meshes é a mesma coisa que o Attach do Max, então, o ideal é aplicar o Attach no próprio Max e ajustar as ilhas do UV no mapeamento do segundo canal, pois no Unreal não terá controle sobre isso.
Então, no caso do seu procedimento, depois que aplicou o Steamroller nas partes separadas, é só juntar tudo de novo com o Attach, aplicar o Unwrap UVW no canal 2, escolher a opção Move para copiar o mapeamento do canal 1 e dar um Tools > Pack UVs para arrumar as peças no segundo canal deixando sem sobreposições.

A terceira imagem em anexo mostra o mapeamento do canal 1 da poltrona com todas as peças anexadas no mesmo Editable Poly, mas cada peça está num ID diferente e foi mapeada individualmente, porém, como todos os IDs estão ativos as peças aparecem sobrepostas, não tem o menor problema no canal 1 e é até desejável porque aumenta a resolução das texturas, mas não pode acontecer no canal 2 e foi o que aconteceu quando ligou o Combine Meshes no sofa com as partes separadas dentro do FBX.

A quarta imagem em anexo mostra o mapeamento do canal 2 da mesma poltrona, onde apenas apliquei o Pack UVs e arrumei as peças manualmente, então, no canal da iluminação não tem sobreposição das peças para não dar problemas no Bake da iluminação, mas o mapeamento automático não fica bom assim, cria muito mais ilhas e cortes onde não deveria.

Isso é muito importante para o resultado final no UE!!!


Sobre o ponto Pivot, por padrão ele sempre ficará no centro do mundo do 3ds max nas coordenadas 0, 0, 0.
Então, se colocar o sofa no centro do Max e alinhar com o Grid do piso, o Pivot ficará bem no centro e na base dele, facilitando muito a adição dele nas cenas no Unreal usando o Surface Snapping, porque dai ele vai reconhecer o chão e outros objetos, até mesmo quando adicioná-lo no Blueprint já vai ficar certo.
Isso também é importante se pretende usar o objeto em vários projetos, pois neste caso é ruim exportá-lo distante do centro do Max.

Se quiser você pode desabilitar essa opção desmarcando o Transform Vertex To Absolute e marcando a opção Bake Pivot In Vertex, mostrado na última imagem em anexo, mas eu acho melhor exportar com o alinhamento certo do próprio 3ds max.

Testa estas coisas e me fala se teve qualquer problema que a gente resolve.

Abração e tudo de bom.

André Vieira

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 711014.

Total de membros registrados: 138489

Últimos membros registrados: ManhoodPlusGummiesErgebnis, Corrinsbeierai, detoxmin, mathzurra05, jenafe, Young03Uzziah, FELIPERODRI@, isaque.220798.

Usuário(s) on-line na última hora: 548, sendo nenhum membro e 548 visitante(s).

Membro(s) on-line na última hora: Nenhum.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.