Tutoriais - Tutoriais dos usuários

MassFX Universal Constraint

Hoje vamos falar da parte ?avançada? do MassFX, avançada por que sinceramente eu não acho que pessoas com conhecimento básico conseguem desenvolver suas próprias simulações sem antes consultar um material explicativo, não é como matemática aonde 1 + 1 = 2, neste recurso você precisa pensar, e pensar muito pra entender, pois existem várias formas de configurá-lo, estou falando do Constraint do MassFX, mas ai você caro leitor me pergunta, o que seria esse Constraint? O que ele faz? Eu já bati de frente com nele várias vezes mas nunca entendi, pra que que serve?

Bem, vamos com calma pois acredito que se tenha muita dúvida quanto ao seu uso. O que precisamos saber de imediato é, o Constraint significa restrição a um movimento, ou seja, quando aplicarmos ele em algum corpo nós vamos estar falando para o MassFX que este corpo terá uma restrição de movimento na simulação. O MassFX possui 6 restrições, as quais irei calmamente explicar uma por uma, porém não vou demonstrar todas por hora, pois o tutorial ficará muito extenso e meu conteúdo vai acabar em uma semana hahahaha.

Vamos lá primeira coisa que precisa ser entendida é: os objetos que irão receber o Constraint precisam ser Rigid Body, caso contrário, quando você aplicar um Constraint em um objeto que não seja Rigid Body o MassFX entra em ação e lhe fala que este não pode ser aplicado pois o objeto não possui um Rigid Body, fácil né?

Ficará mais fácil de vocês entenderam cada Constraint se olharem para o ícone que cada uma possui, elas falam por si só, aqui vão suas características:

Rigid Constraint: Altera os menus Swing e Twist para Blocked, ou seja ela prende os objetos tanto na oscilação quanto na torção para fazer com que dois corpos possuam a mesma transformação quando a simulação começa.

Rigid Constraint Slide: Uma restrição Slide é semelhante a uma Rigid Constraint, mas com a opção de alinhamento no eixo Y como limitado ativado, ou seja, os movimentos ficam limitados ao eixo Y, não preciso dizer que esse movimento é mesmo de engatilhar uma arma né? hahaha.

Hinge Constraint: Também é similar ao Rigid Constraint, mas limita o ângulo do Swing de 1 para 100 graus e faz com que o movimento seja igual ao de uma dobradiça.

Twist Constraint: A Twist Constraint nada mais é do que uma restrição de torção ao objeto, ela é similar a Rigid Constraint também, porém, o menu Twist é setado como ilimitado. Então o objeto pode se retorcer para qualquer lado.

Universal Constraint: Essa restrição é muito legal, pois se aplica a quase todos os casos, ela também é derivada da Rigid Constraint, e vem com os menus Swing 1 e Swing 2 setados em 45 graus.

Ball & Socket Constraint: Ball & Socket também é legal da pra usar ela em simulações de luminárias, pendentes, lustres e coisas do tipo. Por padrão ela vem com os menus Swing 1 e Swing 2 setados em 80 graus e com o menu Twist ilimitado, podendo assim girar para qualquer lado.

Para nosso tutorial de hoje eu preparei uma cena muito bacana, uma corda presa a toras de madeira simulando uma cerca do estilo rústico, ou pra quem prefere cowboy hahahahaha. Também vou disponibilizar para download pelo menos motivo do tutorial passado =] depois que baixarmos a cena vamos abrir ela e teremos essa cara:
Legal já temos o arquivo para estudar, então vamos começar a desvendar esse MassFX Constraint!!

A cena está configurada por questões de praticidade em entender como funciona o nosso Universal Constraint que agora como já sabemos será o nosso modo de restrição usada para simular a corda caindo. Eu vou deixar quieto por enquanto a nossa cena e partir pra um reset no max para que a gente possa fazer juntos e explicar direitinho como funciona.

Então para começar temos que ter um workflow, tenha em mente o tamanho da corda que você quer fazer no caso da nossa cena a corda tem o tamanho aproximado de 3 metros e meio não sei a certo pois vocês não conseguem ver no print que existem 2 nós nas extremidades da corda, e sim eles são grandinhos hehehe. Vamos criar então de um modo prático um sistema de Bones, se você nunca trabalhou com Bones, aqui você vai aprender na marra por que vamos precisar deles (não necessariamente precisa, se você tem uma caixola boa e já viu que pode fazer de outro modo).
Crie um plane de 10x300cm com uma subdivisão de 2×30:
Agora vamos habilitar o Snap to Vertex para facilitar a criação dos nossos Bones:
Vamos ao menu Systems, selecione Bones, altere os valores de Widht e Height para 3x3cm respectivamente, agora crie os bones do começo ao fim do plane usando a linha central, use a view Top para visualizar melhor o plane, lembrando que seu Snap deve estar ligado para que os bones sejam criados a partir de cada vértice:
Beleza bones criados, não precisamos mais do plane então delete-o. Agora vem um passo importante, os bones como muitos sabem são usado para criar de Rig de malhas, portanto, eles vêm por padrão unidos por Link, e em nosso caso não vamos usar este recurso pois temos o nosso MassFX para criar isto, para quem não sabe deslinkar bones selecione todos eles e clique no botão Unlink Selection para assim deslinkar os bones uns dos outros (deletem este último bone criado ele é inútil para nós):
Agora vamos aplicar o Rigid Dynamic Body em todos os bones para que após isso possamos inserir o Universal Constraint:
Feito, a primeira parte está ok. Bem agora vamos partir para o modo hard insane crazy hahahahaha!!! Consiste basicamente em selecionar bone por bone e aplicar o Universal Constraint, não me culpem por não ter um método mais rápido e prático como o de aplicar Rigid Dynamic Body, infelizmente é assim que a Autodesk achou melhor para os usuários. Então selecione o primeiro bone da esquerda e aplique o Universal Constraint que eu vou explicar qual é a mágica:
Depois que você cria um Universal Constraint aparece um Helper na viewport em forma de diamante vamos dizer assim, não se apavorem, esse Helper não precisa ter um tamanho exato para que a simulação seja excelente, ele apenas é uma forma de avisar ao usuário que os objetos estão com o Universal Constraint aplicado nele. Ainda com o Snap ligado repare que ao movimentar o mouse o diamente aumente e diminui mas sempre tentando pegar o ponto mais próximo para ser alinhado, então mais uma vez por questão de estética aponte o mouse sobre o último vértice do bone para que o Helper tenha o tamanho exato de 0,835. Agora vejam no print a forma como deve estar configurado o Helper:
Notem que eu alterei completamente a configuração do Universal Constraint, fiz uma bagunça total hahaha, isso tem que ser feito pois quero que a simulação tenha total liberdade, tanto nas Swings Y quanto no Z. Agora vamos linkar o primeiro bone com o segundo clicando em Parent e dando pick no bone seguinte como na imagem abaixo:
Opa temos nossa primeira restrição configurada! Bom legal até agora tudo tranquilo, porém, a partir de agora começa virar trabalho de operador de telemarketing, repetição de processos. A gente pode configurar um por um, mas a questão é, vocês tem tempo? Hahahaha eu não tenho! Então eu vou pegar e linkar mais uns 5 bones e depois vou copia-los para baixo para multiplicar o que vai nos dar um ganho de mais de 50% de tempo, então vejam só:
Interessante, mas poderíamos ter feito então só 6 bones né Renato? Claro poderíamos sim, mas, eu sou mal hahahaha! Galera agora temos que multiplicar esses 6 bones até o final para fechar o tamanho de 3 metros que queremos, mas reparem que temos alguns desfalques nos nossos bones vamos resolve-los no próximo passo:
Para resolver esse pequeno problema vamos selecionar os bones que não tem o Parent definido e vamos defini-los setando o bone seguinte como Parent, que é o que eu lhes ensinei anteriormente, selecione o bone aplique o Universal Constraint altere os campos dos Swings e Twist e clique em Parent para adicionar o bone da frente ao link, faça isso com os 4 desfalques até que todos os bones estejam linkados:
Muito bem continuando, agora que temos nosso Universal Constraint configurado podemos deletar os bones de cima e dar um merge dos objetos que iremos usar na simulação que está dentro do arquivo massfx_constraint_cena.rar. O que vamos fazer é posicionar nossos bones na altura da corda (exatamente posicionado eim!!), selecionar a corda e aplicar o modificador Skin na corda. Reparem que ao dar merge temos a corda, as toras de madeira, este gancho ridiculamente ridículo que eu fiz hahaha, e estas placa de interrupção posicionadas em frente as toras que usam os recursos de Static Rigid Body com o modo Mesh Type Original que eu expliquei no tutorial passado (detalhe a corda já esta com Skin pois vamos usa-la no studio de luz):
- Renato tem muito bone pra pouca corda ai cara! Hahahaha é tem sim, calculei mal, mas tudo bem vamos deletar os que não vamos usar e já aproveitar para adicionar os bones ao Skin da corda:
Pronto, mais uma parte concluída, porém, temos que conferir como está o Skin da corda, será que está bem envelopado? Bem se não estiver vocês podem fazer isso manualmente, editando cada envelope e abrangindo sua área de alcance, para acessar os envelopes clique no botão Edit Envelopes:
É está ótimo o envelopamento, reparem que os helpers sumiram e os bones também, simplesmente por que eu fui em Display e marquei as opções Helpers e Bones Objects em Hide by Caregory, só para ficar mais limpa a viewport, vamo fazer um teste agora de como está a simulação, ah claro esqueci de falar para vocês configurarem o MassFX, vamos lá:

Reparem que tivemos um pequeno problema de segmentos, a corda ficou reta aonde deveria ficar mais arredondada, isso se deve pois fizemos poucos bones e muito grandes, vamos partir para a aula de matemática do Profº. Paulo que todos nos gostamos hahaha, quanto mais pontos estiverem em uma linha maiores são as chances desta linha ter uma curva perfeita, sem lados pontiagudos. O mesmo acontece com nossos bones, por termos poucos bones a corda não teve a devida colisão que tem na vida real, justamente por ter poucos pontos de torção, mas não se preocupem para a cena de studio eu fiz um Universal Constraint bem subdividido e excelente para o resultado que queremos.

Não esqueçam do Bake All após a simulação!
Bem chegamos aonde eu não queria, o fim. Este exemplo que usamos hoje mostra em como os plugins de hoje estão se tornando cada vez mais aperfeiçoados e nós temos que estar preparados para estas novas tecnologias pois o nosso futuro depende claro da nossa dedicação hoje!! É isso pessoal encerro aqui mais um tutorial didático e exemplificado para que todos possam ter um conhecimento abrangente e sólido, não apenas decorado como vejo muito por ai. Muito obrigado pela atenção e os elogios de todos vocês! Até o próximo galera =]

Faça o login para poder comentar

Marcelo Rezende Comentou em 04/09/2012 11:36 Ver comentário
Tutan Comentou em 04/09/2012 10:25 Ver comentário
renatoconti Comentou em 04/09/2012 10:07 Ver comentário
Estrazulas Comentou em 04/09/2012 09:29 Ver comentário
renatoconti Comentou em 04/09/2012 05:30 Ver comentário

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 707119.

Total de membros registrados: 134880

Últimos membros registrados: joaoddt, Guifaleta, isabella19, Luciana Pereira, bia199612, Wiliams, Jacson Combos, Henrique Silva.

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

Membro(s) on-line na última hora: Le_Andro, Andrezão de Paula, KEYUR007, Edu_Sousa, nildoe.

Legenda: Administrador, Especial, Moderador, Parceiro .

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