Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Gabriel Ribeiro   Sorocaba - SP
PKopp   Salvador, Bahia
Sieben.Sieben   Rio de Janeiro, RJ - AC
mixel.amorim   João Pessoa - PB
clebercmds   Timbó - SC - SC

Portfólios Ver Mais

andre.csant   São Luís - MA - MA
johnnybise   São Paulo - AC
ti_roc   Mauá, SP - AC
Juninho   Belo Horizonte - MG

3DS MAX 2018 não exporta toda a animação do projeto em FBX.

Por: leommh  

Em: 13/08/2018 20:58

Olá pessoal, sou novo aqui e também na área de 3D, resumindo minha situação estou fazendo um protótipo para a conclusão de um artigo sobre Realidade Aumentada e para isso estou usando o 3dsMax para fazer o 3D enquanto utilizo o Unity para criar a parte de RA.

Atualmente estou terminando um barco voador, ele contém 3 animações sendo que a primeira é ele subir e descer para dar sensação de voo, a segunda é a animação das hélices e a terceira é a animação das "asas" do barco. Quando faço a exportação via FBX pelo 3dsMax as animações 1 e 2 são exportadas perfeitamente, porém a animação 3 das asas não aparece, logo o barco fica com as asas paradas.

No anexo está as imagens da animação no 3dsMax, nele funciona tudo certinho, porém quando exporta fica assim: https://sketchfab.com/models/d11cf14d51084b51a57ecada7789e5a2

Ficaria muito grato se alguém pudesse me ajudar, ja procurei em vários fóruns, videos e etc, mas não achei ninguem com este problema e portanto estou desesperado.

Desde já agradeço a atenção de todos!
Oi Leo, tudo bem?

Desculpe a demora, não consegui responder o fórum nos últimos dois dias.

Sobre o seu problema, não era para acontecer isso, mas olhando as imagens que postou eu não consigo identificar nenhum erro.
Também não consegui acessar o Sketchfab que postou porque não está público e pediu login, mas isso não tem importância, pois sei que as asas estão paradas como você disse.

Certamente não é um problema de exportação, como não ter marcado o Animation no FBX, pois as outras animações foram numa boa.
Provavelmente é alguma coisa bem boba, mas a única forma de descobrir é verificando o arquivo.

Você animou as asas apenas com rotação igual usou na hélice ou a asa tem algum Rig com Bones?

Se não for apenas animação PRS (Position, Rotation, Scale) e envolver Bones, tem que marcar a opção Convert Deforming Dummies to Bones, como mostra a imagem em anexo.
Também precisa verificar se a aplicação onde está importando reconhece Bones, o Unity eu sei que reconhece, mas o SketchFab eu não sei, acredito que sim, mas tem que ver o Workflow dele para importar animações com Bones.
Você testou importar no Unity?

Abração e tudo de bom.

André Vieira
Olá, primeiramente me desculpe pelo sketchfab, foi a primeira vez que usei e não sabia como compartilhar direito, e sobre as asas foram animadas somente com rotação igual as outras animações também, não utilizei nenhum esqueleto no projeto, até pq não sei muito sobre animação em 3D e tentei fazer da forma mais simples que consegui.

Já testei utilizando esta função ativada como você comentou mas não funcionou, também já tentei utilizar as configurações de exportação padrões e também já tentei personalizar, mas não resultou em nada, vi que o 3DS tem a função de enviar para outro programa e enviei para o MAYA que também tenho instalado, pois pensei em tentar exportar à partir dele, porém a animação das asas também não foi para o MAYA e achei isto muito estranho pois era para ter enviado o projeto inteiro.

Também tentei exportar a animação sozinha e o 3DS conseguiu exportar certinho, assim como importar corretamente também, porém como ele só exporta para um formato dele próprio não consegui utilizar para adicionar a animação ao 3D de forma separada.

Estoua achando que talvez possa ser algum bug no próprio projeto, mas nem sei oq pode ser feito, não vejo sentido em ocorrer este erro já que as outras animações foram feitas da mesma forma e são exportadas normalmente.
Oi Leo, tudo bem?

Realmente não tem motivo algum para acontecer este problema, não existe isso de salvar o FBX com outras animações PRS e essa não, tem alguma configuração errada na asa ou até mesmo um pau no arquivo.

Você já tentou abrir um arquivo novo, usar o File > Import > Merge para importar tudo do arquivo antigo, salvar com outro nome e exportar em FBX?
Se for um problema no arquivo isso vai resolver.

Se não der certo, você pode colocar o arquivo em algum lugar para eu baixar e abrir aqui no meu Max, dai eu te falo com certeza qual é o problema e resolvo para você, pois se eu não conseguir exportar uma animação PRS em FBX nunca mais mexo com 3D. rsrsrsrsrs

Se preferir, pode enviar para o meu email, apenas eu terei acesso: [email protected]

Abração e tudo de bom.

André Vieira
Oi Leo, tudo bem?

O problema da animação na asa foi porque você animou diretamente os vértices dela no modificador Edit Poly e dai não é mais PRS, pois não está animando o Pivot do objeto, mas cada vértice da malha.

Isso não é comum e nem aconselhável, é usado apenas em simulações de tecidos, Soft Bodies e coisas deste tipo, também não é qualquer Engine que aceita importar animações de vértices através de FBX, no Unreal por exemplo, tem que usar o formato Alembic.

O Unity aceita animação de vértices em FBX, mas para funcionar teria que habilitar o Bake das animações nas configurações de exportação do FBX e todas as outras animações do objeto também seriam convertidas para os vértices.

O ideal é animar os próprios objetos ou melhor ainda, animar Dummies com os objetos lincados nele, pois assim evita problemas, é fácil modificar o objeto animado se precisar e é milhares de vezes mais fácil de editar a animação, pois em vez de ter centenas de animações, uma para cada vértice, terá apenas uma animação do Pivot do Dummy.

Mais abaixo vou explicar em detalhes como animei o seu barco voador para você poder fazer sozinho, mas antes quero falar de outros problemas graves que encontrei e corrigi.

O maior problema que vi foram as hélices com geometrias super densas e sobrepostas, pois você não clonou apenas a hélice para criar as outras dando a volta em torno do rotor, a hélice estava grudada no rotor, então, ele foi clonado junto e ficaram 8 rotores no mesmo lugar, como mostra a primeira imagem em anexo.

Quando qualquer renderizador 3D vai gerar a imagem ele verifica onde está a face 3D e calcula os efeitos nela, mas se tem mais de uma face 3D no mesmo local o renderizador não sabe qual face ele deve calcular, portanto, escolhe uma delas aleatoriamente e isso gera um defeito que chamamos de Flicker, ou seja, acontece um batimento no local porque a cada Frame muda a face que foi renderizada.

Portanto, não pode deixar faces sobrepostas nos objetos, então, eu separei a hélice do rotor, deletei todas as outras, modelei um novo rotor idêntico ao que estava usando, pois a geometria dele estava muito ruim, e no final clonei novamente as 8 hélices para dar a volta no rotor, como mostra a segunda imagem em anexo.

Também otimizei a malha da hélice e do balão que estavam muito densas, isso pode diminuir bastante o desempenho da aplicação interativa que está fazendo e até evitar que rode em equipamentos mais fracos, é particularmente importante numa aplicação de AR para celular.

Veja a terceira imagem em anexo com o seu objeto original, o 3ds max mostra que contém 570 mil polígonos, é um objeto super pesado.

A quarta imagem em anexo mostra o objeto depois que otimizei a hélice, o rotor e o balão, visualmente não mudou nada, mas tem apenas 26 mil polígonos, ou seja, daria para você colocar 20 objetos iguais na cena que teria o mesmo peso de apenas um objeto antes, além disso o tamanho do arquivo caiu de 91 MB para 4 MB. rsrsrsrsrs

Também vi que não foi feito o mapeamento do segundo canal UV dos objetos, mas como você está fazendo um objeto animado para AR, imagino que a iluminação será totalmente Real-Time e neste caso não precisa do mapeamento para o Lightmap, já que não vai fazer o Bake da iluminação.

Na próxima mensagem vou explicar como animei o seu balão voador para você poder editar da forma que quiser.

Abração e tudo de bom.

André Vieira
Continuando....

Agora vou explicar o que eu fiz para animar o seu objeto.

Primeiro eu deletei todas as animações, começando pela animação dos vértices das asas.

Olha a primeira imagem em anexo, ela mostra uma pequena parte da lista de vértices que estavam animados e as curvas de animação deles no quadro principal do Track View, são as animações que você aplicou nas asas.

Para animar corretamente eu destaquei as asas do corpo do barco, fiz isso acessando o Sub-Object Element do Editable Poly, selecionando as partes de cada asa e clicando no botão Detach do Editable Poly.
Assim, fiquei com 6 asas separadas.

Depois criei um Dummy, que é um objeto nulo sem geometria e serve apenas como conexão entre os objetos para usar o Pivot dele na animação.
Fiz seis cópias deste Dummy e posicionei cada um deles na ponta de cada asa, bem no lugar onde a asa deve rotacionar, como mostra a segunda imagem em anexo.
Dai apenas linquei cada asa no seu respectivo Dummy usando o ícone Select And Link, marcado na segunda imagem em anexo.

O Select And Link conecta os objetos e o Unlink Selection quebra a conexão.
A conexão é sempre feita do Filho para o Pai, ou seja, você seleciona o objeto Filho com o Select And Link e arrasta até o objeto Pai, assim, quando o Pai se mover o Filho também se move.
No caso os Dummies sempre serão os objetos Pais e os Meshes os objetos Filhos.

Para animar eu liguei o AutoKey e rotacionei os Dummies para cima e para baixo igual você fez com os vértices, mas tenho certeza que foi bem mais trabalhoso com os vértices porque não teve controle do ponto Pivot para a rotação.

Para a hélice eu agrupei todas as hélices, o rotor e o tampo dele usando o menu Group > Group, depois criei um Dummy, alinhei com o centro do rotor e linquei o grupo da hélice no Dummy, como mostra a terceira imagem em anexo.

A animação foi feita da mesma forma que as asas, liguei o AutoKey e rotacionei o Dummy da hélice de 90 em 90 graus a cada 10 Frames.

Você pode aumentar ou diminuir a rotação selecionando todos os Key Frames do Dummy na Time-Line, clicando com o botão direito na Time-Line e escolhendo Configure > Show Selection Range, como mostra a quarta imagem em anexo.
Assim, vai aparecer uma barrinha escura na parte de baixo dos Keys, como mostra a imagem, você pode selecionar as pontas dela e arrastar para escalonar os Key Frames, quanto mais diminuir, mais rápida será a rotação.

Para o corpo do barco e o balão eu criei um Dummy maior, pois é o que vai controlar tudo, alinhei com o barco e linquei o barco no Dummy, como mostra a quinta imagem em anexo.

Depois, selecionei todas as partes do personagem que está no convés, agrupei com o Group > Group e linquei no Dummy grande do barco, assim, ele vai acompanhar o barco.
Fiz o mesmo com o balão, lincando com o Dummy grande do barco para acompanhar.
Também linquei o Dummy da hélice e todos os Dummies das asas no Dummy grande do barco, pois eles também devem acompanhar o movimento do barco.

No final foi só animar o Dummy do barco subindo e descendo seguindo a mesma curva que você tinha feito.

Agora você pode ter certeza que todas as animações serão exportadas normalmente e poderá editar com facilidade.
A última imagem mostra as curvas de animação das 6 asas, veja a diferença para a animação das asas pelos vértices que anexei no início.

Enviei o arquivo corrigido no seu email, estude o que eu fiz e se tiver qualquer dúvida é só falar.

Abração e tudo de bom.

André Vieira
Como já dito via email deu tudo certo com a exportação e importação no Unity, eu li oq vc fez e ficou muito mais claro como eu deveria ter feito, principalmente com os dummy que são elementos muito úteis. Tenho certeza que caso eu precise fazer novos projetos irei utilizar as suas dicas, assim ele ficará muito melhor do que esta falha tentativa de fazer um barco voador 3D que eu realizei rsrs. Muito obrigado pela sua ajuda, agora posso terminar meu protótipo e finalizar meu artigo, agradeço muito, abraço e até mais laughing
Oi Leo, tudo bem?

Fico feliz que agora deu tudo certo, a sua tentativa não foi falha, você foi muito bem para quem está iniciando no 3ds max.
Tenho certeza que não vai mais encontrar problemas para levar as animações para o Unity se sempre fizer uso dos Dummies e nunca mais animar os vértices da malha diretamente.
Desejo sorte na finalização do seu protótipo e do artigo.
Qualquer coisa que precisar é só falar.

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: 644, sendo nenhum membro e 644 visitante(s).

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

Legenda: Administrador, Especial, Moderador, Parceiro .

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