Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Quintino3D   Blumenau, SC - AC
arbarcelos   Porto Alegre
alej0   Colombia
Leandro Mendonça   Curitiba PR - PR
Grasiano   Campo bom - RS - RS

Portfólios Ver Mais

2R3D   Porto Alegre - RS
Bruno Souza   Brasília - DF
Patti   Praia Grande - SP

Tutoriais - Todos os tutoriais

Animando uma corrente com o Reactor

Para quem acha que o Brasil está fora do mercado de game, não imagina quantas companhias estão sendo formadas neste setor e o quanto tem avançado as maiores companhias produtoras de games do país, procurando realmente fazer a diferença não apenas no mercado nacional e sim internacional. Um perfeito exemplo desse sucesso é o jogo Erinia www.erinia.com.br desenvolvido pela Ignis, que tem a AZIMUTDIGITAL como parceria tecnológica e representante comercial.

A AZIMUTDIGITAL está fornecendo material e tecnologia para inúmeras companhias do país e atualmente entre alguns dos projetos, estamos trabalhando na animação de abertura de um game. E uma das cenas haverá a animação de correntes e a melhor maneira de gerar o cálculo da dinâmica dos movimentos é utilizando o REACTOR, desenvolvido pela Havok e atualmente incorporado ao 3ds max. Alguns usuários mais experientes do REACTOR irão dizer: \"Ah, mas isso é muito simples, basta criar os elos, colocar todos numa Rigid Body Collection e mandar simular...\". Considerando cada elo da corrente como um objeto para simulação dos movimentos, essa seria uma das soluções, especialmente se tivermos todo o tempo do mundo para esperar o cálculo pesadíssimo e extremamente demorado de centenas de elos interagindo, sem contar o tempo de render. Depois de alguns estudos, chegamos a uma solução muito boa para resolver o problema da simulação de uma corrente, ficando o cálculo bem mais simples e rápido e colocamos neste tutorial. Vamos botar a cabeça pra funcionar e criar, mesclando as ferramentas de IK do 3ds max com as ferramentas de dinâmica do REACTOR, uma simulação de corrente rápida e funcional para qualquer cena.

Antes de começar, vamos padronizar as unidades de medida. No menu Customize do 3ds max, selecione a opção Units Setup. Em Display Unit Setup, selecione o sistema métrico. Depois clique no botão System Unit Setup e selecione a unidade de Centímetros. Exatamente como mostrado na imagem ao lado.
Agora podemos começar a trabalhar na construção da cena.
Crie na Viewport FRONT, um retângulo com as seguintes medidas
Length: 0,1m
Width: 0,07m
Corner Radius: 0,02m
Crie também um círculo com as seguintes medidas: Radius: 0,01m
Faça um loft com essa estrutura para formar o primeiro elo da sua corrente.
Deveremos reduzir a qualidade da malha para que esse pequeno elo não pese na cena quando for multiplicado centenas de vezes.

No menu de Modify, com o elo selecionado, nos parâmetros de Loft, modifique no Roolout Skin Parameters os valores de Shape e Path para 1(um).







Com a estrutura do primeiro elo formada, basta colapsar esta malha para podermos iniciar o processo de clonagem dos elos para fazer a corrente. Selecione o elo, clique com o botão direito do mouse sobre ele e converta-o para Editable Poly.
Devemos fazer apenas mais um ajuste antes de começar a clonagem.

O posicionamento do Ponto Pivot, esse é um dos pontos mais importantes, pois ele vai ser responsável pelos movimentos dos Elos.

Para acertar o ponto Pivot no lugar aonde os elos devem se deslocar, clique no painel Hierarchy e aperte o botão Affect Pivot Only, com a ferramenta Move, mova o Pivot para o lugar demonstrado segunda imagem ao lado. Assim você estará mudando o centro de gravidade desse elo, conseqüentemente o calculo dentro do reactor.
Vamos começar o processo de clonagem.
Selecione o elo, aperte a tecla Shift e mova o elo para baixo, encaixe o Pivot desse novo elo exatamente na parte de dentro do elo original, após, rotacionar em 90 graus.

Acabamos de criar um padrão que irá se repetir em toda a corrente. Vamos selecionar os dois Elos e mais uma vez com o SHIFT clonar movendo para baixo. Mais uma vez posicione sempre no limite da parte de dentro do elo anterior, como mostra a imagem ao lado.

No painel Clone>Clone Options, especifique 10 cópias desse padrão. Neste exemplo vamos usar poucos elos, mas essa técnica serve para qualquer número de elos.
Com a estrutura da corrente formada podemos começar a trabalhar na hierarquia e na dinâmica.

O primeiro passo aqui é fazer o link de todos os elos, como no nosso caso, colocamos o Pivot na parte de cima dos elos, eles devem ter a ligação de baixo para cima. Assim, pegue o último elo que foi criado e faça o link com seu posterior e assim por diante, dois a dois, utilizando a ferramenta Select and Link.
Com toda a estrutura de hierarquia montada, o próximo passo é escolher qual sistema de IK será utilizado para simular esta corrente. Como comentado anteriormente, vamos utilizar para a dinâmica desta corrente, parte do sistema de animação por hierarquia do próprio 3ds max e parte do sistema de dinâmica do REACTOR.
Neste caso, para poder fazer a interação com o REACTOR, utilizaremos o Sistema de Spline IK. Para isso teremos que criar uma linha que será a guia para a estrutura da corrente.



Posicione a linha exatamente no centro da corrente, e não se esqueça de dividir os segmentos para criar alguns vértices de controle. Neste caso, dividimos em 10 partes e transformamos todos os vértices em Smooth.
Como mostra a imagem ao lado, o First Vertex deve ficar exatamente na posição onde está o elo pai de todos na hierarquia. Para isso o ideal é criar a linha de cima para baixo.




Para criar o sistema de Spline IK. Selecione o último elo da corrente, no menu Animation, opção IK Solvers, selecione o Spline IK Solver. O Spline IK funciona com dois cliques: O primeiro clique é para especificar quem é o elo pai desta cadeia, portanto clique no elo de cima. O segundo habilita escolher qual linha será responsável pelo controle da cadeia, simplesmente clique sobre a linha e o sistema estará ativo.
Neste momento estamos numa parte importante do projeto. A corrente pode ser perfeitamente animada manualmente. Mas não é isso que desejamos. Como o controle de toda essa cadeia de elos pertence exclusivamente à linha que criamos, vamos nos aproveitar do sistema de dinâmica do REACTOR para linhas, o sistema ROPE.



Crie uma caixa com as seguintes proporções:
Length: 0,4m
Width: 0,4m
Height 0,1m

Alinhe esta caixa com o elo pai da corrente e posicione-a em seguida um pouco acima, como mostra a primeira imagem ao lado.

Crie também um objeto qualquer para ficar na ponta da corrente.
Na segunda imagem ao lado temos como exemplo o objeto Hedra, mas pode ser qualquer outro objeto.

Neste ponto, os elos são totalmente dispensáveis, visto que tudo o que tínhamos que fazer com eles já foi feito.
Lembrem-se de que quem vai ser responsável por toda a animação e dinâmica da corrente é a linha. Para não haver confusão, o melhor neste caso seria esconder os elos.
Vamos começar a trabalhar com o REACTOR.
Selecione a caixa recém criada e atribua propriedades físicas a ela. Para isso, vá até o painel de Utilities e selecione o REACTOR, no roolout de Properties dê os seguintes valores:
Mass: 0kg
Elasticity:0,3
Friction:0,3

Marque também a opção de Unyielding, pois esta caixa vai ser animada manualmente, mas vai influenciar na dinâmica de outros objetos.
No Rollout Simulation Geometry, marque na parte de Convex a opção Bounding Box, pois este é o corpo de simulação adequado para caixas.
Agora selecione o Hedra ou qualquer outro objeto que você tenha criado para ficar na ponta da sua corrente, e marque as seguintes propriedades físicas.
Mass:15kg
Elasticity:0,3
Friction:0,3
Em Simulation Geometry, marque em Concave (no caso do Hedra) a opção Use Mesh.
Selecione a linha e vamos começar a tratá-la como uma corda. Na Barra de ferramentas do REACTOR e com a linha selecionada, aplique o modificador Rope Modifier.
Obs.: na configuração padrão do 3ds max, essa barra de ferramenta fica à esquerda das viewports!
Isso fará com que a linha passe a ser tratada como uma corda pelo REACTOR.
Mas a parte mais importante da simulação do REACTOR está na maneira como ele separa as categorias de objetos por \"Coleções\". Cada objeto tem suas próprias coordenadas e propriedades físicas, mas só funcionará se você especificar para o REACTOR como ele deve tratar aquele objeto.
Portanto vamos colocar cada objeto no seu devido lugar. Selecione a caixa e o Hedra e clique no primeiro ícone da barra de ferramentas do REACTOR - Rigid Body Collection. Selecione a linha e clique em Rope Collection (quarto ícone). Selecione novamente a linha e vamos especificar as propriedades da corda.



Atribua os seguintes valores a linha no modificador reactor Rope:
Mass: 3kg
Thickness:0,2m
Friction:0,5
Air Resistance: 0,01
Em Rope Type selecione a opção Constraint, visto que a corda não é elástica, portanto não se estica. Marque também a opção Avoid Self Intersections, isso vai prevenir para que a corda não entre dentro dela mesma.

Vamos trabalhar no painel de Constraints. Mas para isso, devemos selecionar um ou mais vértices da linha que vai ser presa a algum objeto especificado no rollout Attach To RigdBody do modificador reactor Rope.
Na antiga versão do REACTOR, a seleção dos vértices poderia ser através de um modificador de seleção, mas no REACTOR2 que vem com o 3ds max6, essa tarefa está muito otimizada, pois a seleção de vértices e os modificadores de constraints estão todos embutidos no Rope Modifier.

O modificador Reactor Rope possue Sub-Object de vertex, este Sub-Object possibilita selecionar os vértices que serão restritos na linha. Selecione apenas o Vértice de cima da linha e clique no botão Attach To Rigid Body, no Rollout de Constraits. Abrirá um outro Rollout com as opções deste novo constraint criado.
Neste Rollout de Attach to RigidBody, clique no botão \"None\" e selecione a caixa (Box) que foi criada anteriormente. Marque a opção Ignore Colisions, isso evitará que o REACTOR reconheça colisões da corda com a caixa.
Repita esta operação, mas desta vez selecione o último vértice da linha e ligue-o ao Hedra.
Tudo pronto! Agora só precisamos criar um ambiente para que a corrente responda à dinâmica.
Selecione a caixa e simplesmente anime-a do quadro 0 até o 60 andando no eixo X.
Vamos testar a dinâmica.
Vá até o painel de Utilities e selecione o REACTOR.
No Rollout Preview & Animation, marque a opção Update in Viewport e clique no botão Create Animation. O REACTOR vai criar toda a dinâmica da corrente para você. Neste ponto vamos mostrar novamente todos os elos (Unhide all), veja como eles acompanham a linha perfeitamente no filmstrip do projeto em viewport mostrado na imagem ao lado. Bom trabalho!

Para ter acesso aos arquivos .max e ao vídeo do tutorial acesse o site www.azmt.com.br

AZIMUT DIGITAL - AZMT computação e Produções Cinematográficas é revenda e centro de treinamento discreet no Rio de Janeiro. Conta com instrutores altamente capacitados que atuam no mercado de trabalho e contam com apoio e supervisão de um profissional de treinamento da discreet (DTS - discreet training specialist).

Raphael Braga
Coordenador Técnico
[email protected]

Faça o login para poder comentar

emidiodavi Comentou em 11/07/2012 17:12 Ver comentário
Raphael Braga Comentou em 16/06/2011 22:33 Ver comentário

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 710665.

Total de membros registrados: 138143

Últimos membros registrados: fercomin, Lopez31Yasir, Djavan, Ferhsq, mggarcia, rosivalerio, bia.lavagnini, JamilyNepo20.

Usuário(s) on-line na última hora: 1398, sendo 1 membro(s) e 1397 visitante(s).

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

Legenda: Administrador, Especial, Moderador, Parceiro .

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