Animação do slice modifier do 3d max para Unreal Engine

Por: th3one  

Em: 07/11/2022 12:40

Boa tarde.
Eu não estou a conseguir importar esta animação do objecto para o ureal engine;

https://streamable.com/75yce5

O que estou tentar fazer é uma animação parecida com essa no unreal;
https://www.youtube.com/watch?v=dsdHl0ufxfw
www.Hexohive.com
Oi th3one, tudo bem?

Você tentou exportar em Alembic ou só em FBX?
O FBX não aceita Vertex Cache, tem um suporte novo como Plug-in que ainda está em Beta e pode habilitar no Edit > Plug-ins, mas o Alembic é mais confiável.

Segue o passo a passo do teste que fiz para te mostrar:

0- Animei um Slice no objeto para fazer ele aparecer do Frame zero até o 100, porém, não fiz o Mesh sumir completamente no Frame zero, deixei um pedacinho aparecendo, caso contrário, vai dar problema por não ter nenhum Mesh no Frame, uma forma de burlar isso é colocar outro Mesh pequeno no arquivo e distante, entretanto, no Unreal 4x aceitava importar sem nenhum Mesh no início e agora não aceita mais.

OBS: Apliquei o Tessellation para ele refazer a topologia durante o corte do Slice e não deixar vértices soltos ou qualquer coisa que possa dar problema entre os Frames.

1- Exportei do Max em ABC com as opções padrões e importei no Unreal com as configurações mostradas na imagem 2, apenas habilitei o Geometry Cache, marquei o Skip Empty Frames e na parte de baixo troquei o Preset de Maya para 3ds max.

2, 3 e 4- Se você arrastar o arquivo importado para a cena e der Play na aplicação, vai rodar a animação em Loop automaticamente como mostram as imagens.

5- Porém, imagino que você queira usar no Sequencer para renderizar como vídeo em vez de utilizar numa aplicação interativa Real-Time, neste caso é só abrir o sequencer, adicionar o objeto importado em ABC, clicar no Track na frente dele e escolher a opção Geometry Cache, como mostra a imagem, veja que tem duas, a outra aparece o nome Component na frente.

6- Assim, aparece o Track da animação e arrastando o ponteiro vai tocar a animação na Viewport, como mostra a imagem.
Arrastando os cantos do Track com as teclas Alt, Shift e CTRL você controla diversas propriedades ou então clicando com o botão direito aparece o menu com as opções que pode usar como aumentar e diminuir a velocidade, colocar em Loop, controlar as curvas de entrada e saída do Track, Blends e tudo mais, também pode arrastar o Track para posicionar onde quiser na animação.

Você pode aplicar o Track de visibilidade para deixar o objeto invisível até a hora de iniciar a animação, assim, não vai ver aquele pedacinho do Mesh no primeiro Frame dela.

OBS: Agora, se você conhecer o mínimo sobre Blueprint eu posso te mostrar como fazer este tipo de animação diretamente no Engine, dai poderá sair do zero sem Mesh nenhum e terá muito mais controle sem ficar indo e vindo do 3ds max, é bem fácil, só fica mais difícil se não conhecer nada sobre Blueprint, pois os modificadores iguais aos do 3ds max estão dentro de um tipo de Blueprint chamado Geometry Script, lá tem o Slice, Bend, Twist, TurboSmooth, Optimize, Boolean, UVs, Hair, entre outros.

Abração e tudo de bom.

André Vieira
Obrigado! tive dois dias com esse problema, no final consegui resolver
fiz mais ou  menos como explicaste, aplicar um tesselation é uma optima dica!
tenho conhecimentos basicos o UR5, se puder ajudar como fazer era uma boa!
Na teoria seria mais eficaz fazer toda a animação no UR5, fazer importações de animações do 3d max é uma dor de cabeça, demora muito tempo as importações.

segue a animação até agora!

https://files.fm/u/qdwhp6xfz#/view/hntkncty2

obs: tem que se fazer o download do video, para abrir

Obrigado, Abraço
www.Hexohive.com
Oi th3one, tudo bem?

Desculpe a demora para responder, ando muito atarefado tentando terminar o curso de Unreal antes do final deste mês.

Eu fiz um teste para te mostrar como criar o Slice no Geometry Script, mas tenho uma péssima notícia, ele ainda não é aceito no Sequencer ou pelo menos eu não consegui fazer ele funcionar em animação convencional, só funciona no Editor ou em Runtima durante a aplicação interativa, nada que eu fiz deu certo com Key Frames.

Entretanto, em teoria você pode rodar a aplicação e gravar a animação para usar no Sequencer, seria igual um editor de vídeo neste caso.

Segue o passo a passo para criar o Slice no Geometry Script:

1- Primeiro precisa habilitar o Geometry Script no Edit > Plug-ins, ele ainda está bem no início, na versão 0.1, por isso que não aceita o Sequencer, mas vai aceitar.
Depois que habilitar, é só criar um Blueprint da Classe Generated Dynamic Mesh Actor, como mostra a imagem 1 em anexo.

OBS: Eu tentei também com o Dynamic Mesh Actor no Sequencer, que é para Runtime, mas não funcionou do mesmo jeito que o Generated, que é para rodar no Editor.

2- Abrindo o Blueprint e acessando o gráfico de eventos, crie o evento On Rebuild Generated Mesh, ele que gera o Mesh procedural, então, é só arrastar o pino dele e digitar Copy para pegar o Copy Mesh From Static Mesh, que permite transformar um Mesh comum em dinâmico.
Promova a variável From Static Mesh Asset e coloque o nome Mesh ou Objeto para saber do que se trata, habilite para exibir na interface clicando no ícone do olho na frente dela, assim, poderá escolher o Mesh lá no painel detalhes.

3- O Copy Mesh From Static Mesh solta o Dynamic Mesh do lado direito, então, arrastando o pino dele você pode aplicar os modificadores, se digitar Slice vai encontrar um Node que corta o objeto, mas ele não remove o topo, apenas gera o corte na malha, para remover a metade cortada precisa pegar o Apply Mesh Plane Cut.
Ele oferece uma transformação, que possui a posição, rotação e escala, então, é só arrastar o pino da transformação e digitar Make para pegar o Make Transform, promova as variáveis Location e Rotation, depois habilite o olhinho para aparecerem na interface, assim, poderá controlar o plano de corte pelo painel detalhes.

4 e 5- Compile e salve o Blueprint, depois, arraste para a cena, escolha o Mesh no painel detalhes e aumente o valor da posição em Z para ver o objeto aparecendo.

6- Se modificar a rotação você gira o plano de corte exatamente igual acontece no Max. Você pode animar esse plano proceduralmente através de Nodes da forma que quiser, menos por Key Frames que é justamente o que você queria.
Quando coloco ele na Timeline do Sequencer e acesso a variável da posição, consigo criar os Keys e modificar o valor do parâmetro no painel Detail, mas ele não atualiza o Dynamic Mesh na Viewport, pode ser que exista algum Node para obrigar ele a atualizar pelo Sequencer, mas eu não conheço.
Por ele estar na versão 0.1 é mais provável que ainda não tenha suporte para o Sequencer.

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: 707699.

Total de membros registrados: 135307

Últimos membros registrados: nivialps, Jose10, amanda.goulart, Timothy, bdsantha, Faith, Lukasmiranda00, ViniBoy777.

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

Membro(s) on-line na última hora: Duda, Juarez, modena3d, Thiago, Reinaldo Silva, Ronaldo Junior, marcelo de moraes, rodolfosantos3d, Osvaldo Arquiteto, claro_lima, Abilio, Leonardo, gago, emersonforentin, Thiago, look, alej0, Alex Bastos , Jose10, cadplan85, Victor Mendonça, Adalberto Rocha, Emmanoel, Roberto Movanni, ricardo duarte, Fernando Cunha.

Legenda: Administrador, Especial, Moderador, Parceiro .

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