Neste tutorial vamos estudar o Reactor Cloth, para simular tecidos. Mas não tem como acompanhar sem conhecer a base do Reactor e as configurações das propriedades da simulação, explicados no tutorial Reactor 1, aqui na seção Tutoriais do site www.tresd1.com.br.
Para iniciar, precisamos criar uma cena simples, como mostra a imagem ao lado. Um Plane para ser o tecido e uma esfera que vai interagir com ele.
Defina as propriedades dos dois objetos igual foi explicado no tutorial Reactor 1, aqui no site www.tresd1.com.br, você pode usar Bounding Sphere e massa 0 na esfera, para ela não se mover.
O Plane deve ser definido como Concave Mesh, como foi explicado no Tutorial Reactor 1, aqui no site www.tresd1.com.br. Como ele será um tecido, sua massa será ignorada, ela será definida depois no Modifier Reactor Cloth, portanto, você pode manter o valor zero.
Você deve colocar a esfera num Rigid Body Collection, como foi explicado no tutorial Reactor 1, aqui no site www.tresd1.com.br, em seguida, crie um Cloth Collection, ele se encontra no mesmo painel do Reactor no menu Creat > Helpers, como mostra a primeira imagem ao lado.
Clique na Viewport para criar o ícone e acesse o painel Modify, veja que seus parâmetros são iguais aos do Rigid Body Collection, mas serve para adicionar objetos que serão transformados em tecido. Você deve adicionar o Plane na lista, igual é feito com Rigid Body, mas se tentar adicionar o Plane, perceberá que ele não fica acessível como acontece com Rigid Body.
É necessário adicionar o modificador Reactor Cloth para o objeto ficar disponível, pois só pode ser colocado na lista do Cloth Collections o objeto que tem propriedades de tecido.
Selecione o Plane, clique na lista de Modifiers e escolha o modificador Reactor Cloth, como mostra a primeira imagem ao lado. Um Gizmo laranja aparece no objeto, assim, o Plane já é reconhecido como tecido pelo Reactor.
Selecione o ícone do Cloth Collection na Viewport, entre no menu Modify e clique no botão Pick, agora você pode adicionar o Plane na coleção. Tem duas formas de adicionar o objeto na coleção, clicando no Pick e selecionando o Plane direto na Viewport ou clicando em Add e escolhendo o Plane na janela Select By Name (H). No final, o Plane aparece na lista do Cloth Collection, como mostra a segunda imagem ao lado.
Com estes procedimentos o Plane já vai se comportar como tecido e deve atender a maioria das necessidades, mesmo em animações, pois a configuração padrão é boa.
Vamos estudar melhor as propriedades dos tecido para deixá-lo mais duro ou mais maleável, mas se pretende apenas posicionar um tecido na cena, como um lençol, uma colcha, uma toalha, entre outros, essa configuração padrão é suficiente.
Veja como funciona, você não precisa simular de verdade na cena para colocar o tecido onde deseja, é da mesma forma que foi explicado no tutorial Reactor 1, aqui no site www.tresd1.com.br, clique no botão Preview Simulation nos parâmetros do Reactor no menu Utilities.
Quando abrir a janela de Preview do Reactor, tecle P para iniciar a simulação, o tecido cai sobre a esfera, mas vai perceber que ficou muito ruim, ficou com poucos detalhes, como mostra a segunda imagem ao lado.
Isso aconteceu devido a pouca quantidade de vértices no Plane, no tutorial Reactor 1, aqui no site www.tresd1.com.br, eu explico que os objetos devem ser o mais simples possível (Proxy) para usar na simulação, depois, podem ser trocados pelos objetos em alta resolução depois. Mas no caso de tecidos, não será possível trocar depois por outro objeto, mas poderá aplicar o Mesh Smooth ou o Turbo Smooth para suavizar, mesmo assim, o objeto não pode ser muito simples, porque não terá vértices suficientes para fazer as deformações.
Então, você deve aumentar a quantidade de Segments no Plane para melhorar a resolução, mas veja bem, você não pode aumentar muito, apenas o suficiente para atribuir mais detalhes na simulação, o restante da suavização será feita depois da simulação com o Mesh Smooth ou o Turbo Smooth. Se usar um tecido com muitos segmentos, poderá ter resultados indesejados, porque os sistemas de simulação trabalham com poucos polígonos. Eu usei 20 x 20 segmentos no meu exemplo, como mostra a primeira imagem ao lado.
Abrindo novamente a janela de Preview do Reactor e teclando P para rodar a simulação, você verá que o tecido cair sobre a esfera de forma mais real e adequada, já que tem mais vértices para se deformar, como mostra a segunda imagem ao lado.
Agora você perceberá um outro problema, o tecido atravessa a si mesmo, não respeitando as colisões com seu próprio Mesh, como mostra a primeira imagem ao lado.
Dependendo da situação, o tecido não precisa colidir com ele mesmo, como uma blusa por exemplo, mas se fosse uma saia, ele teria que identificar as colisões contra ele mesmo.
Para resolver isso, você deve selecionar o tecido na Viewport, acessar o painel Modify e habilitar a opção Avoid Self-Intersections nos parâmetros do Reactor Cloth, como mostra a segunda imagem ao lado.
O valor de Opt. Level permite simplificar o tecido para esse cálculo de colisão, quando maior for este valor, mais simplificado será o tecido no cálculo da colisão. Você pode usar este recuso quando o tecido for muito detalhado, pois o Self Intersections deixa a simulação mais lenta.
Abra novamente a janela de Preview do Reactor e rode a simulação, agora o tecido se comporta perfeitamente e não atravessa a si mesmo, deixe a simulação rodando até o tecido parar completamente de se balançar.
Seja para uma cena de arquitetura, onde será feito apenas uma imagem, ou para qualquer animação, sempre será necessário colocar o tecido na posição inicial. Você pode manipular o tecido diretamente na janela de Preview do Reactor, basta clicar sobre ele com o botão direito do mouse e arrastar, assim, você pode interagir com o tecido e ajustar melhor dobras e posição.
Depois que ele estiver adequado, tecle P novamente para pausar a simulação, entre no menu Max, na parte superior da janela de Preview do próprio Reactor, e escolha a opção Update Max, como mostra a segunda imagem ao lado.
Feche a janela de Preview do Reactor e veja o tecido posicionado sobre a esfera na Viewport, da mesma forma que estava na janela de Preview quando você clicou em Update Max.
Muitos leitores querem fazer dobras e arrumações específicas no tecido sobre uma cama, por exemplo, e esperam fazer isso tudo na simulação, interagindo com o tecido na janela de Preview, mas não é assim que funciona, a simulação apenas simula o comportamento do tecido, fica difícil fazer dobras e tudo mais durante este processo. O correto é modelar o tecido com as dobras que deseja e depois simular com o Reactor Cloth apenas para posicioná-lo corretamente sobre o objeto. Você pode ler os tutoriais sobre Edit Mesh, aqui no site www.tresd1.com.br, para conhecer as ferramentas de modelagem do 3ds max.
O tecido sobre a esfera não está com boa qualidade, como pode ver nas imagens ao lado, porque ainda tem pouca quantidade de vértices, apenas o suficiente para simular, mas já está na posição que desejamos.
Para aumentar a quantidade de vértices, atribuindo mais qualidade e suavidade na malha, você deve aplicar o Modify Mesh Smooth ou o Turbo Smooth com o valor 1 ou 2 no parâmetro Interations, assim, a malha será subdividida obtendo um aspécto mais suave e detalhado, como mostram as duas imagens ao lado. O ideal é usar o Turbo Smooth, disponível a partir do 3ds max 7, pois ele é mais leve que o Mesh Smooth.
Com isso que foi explicado até aqui, você já consegue posicionar um tecido em qualquer objeto da cena para poder renderizar, é muito últil em cenas arquitetônicas. Se o tecido for receber materiais que contenham imagens de textura, você deve mapear o Plane antes da simulação e pode até collapsar tudo em Edit Mesh se quiser. Dessa forma, o mapeamento vai respeitar as deformações do tecido.
Você pode ler sobre mapeamento nos tutoriais Bitmap e UVW Map e Multiplos mapeamentos, aqui no site www.tresd1.com.br. Qualquer Mesh pode ser usado para simular tecido, contanto que seja um Mesh organizado, não pode ser um Mesh desorganizado, como acontece com os objetos que recebem os Modifiers Optimize e MultiRes, estas malhas não se comportarão corretamente na simulação, porque a distância desigual entre os vértices gera problemas na deformação.
A partir de agora, veremos os parâmetros para controlar o comportamento do tecido durante as animações. Precisamos de uma animação para iniciar, você pode simplesmente animar a esfera que está sob o tecido, faça ela dar uma volta pela cena normalmente, lembre-se de habilitar a opção Unyielding nas propriedades do Reactor para este objeto, já que ele será animado por você, como foi explicado no tutorial Reactor 1, aqui no site www.tresd1.com.br. Você também pode deletar o Mesh Smooth ou o Turbo Smooth que colocou sobre o tecido, porque vamos simular novamente. Agora, abra a janela de Preview do Reactor e rode a simulação, você verá que o tecido se comporta perfeitamente, reagindo ao movimento da esfera, igual mostra a animação ao lado, portanto, as configurações padrões são boas para a maioria das situações. Se o seu tecido não ficou muito tempo sobre a esfera durante a movimentação, você não animou corretamente, desrespeitando a aceleração do objeto e fazendo movimentos bruscos, para melhorar isso você precisa ajustar corretamente as curvas de animação, como foi explicado no tutorial Curve Editor e Out Of Ranges, aqui no site www.tresd1.com.br.
Selecione o tecido, acesse o painel Modify e delete o Reactor Cloth, pois faremos testes com os parâmetros do tecido e precisamos deixá-lo cair sobre a esfera novamente. Assim, o Plane volta para sua posição incial, aplique o Reactor Cloth novamente sobre ele.
Nos parâmetros do Reactor Cloth tem o Mass, onde você define a massa do tecido. O Friction define a força de atrito, pois o Friction do menu do Reactor não tem ação sobre tecidos, quanto maior for este valor, mais difícil é para o tecido escorregar sobre outros objetos. O Relative Densidy define a densidade do tecido em contato com o Reactor Water, para simular o tecido caindo na água. Ele precisa saber a densidade para conseguir calcular e o Reactor não calcula a densidade de malhas abertas, porque não tem volume. O valor 1 corrsponde a densidade da água. O parâmetro Air Resistence define a resistência do ar sobre o tecido, controlando a sua ocilação, o valor 1 permite pouca ocilação.
No grupo Force Model você configura as propriedades do tecido. Existem duas opções, primeiro veremos a opção Simple Force Model. Mantendo as configurações padrões 0.2 e 0.2 no Stiffness e no Damping, o tecido se comporta como foi mostrado no vídeo do bloco anterior. Mude estes valores para 1 e 1, entre no menu do Reactor e faça a simulação novamente. Agora o tecido se comporta como mostra o vídeo abaixo.
O Stiffness controla a rigidez e a elasticidade do tecido. O Damping controla a ocilação, na animação anterior eu coloquei o valor 1 para os dois, assim, o tecido ficou mais rígido e pouco elástico, se você diminuir, ele fica mais elástico, como mostra o vídeo ao lado, onde usei 0.05 nos dois valores. Sendo assim, se você colocar 1 para Stiffness e 0 para Damping, o tecido ficará o mais rígido possível nessa opção, e se colocar 0 para Stiffness e 1 para Damping, o tecido será o mais elástico possível nessa opção.
Se deseja um tecido bem maleável mas sem muita elasticidade, você deve manter o valor de Stiffness próximo de 0.2 e o valor de Damping próximo de 1, também pode diminuir um pouco o Air Resistence e o Friction.
Logo abaixo tem a opção Complex Force Model, que oferece mais recursos para configurar o comportamento do tecido, mude para esta opção e mantenha as configurações padrões, como mostra a imagem ao lado. Faça a simulação e veja, o tecido se comporta de forma mais rígida, como mostra o vídeo ao lado. Você pode controlar isso nos parâmetros desta opção. O Stretch controla a elasticidade do tecido, quanto maior for este valor, menor será a sua elasticidade. O Bend controla a rigidez, quanto maior for este valor, mais rígido ficará o tecido. Como pode perceber, o Stiffness foi dividido em dois parâmetros, permitindo maior controle sobre o tecido. A opção Complex Force Model é mais adequada para usar em animações mais complexas, como roupas de personagens por exemplo.
O Shear controla a maleabilidade do tecido e o Damping controla novamente a ocilação, mas não tem relação de valores com o Damping do Simple Force Model, se colocar valores altos para endurecer o tecido, ele se comportará de forma incorreta, pulando longe quando colidir com a esfera. Se deseja fazer um tecido duro, ou mesmo simular papel, cartolina, papelão e até folha de zinco, você deve aumentar o valor de Bend, assim, o tecido se comporta como mostra o vídeo ao lado. O Reactor Cloth pode ser muito útil para simular estes elementos, apesar do nome Cloth.
Mas se deseja um tecido que se deforme mais, parecendo bem leve e maleável, você deve diminuir bastante o valor de Bend e de Damping, como mostra a imagem ao lado. Assim, o tecido se comportará de forma mais leve, como mostra o vídeo ao lado. Você pode abrir a janela de Preview do Reactor para ver o resultado das mudanças de configuração sem precisar renderizar, numa máquina moderna deve simular em tempo real, caso contrário, você pode criar a simulação de verdade e depois usar o Make Preview do menu Animation, para fazer um vídeo de exemplo da animação, neste caso, você pode aplicar o Mesh Smooth ou o Turbo Smooth no tecido, para deixá-lo mais suave.
Se quiser simular um tecido borrachudo, bem elástico, você deve diminuir o valor de Stretch, quanto mais próximo de 0 for este valor, mais elástico ficará o tecido. Quanto mais próximo de 1 for este valor, menos elástico ficará o tecido. A opção Complex Force Model permite maior controle neste sentido, porque a elasticidade é separada da rigidez.
O grupo Fold Stiffness permite refinar a simulação controlando o comportamento das dobras modeladas no tecido e formadas durante a simulação. Por padrão está marcada a opção None, indicando que essas configurações não estão sendo usadas. A opção Uniform Model só fica habilitada se estiver definido Simple Force Model no grupo acima. Então, mude para a opção Simple Force Model e teste a atuação do Uniform Model. O valor de Stiffness dele permite ajustar melhor a dureza do tecido no método Simple Force Model, funciona da mesma forma, com valores baixos o tecido fica mais maleável nas dobras ou ao dobrar-se, com o valor 1, o tecido fica mais rígido. Se colocar 1 no Stiffness do Simple Force Model e também no Stiffness do Uniform Model, o tecido ficará o mais rígido possível neste método, como mostra o vídeo ao lado. Se colocar zero nos dois Stiffness, o tecido ficará o mais maleável possivel neste método.
Neste grupo também tem a opção Spatial Model, que permite um controle maior sobre as dobras do tecido. Essa opção fica disponível tanto no Simple Force Model como no Complex Force Model, geralmente é usada em conjunto com Complex Force Model, quando vai fazer uma simulação mais complexa de tecidos, principalmente no caso de roupas para personagens animados.
O Stiffness controla a rigidez nas dobras ou quando o tecido se dobrar. O Distance controla o grau das dobras e das ondulações, valores menores deixam o tecido mais maleável, como mostra o vídeo ao lado, valores maiores deixam o tecido mais rígido. O Spread Angle define a partir de que ângulo duas faces não coplanares são consideradas uma \"prega\" no tecido, uma dobra, um detalhe. O Split Angle define o grau em que as \"pregas\" serão consideradas de acordo com a malha original que forma o tecido, ou seja, nas dobras modeladas, adicionando rigidez de acordo com este valor. Numa simulação complexa, como um vestido de personagem por exemplo, o valor zero deixaria a parte do torax mais firme, como deve ser, e a saia ficaria mais maleável, pois é toda ondulada.
Na opção Start With Current State, o tecido é calculado a partir do estado atual, normalmente ela deve estar habilitada.
Até o Max 5 o programa vinha com a versão 1 do Reactor, essa opção tinha o nome de Use Current State, como mostra a segunda imagem ao lado. Se desabilitar essa opção no caso do nosso primeiro exemplo, onde o tecido está sobre a esfera depois que simulamos na janela de Preview e clicamos na opção Update Max, o tecido não iniciaria a animação sobre a esfera, a animação iniciaria com o tecido esticado na posição original.
O Constrain Deformation permite controlar o quanto o tecido pode se deformar. Quando ele está habilitado fica disponível a opção Max (%), onde você define a porcentagem de deformação do tecido, usando valores altos, o tecido se deforma bastante, usando valores baixos, o tecido se deforma pouco.
O Clear Keyframes só existe a partir do Max 6, ele permite deletar os Keys internos criados pelo Reactor na simulação, o que era impossível na versão anterior. Assim, você consegue voltar com o tecido para posição original sem precisar deletar o modificador Reactor Cloth. Acima do botão fica indicado a quantidade de Keys gravados, se apenas posicionou o tecido sobre outro objeto, aparece 1 Keyframe gravado, clicando no botão Clear Keyframes, ele volta para a forma original.
Por fim, veremos os recursos para anexar partes do tecido em outros objetos ou deixá-los fixos no espaço, permitindo resolver uma gama muito maior de situações, desde simples bandeiras até roupa de personagens.
Clicando sobre o Reactor Cloth na janela do Edit Stack no menu Modify, ou clicando no sinal (+) e selecionando Vertex, fica disponível a seleção de vértices do modificador e aparece o menu Constraints, como mostra a segunda imagem ao lado, selecione os vértices que deseja manter fixos no espaço, como mostra a primeira imagem ao lado, depois, clique no botão Fix Vertices. Faça a simulação novamente e veja, agora o tecido fica preso nos locais que definiu, como mostra o vídeo ao lado. Volte no menu Constraints, selecione o item que foi criado no quadro dele e clique no botão Delete Constraints, assim, os vértices voltam ao normal e não ficam mais fixos. Agora, ainda com alguns vértices selecionados no tecido, clique no botão Attach to Rigid Body, aparece o menu Attach to Rigid Body, como mostra a terceira imagem ao lado. Clique no botão Rigid Body e selecione a esfera, assim, o tecido fica peso na esfera pelos pontos que indicou e será puxado por ela. Essa opção é muito importante, serve para simular bandeiras, cortinas, faixas e permite interagir Rigid Body com Cloth. A opção Do Not Affect Rigid Body desabilita a possibilidade do tecido modificar a posição do Rigid Body na colisão entre os dois.
A opção Ignore Collisions desliga a colisão do tecido com o Rigid Body, deixando ele atravessar o mesmo. O Attach To Rigid Body não serve para adicionar roupa num personagem, porque o personagem não é um Rigid Body, sua malha se deforma na animação conforme ele se move, sendo assim, ele é considerado pelo Reactor como um Deform Mesh. Quando for um personagem, você deve adicioná-lo numa coleção Deform Mesh Collection, que fica entre as opções do Reactor no menu Creat>Helpers, e usar o botão Attach to DefMesh no menu Constraint do Reactor Cloth, assim, aparece o menu Attach to DefMesh com o botão para escolher o corpo do personagem.
É bem simples colocar roupa com o Reactor, o segredo é selecionar os vértices da gola e das mangas para anexar no corpo do personagem com o Attach to DefMesh. A partir do 3ds max 8, o programa ganhou um novo recurso específico para criar e animar roupas, você pode ler sobre isso na seção Artigos do site www.tresd1.com.br. O botão Keyframe Vertices define que os vértices selecionados serão animados pelo usuário.
Até o Max 5 este procedimento era diferente, era necessário aplicar um Modify Mesh Select entre o objeto e o Reactor Cloth, como mostra a primeira imagem ao lado, para poder selecionar os vértices que devem ficar soltos usando o Sub-Object Vertex do Mesh Select, pois vão ficar fixos os vertíceis que não forem selecionados.
Dentro do Reactor Cloth havia o grupo Vertex Selection, como mostra a última imagem ao lado, neste grupo você deve escolher Non-Selected are Fixed, para deixar fixo os vértices que não foram selecionados.
A opção Non-Selected are Unyielding define que os vértices serão animados por você. A primeira opção ignora qualquer seleção e o Reactor Cloth atua normalmente sobre todo o objeto.
Para anexar num Rigid Body era necessário aplicar o modificador Attach To Rigid Body acima do Reactor Cloth, nele aparece o menu com o botão para escolher o Rigid Body.
Com isso você pode fazer animações realistas de tecidos em diversas situações, como mostram as animações abaixo, toalhas, panos pendurados, cortinas, colchas, faixas, roupas e muitas outras. Na primeira animação ao lado, eu fixei os vértices das pontas do pano no espaço e joguei a bola contra ele, da mesma forma que foi explicado no tutorial Reactor 1 aqui no site www.tresd1.com.br. Na segunda animação, eu também fixei os vértices das pontas do pano no espaço, mas criei colunas fazendo parecer que o tecido está preso nelas, depois, deixei um Teapot cair sobre o tecido. Só é necessário anexar os vértices no Rigid Body quando o Rigid Body for interagir com o tecido na animação, como uma bandeira por exemplo. Você também pode usar o modificador Garment Maker para criar roupa ou tecido, da mesma forma que é feito com o Modify Cloth presente a partir do Max 8, depois, basta colapsar e usar com o Reactor Cloth.
Segundo exemplo de animação com o Reactor Cloth, mostrando o tecido preso funcionando como uma rede na interação com Rigid Body.
Para simular roupas você precisa fixar os vértices da gola da camisa e as vezes também da borda das mangas no corpo do personagem, mas ele não é um Rigid Body, ele é um Deformable Mesh, como expliquei mais acima, use o Attach to DefMesh para anexar os vértices nele. Certamente é possível obter ótimos resultados e o Reactor oferece certos recursos que o Modify Cloth não oferece, mas como eu disse antes, no caso de roupas complexas, é melhor usar o Modify Cloth, pois ele oferece recursos mais robustos para este tipo de situação, você pode ler sobre o Cloth na seção Artigos aqui do site www.tresd1.com.br.
Andre Luiz Buttignoli Vieira
Faça o login para poder comentar
VOCÊ TAMBÉM PODE SE INTERESSAR POR:
Usuários conectados
Total de mensagens publicadas pelos membros da comunidade: 711048.
Total de membros registrados: 138517
Últimos membros registrados: luciano pr, Davis123, diabecode, aldiriank1, nexagenkopen, GoldenRevivePlus, TroviranKapselnPreis, Williamcharses.
Usuário(s) on-line na última hora:
1237, sendo 14 membro(s) e 1223 visitante(s).
Membro(s) on-line na última hora: Roberto Movanni, Eduardo Ramos, holtenodro, Thiago Couto, Geraldo Nunes, Lucas Reis, tsmodelagem3d, klogg, Ronaldo, Paulo Rodrigues Lima, Ricardo Paranhos, Osvaldo Arquiteto, Duda, Lisandro.
Legenda: Administrador, Especial, Moderador, Parceiro .