O suporte para malhas estáticas no pipeline de importação de FBX torna a obtenção de malhas de aplicativos 3D para a Unreal Engine 5 uma tarefa simples e tranquila. Quando as malhas forem importadas, as texturas usadas nos materiais aplicados a elas em seu respectivo aplicativo 3D (apenas mapa de normais e difuso) também são importadas e, por sua vez, usadas para gerar os materiais aplicados à malha na UE5.
Funcionalidades compatíveis com a importação de malhas estáticas usando FBX:
- Malhas estáticas com materiais incluindo texturas
- Colisão personalizada
- Múltiplos conjuntos de UVs
- Grupos de suavização
- Cores de vértice
- LODs
- Várias malhas estáticas separadas (também podem ser combinadas em uma única malha na importação)
No momento, ao importar várias malhas com colisão personalizada em um único arquivo, apenas a colisão da primeira malha será importada.
O pipeline de importação de FBX da Unreal Engine usa o FBX 2020.2. O uso de uma versão diferente durante a exportação pode causar compatibilidades.
Configuração geral
Em geral, você tem liberdade para criar malhas estáticas usando qualquer ferramenta e método que desejar. Existem algumas estipulações relacionadas à configuração de UVs, posicionamento da malha etc. que você precisa considerar para que a exportação e a importação ocorram sem problemas e que a malha funcione corretamente no Unreal Editor.
Ponto de pivô
O ponto de pivô da malha na Unreal Engine determina o ponto em torno do qual quaisquer transformações (translação, rotação, escala) será executada.
Clique na imagem para ampliá-la.
O ponto de pivô sempre estará na origem (0,0,0) ao ser exportado a partir de um aplicativo de modelagem 3D. Por isso, é melhor criar as malhas na origem, com esta geralmente localizada em um canto da malha para permitir o alinhamento adequado ao encaixar na grade dentro do Unreal Editor.
Clique na imagem para ampliá-la.
Triangulação
As malhas na Unreal Engine devem ser trianguladas, pois o hardware de vídeo lida apenas com triângulos.
Clique na imagem para ampliá-la.
Há várias maneiras de garantir que a malha será triangulada.
- Modelar a malha apenas com triângulos: é melhor solução, pois oferece maior controle sobre o resultado final.
- Triangular a malha no aplicativo 3D: uma boa solução, permite limpeza e modificação antes da exportação.
- Permitir que o exportador de FBX triangule a malha: essa solução é aceitável, mas não permite limpeza, mas funciona para malhas simples.
- Permitir que o importador triangule a malha: solução aceitável, não permite limpeza, mas pode funcionar para malhas simples.
É sempre melhor triangular a malha de forma manual no aplicativo 3D, controlando a direção e o posicionamento das bordas. A triangulação automática pode levar a resultados indesejados.
Clique na imagem para ampliá-la.
Coordenadas de textura UVs
A importação de múltiplos conjuntos de UVs é compatível com o pipeline de FBX na Unreal Engine 5. Para malhas estáticas, isso geralmente é usado para processar um conjunto de UVs para o difuso. Não há requisitos especiais para configurar as UVs para malhas estáticas usando o pipeline de FBX.
Como criar mapas de normais
É possível criar mapas de normais para as malhas dentro da maioria dos aplicativos de modelagem, resultando numa malha de renderização de baixa resolução e uma malha detalhada de alta resolução.
Clique na imagem para ampliá-la.
A geometria da malha detalhada de alta resolução é usada na gerar de normais para o mapa de normais. A Epic usa um fluxo de trabalho interno que introduz o XNormal no processo e geralmente resulta em normais muito melhores ao serem renderizadas na Unreal Engine 5. Para obter detalhes sobre esse processo, consulte a Textures.
Materiais
Os materiais aplicados às malhas modeladas em aplicativos externos serão exportados junto com a malha e importados para a Unreal. Isso simplifica o processo, pois as texturas não precisam ser importadas separadamente na Unreal, os materiais não precisam ser criados e aplicados etc. O processo de importação é capaz de realizar todas essas ações ao usar o pipeline de FBX.
Esses materiais também precisam ser configurados de uma maneira específica, especialmente quando a malha tiver vários materiais, ou a ordem dos materiais na malha for importante (ou seja, para modelos de personagem em que o material 0 precisa ser o corpo e o material 1 precisa ser a cabeça).
Para obter os detalhes completos sobre a configuração dos materiais a serem exportados, consulte a página Pipeline de materiais FBX.
Colisão
A geometria de colisão simplificada é importante para otimizar a detecção de colisão no jogo. A Unreal Engine 5 fornece ferramentas básicas para criar geometria de colisão dentro do Static Mesh Editor. No entanto, em alguns casos, a melhor maneira é criar uma geometria de colisão personalizada no aplicativo de modelagem 3D e exportá-la com a malha de renderização. Em geral, isso vale para malha com uma abertura ou área côncava com a qual os objetos não precisam colidir.
Por exemplo:
- Malhas de porta
- Paredes com recortes de janelas
- Malhas com formatos irregulares
As malhas de colisão são identificadas pelo importador com base no nome. A sintaxe de nomenclatura da colisão será:
| **Nome e prefixo da malha | Descrição |
|---|---|
| UBX_[RenderMeshName]_## | Uma Box deve ser criada usando um objeto 3D retangular regular. Você não pode mover os vértices ou deformá-lo de forma alguma para que não seja um prisma retangular, senão ão funcionará. |
| UCP_[RenderMeshName]_## | Uma cápsula deve ser um objeto cilíndrico limitado por hemisférios. Não precisa ter muitos segmentos (8 é um bom número), pois será convertida em uma verdadeira cápsula para colisão. Assim como nas caixas, você não deve mover os vértices individualmente. |
| USP_[RenderMeshName]_## | Uma esfera não precisa ter muitos segmentos (8 é um bom número), pois ela é convertida em uma esfera verdadeira para colisão. Assim como nas caixas, você não deve mover os vértices individualmente. |
| UCX_[RenderMeshName]_## | Um objeto convexo pode ser qualquer forma convexa completamente fechada em 3D. Por exemplo, uma caixa também pode ser um objeto convexo. O diagrama abaixo ilustra o que é convexo e o que não é:
|
Ressalvas e considerações
-
"RenderMeshName" deve ser idêntico ao nome da malha de renderização associado à malha de colisão no aplicativo 3D. Portanto, se você tiver uma malha de renderização chamada "Tree_01" em seu aplicativo 3D, a malha de colisão deverá estar na cena com essa malha, ter o nome "UCX_Tree_01" e ser exportada junto com a malha de renderização para o mesmo arquivo FBX. Se precisar de mais de um objeto de colisão para uma malha, você poderá estender os nomes deles com outros identificadores, como: "UCX_Tree_01_00", "UCX_Tree_01_01", "UCX_Tree_01_02" etc. Todos eles estarão associados como colisão para essa malha.
-
No momento, as esferas são usadas apenas para colisão de corpo rígido e para traços com extensão zero da Unreal (por exemplo, armas), não para traços com extensão diferente de zero (por exemplo, movimento do jogador). Além disso, esferas e caixas não funcionarão se a StaticMesh não tiver dimensão uniforme. Em geral, você provavelmente vai querer criar primitivas UCX.
-
Após configurar os objetos de colisão, você pode exportar a renderização e a malha de colisão no mesmo arquivo FBX. Quando você importa o arquivo .FBX para o Unreal Editor, ele encontrará a malha de colisão, a removerá da malha de renderização e a transformará no modelo de colisão.
-
A divisão de uma malha não convexa em primitivas convexas é uma operação complexa e pode gerar resultados imprevisíveis. Outra abordagem é dividir o modelo de colisão em peças convexas no Max ou no Maya.
-
No caso de um objeto cuja colisão é definida por vários cascos convexos, os resultados são melhores quando os cascos não se cruzam. Por exemplo, se a colisão de um pirulito for definida por dois cascos convexos, um para o doce e outro para o bastão, um espaço deve ser deixado entre os dois, como na ilustração a seguir:
Clique na imagem para ampliá-la.
- UCX_Candy
- Pequeno espaço entre as superfícies de colisão
- UCX_Stick
Soquetes
Soquetes são comumente usados em jogos para anexar um objeto a outro objeto, seja para uma malha esquelética ou estática. A Unreal Engine 4 fornece ferramentas para criar soquetes dentro do editor de malha estática. Às vezes, pode ser necessário definir -los no programa de modelagem 3D e exportá-los com a malha de renderização. Esses soquetes podem ser transladados, girados e redimensionados em relação ao osso em uma malha esquelética ou ao tamanho da malha estática.
Para usar um soquete em seu aplicativo de modelagem, você precisará usar um objeto fictício ou auxiliar com o prefixo "SOCKET_".
| "Nome e prefixo de malha" | Descrição |
|---|---|
| SOCKET_[RenderMeshName]_## | Use esse recurso em objetos fictícios ou auxiliares no aplicativo de modelagem para atribuir um soquete à malha. |
Ressalvas e considerações
-
"RenderMeshName" deve ser idêntico ao nome da malha de renderização associado ao objeto de soquete no aplicativo 3D. Se você tiver uma malha de renderização com o nome "Object_01" no seu aplicativo 3D, o objeto do seu soquete deve estar na cena com essa malha, receber o nome "SOCET_Object_01" e ser exportado junto com a malha de renderização para o mesmo arquivo FBX. Se precisar de mais de um objeto de soquete para uma malha, você poderá estender os nomes deles com outros identificadores, como: SOCKET_Object_01_00, SOCKET_Object_01_01, SOCKET_Object_01_02 etc., e todos eles serão associados como soquetes para essa malha.
-
Ao criar soquetes para sua malha, você pode ter apenas uma configuração FBX de malha única com soquetes que podem ser importados para a Unreal Engine 5. Por exemplo, se você tiver duas malhas de renderização que deseja separar, os ativos precisarão ser importados como arquivos FBX separados. Isso significa que você não pode importar várias malhas e atribuir os soquetes a cada malha separada. Se você tiver dois conjuntos de malhas de renderização com soquetes próprios, eles não serão importados corretamente. Por exemplo, se eu tiver Object_01 com SOCKET_Object_01_00 e outra malha de renderização Box_01 com SOCKET_Box_01_00. Não consigo exportar essas duas malhas com seus soquetes juntos. Elas precisariam ser exportadas como arquivos FBX separados.
Cores de vértice
Cores de vértice para malhas estáticas podem ser transferidas usando o pipeline de FBX. Nenhuma configuração especial é necessária
Clique na imagem para ampliá-la.
Como exportar malhas
Malhas estáticas podem ser exportadas individualmente ou em quantidade para um único arquivo FBX. O pipeline de importação separará várias malhas estáticas em vários ativos no pacote de destino, a menos que seja especificado para combinar as malhas ativando a configuração Combine Meshes no momento da importação. Consulte a documentação sobre como exportar arquivos FBX para a ferramenta criação de conteúdo digital de terceiros de sua preferência, lembrando-se de seguir as diretrizes apresentadas anteriormente para a criação das malhas.
O pipeline de importação de FBX da Unreal Engine usa o FBX 2020.2. O uso de uma versão diferente durante a exportação pode causar compatibilidades.
Como importar malhas
-
Clique no botão Add/Import no Navegador de Conteúdo e selecione Import. Vá até o arquivo FBX que deseja importar e selecione-o no navegador de arquivos que será aberto.
Você pode selecionar a
no menu suspenso para remover arquivos indesejados.Clique na imagem para ampliá-la.
O caminho do ativo importado depende da posição atual no Navegador de Conteúdo. Navegue até a pasta apropriada antes de realizar a importação. Você também pode arrastar os ativos importados para uma nova pasta após a conclusão da importação.
-
Escolha as configurações adequadas na caixa de diálogo Import. Os padrões devem ser suficientes na maioria dos casos. Confira a seção Caixa de diálogo de importação de FBX para obter detalhes completos de todas as configurações.
Clique na imagem para ampliá-la.
-
Clique no botão Import para importar as malhas. As malhas, materiais e texturas resultantes serão exibidos no Navegador de Conteúdo se o processo for bem-sucedido.
Clique na imagem para ampliá-la.
Embora texturas e materiais possam ser importados com uma malha estática, apenas Color e Normal serão conectados automaticamente (supondo que um material compatível foi usado), mapas especulares serão importados, mas não serão conectados. Outros mapas, como o mapa de oclusão de ambiente no espaço difuso de um material do Maya, nem serão importados. É melhor conferir os materiais, conectar mapas não conectados e verificar quais mapas não foram importados. Basta clicar duas vezes no novo material e conectar as texturas disponíveis às entradas apropriadas.
Ao visualizar a malha importada no editor de malha estática e habilitar a exibição da colisão, você pode determinar se o processo funcionou conforme o esperado.
Clique na imagem para ampliá-la.
Outra opção é clicar e arrastar um arquivo FBX do Windows para o Navegador de Conteúdo, e a caixa de diálogo de importação será exibida.
LODs de malha estática
Malhas estáticas podem usar níveis de detalhes (LODs) no jogo para limitar o impacto das malhas conforme elas se afastam da câmera. Em geral, isso significa que cada nível de detalhe terá um número reduzido de triângulos e, talvez, um material (ou materiais) mais simples aplicado a ele.
Clique na imagem para ampliá-la.
O pipeline de FBX pode ser usado para importar malhas de LOD criadas usando ferramentas criação de conteúdo digital, ou os LODs podem ser criados para malhas estáticas importadas diretamente dentro da UE.
Configuração de LOD
No geral, para lidar com LODs, crie modelos de complexidade variada, de malhas básicas com todos os detalhes a malhas com o menor nível de detalhes. Todos elas devem estar alinhadas, ocupar o mesmo espaço com o mesmo ponto de pivô. Cada malha de LOD pode ter materiais completamente diferentes atribuídos, incluindo diferentes quantidades de materiais. Isso significa que a malha-base pode usar vários materiais para fornecer, mas quantidade desejada de detalhes de perto e, por outro lado, malhas com menos detalhes podem usar um único material, pois estes serão menos perceptíveis.
Cada ferramenta de criação de conteúdo digital terá seu próprio fluxo de trabalho para criar LODs para malhas estáticas. Consulte a documentação da ferramenta escolhida para obter detalhes sobre como criar e incluir esses itens nas exportações FBX.
Como importar LODs
LODs de malha estática podem ser importados junto com a malha-base no Navegador de Conteúdo ou individualmente através do editor de malha estática.
-
Clique no botão Add/Import no Navegador de Conteúdo e selecione Import. Vá até o arquivo FBX que deseja importar e selecione-o no navegador de arquivos que será aberto.
Você pode selecionar a
no menu suspenso para remover arquivos indesejados.O caminho do ativo importado depende da posição atual no Navegador de Conteúdo. Navegue até a pasta apropriada antes de realizar a importação. Você também pode arrastar os ativos importados para uma nova pasta após a conclusão da importação.
-
Escolha as configurações adequadas na caixa de diálogo Import. Os padrões devem ser suficientes, mas confira se Import LODs está habilitado. Observação: ao importar LODs, o nome da malha importada seguida as regras de nomenclatura padrão. Confira a seção Caixa de diálogo de importação de FBX para obter detalhes completos de todas as configurações.
Clique na imagem para ampliá-la.
-
Clique no botão Import para importar a malha e os LODs. As malhas, materiais e texturas resultantes serão exibidos no Navegador de Conteúdo se o processo for bem-sucedido.
Clique na imagem para ampliá-la.
Embora texturas e materiais possam ser importados com uma malha estática, apenas Color e Normal serão conectados automaticamente (supondo que um material compatível foi usado), mapas especulares serão importados, mas não serão conectados. Outros mapas, como o mapa de oclusão de ambiente no espaço difuso de um material do Maya, nem serão importados. É melhor conferir os materiais, conectar mapas não conectados e verificar quais mapas não foram importados. Basta clicar duas vezes no novo material e conectar as texturas disponíveis com suas entradas apropriadas.
Ao visualizar a malha importada no editor de malha estática, você pode alternar entre os LODs usando o seletor de LODs no painel Details.
Clique na imagem para ampliá-la.
Como criar LODS para malhas estáticas importadas
Depois de importar uma malha estática, você pode criar LODs para ela manualmente, o que é mais demorado, mas dará melhores resultados, especialmente para malhas complexas, ou você pode usar a ferramenta de geração automática de LODs da UE, que é mais rápida quando você precisar gerar LODs para várias malhas simples.