Introdução ao MAXScript no 3dsmax

No aprendizado de qualquer software 3d é necessário passar pelas mais diversas áreas da produção em 3d que envolvem o uso de modelagem poligonal, animação, texturas, partículas e efeitos. Mas, existe uma dessas áreas relacionadas aos softwares 3d que todos os artistas evitam de maneira semelhante a como os vampiros fogem da cruz, se bem que os vampiros modernos não tem mais esse problema. Estou me referindo a parte relacionada a criação de scripts e rotinas nesses softwares 3d. Sempre que tenho a oportunidade de abordar esse tipo de ferramenta nas minhas aulas, encontro de imediato uma resistência ao uso das linguagens.

A resistência em si é perfeitamente compreensível nesse tipo de situação, pois o perfil das pessoas que procuram um software 3d para produzir imagens ou animações é mais voltado para as artes e não para programação.

O uso de linguagens de script para automatizar tarefas em softwares 3d é uma das qualidades mais desejadas em artistas 3d, pois o conhecimento desse tipo de linguagem e a sua aplicação em softwares 3d não é algo comum de se encontrar. As pessoas que conhecem esse tipo de ferramenta podem trabalhar em grandes projetos com a criação de rotinas ou ferramentas especializadas em adicionar características e determinados objetos. Por exemplo, ao selecionar um modelo 3d poligonal é possível criar um pequeno script que adiciona grama ou vegetação nessa superfície já considerando os ajustes necessários em partículas, materiais e outras propriedades dos objetos necessários para criar a grama.

Se você for usuário do 3dsmax, encontrei um tutorial que deve ser do seu interesse, principalmente se você quiser melhorar a sua gama de ferramentas com o uso de scripts. O tutorial a seguir é uma introdução básico ao MAXScript, que é a linguagem usada pelo 3dsmax para gerar esse tipo de rotina. É uma ótima oportunidade para aprender, principalmente se você nunca teve contato com esse tipo de rotina no 3dsmax.

Para as outras pessoas que não tem interesse no 3dsmax e no MAXScript, a minha recomendação é estudar a linguagem Python. Além de ser a linguagem usada pelo Blender, o Python é amplamente usado como ferramenta de script para softwares como o Softimage, Maya e até mesmo o 3dsmax pode usar Python com o uso de uma ferramenta que converte as declarações em Python para o ambiente do 3dsmax.

Curso completo e gratuito sobre MAXScript básico para 3ds max

Os meus alunos sempre me fazem diversas perguntas nas minhas aulas de computação gráfica 3d, e entra as que mais escuto está o seguinte questionamento: “como me diferenciar no mercado?”. Essa e uma pergunta difícil de responder, que poderia muito bem ser rebatida com um simples “seja o melhor”. Mas, então eu receberia outra pergunta: “O que estudar para ser o melhor?”. Em uma área dominada por artistas 3d que podem aprender o básico do software em pouco tempo, muitas vezes é preciso se desviar um pouco do caminho para obter destaque.

Uma das coisas que sempre recomendo para meus alunos é o investimento não apenas na parte visual da ferramenta 3d que ele escolhe estudar, mas também na parte de rotinas baseadas em scripts. Esse tipo de conhecimento é muito valorizado em estúdios, pois com ele é que podemos economizar tempo criando rotinas para automatizar processos antes repetitivos.

Por exemplo, para os usuários de 3ds max uma boa solução é aprender um pouco sobre MAXScript que é a linguagem de script disponível para o 3ds max. Com esse tipo de ferramenta podemos trabalhar com projetos de animação de maneira muito rápida, pois será possível elaborar ferramentas personalizadas para trabalhar com qualquer tipo de projeto. Nesse último final de semana encontrei um recurso que pode ajudar a todos que estejam interessados em aprender mais sobre scripts para 3ds max. Um curso básico e gratuito sobre MAXScript para 3ds max está disponível nesse canal do Vimeo. O instrutor dos vídeos é ninguém menos que Jon Wainwright, o criador do MAXScript.

O material está dividido em 26 lições em que o autor do material explica o funcionamento do MAXScript e ajuda a desenvolver algumas ferramentas interessantes. Por exemplo, no vídeo abaixo podemos acompanhar a explicação sobre o funcionamento de um script que distribui árvores nas laterais de uma estrada, ajudando a povoar o cenário com vários modelos 3d.

5.6 TreePlanter – Scene Generation using Mesh Sampling from JohnW on Vimeo.

O único ponto negativo, caso você tenha assistido um dos vídeos, é que o material está todo gravado usando o 3ds max 5. Sim, pode até paracer muito antigo, mesmo sendo um pouco velho o conteúdo apresentado mudou muito pouco em versões mais recentes do 3ds max.

Recomendo assistir e estudar com muito cuidado e atenção ao material para aplicar de maneira correta os conceitos nos seus projetos. Quem sabe assim você já não começa uma nova fase nos seus estudos sobre modelagem 3d e animação?

Script ajuda a regularizar edge loops no 3dsmax

A chamada modelagem poligonal é uma das técnicas mais usadas para criar modelos 3d devido a sua simplicidade em termos de ferramentas, e pelo seu poder em termos de criação. Desde os usuários iniciantes até avançados, todos podem usar as mesmas ferramentas para criar modelos 3d. Entre as características desse tipo de modelagem está a manipulação dos chamados edge loops. Um edge loop nada mais é que a seqüência de arestas conectadas que circunda, ou perfaz uma linha sobre a superfície de um objeto. Na verdade o termo loop requer que as arestas circundem o objeto, mas em termos práticos uma seqüência de arestas pode também ser chamada de edge loop.

Um dos momentos mais delicados do processo de modelagem é a manipulação desses edge loops, principalmente quando o artista precisa realizar operações de translação ou escala no objeto. Isso geralmente acaba resultando em pequenos desvios de alinhamento no edge loop, que posteriormente podem prejudicar a finalização e simetria do objeto 3d. Se você for usuário do 3ds max, descobri um script gratuito muito interessante que pode ajudar a solucionar esse tipo de problema. A ferramenta se chama Loop Regularizer para 3dsmax, e seu objetivo é alinhar os edge loops de qualquer polígono.

RegularizeEdgeLoop.jpg

O uso da ferramenta é bem simples, e consiste apenas no acesso a opção Regularize que fica disponível no quad-menu depois que o script é instalado. Após acessar a opção, o script tentará organizar o edge loop de maneira uniforme.

Com esse tipo de opção disponível na ferramenta de modelagem, podemos até mesmo deixar um pouco de lado o cuidado com a estrutura e alinhamento das arestas. Os problemas que poderiam ser causados por desvios no alinhamento dos edge loops, apareceriam com mais ênfase caso fosse usado um tipo de modificador do tipo Mirror ou mesmo a conexão com outros modelos. A regularidade e alinhamento das arestas e topologia de maneira geral é fundamental para manter a compatibilidade, e principalmente o controle sobre atualizações nos modelos 3d.

Para quem não tem uma ferramenta como essas disponível, o aconselhável é criar cópias de segurança dos modelos 3d dentro do próprio arquivo em camadas ocultas. Sempre que for necessário fazer correções, poderemos recorrer a essas cópias e fazer uma pequena “cirurgia” no modelo 3d.

Animação com 3dsmax: Criando tentáculos com MAXScript

A animação de personagens sempre é um assunto que demanda atenção e muito trabalho para conseguir realizar os movimentos e dinâmica para representar bem os movimentos desejados. Mas, antes de conseguir trabalhar com a animação em si, precisamos configurar os personagens ara receber as animações. Em grandes estúdios e empresas com divisões mais claras de tarefas, existem artistas especializados apenas na configuração e ajuste dos personagens, para que os mesmos recebam os movimentos. Algumas pessoas, inclusive eu, consideram que o ajuste desses personagens é também uma arte assim como a animação.

Para conseguir ajustar personagens 3d, podemos usar diversas técnicas e artifícios para configurar esses personagens, entre essas técnicas temos as que envolvem animação procedural. Esse tipo de animação é configurada de maneira que algoritmos ou scripts controlem o movimento dos objetos, para deixar o controle de múltiplos personagens ou criaturas como um polvo com vários membros mais simples.

Um animador de personagens chamado Félix Joleanes, conseguiu elaborar um script em MAXScript que simula de maneira verossímil o movimento orgânico de tentáculos no 3dsmax, que podem ser aproveitados nas mais diversas animações. O vídeo abaixo mostra um exemplo do uso do seu script com um tipo de sentinela estilo Matrix:

Tentacle rig from Felix Joleanes on Vimeo.

O script pode ser copiado de maneira gratuita no endereço indicado no parágrafo anterior e aproveitado para projetos envolvendo personagens semelhantes. Se o seu interesse é também em aprender como o autor conseguiu chegar nessa ferramenta, o artista apresenta as equações que fizeram com que ele chegasse até o resultado final na mesma página.

Já comentei sobre esse tipo de ferramenta aqui no blog anteriormente, mostrando outra técnica para criar de maneira automatizada tentáculos no 3ds Max, que podem também interessar aos animadores e usuários do software.

Esse é o tipo de ferramenta que sempre queremos ter por perto em projetos que envolvem animações ou movimentos complexos de personagens. É por esse motivo que as empresas contratam engenheiros de software ou pessoas com experiência no desenvolvimento de scripts para animação. Dependendo do projeto é possível ganhar muito tempo com ferramentas personalizadas para animação como essas, principalmente em animação de personagens. Por isso, sempre recomendo para meus alunos estudar tanto a parte artística da animação 3d como a técnica a fundo.

Plugin gratuito para 3ds Max ajuda na animação de personagens

Na construção de qualquer tipo de estrutura dedicada para animação 3d envolvendo hierarquias de objetos, os artistas precisam escolher o melhor método para relacionar os objetos 3d. Esses métodos se resumem em cinemática direta e inversa, podendo controlar a influência que cada objeto exerce sobre os outros na hierarquia. Na cinemática direta, também conhecida pela sigla FK (Forward Kinematics), os objetos em níveis mais altos controlam e influenciam os níveis mais baixos. Já com a cinemática inversa, conhecida pela sigla IK (Inverse Kinematics), acontece o oposto. Para estruturas de animação o mais comum em personagens é usar a cinemática inversa nas pernas, para evitar que o personagem passe do nível do piso no cenário, e cinemática direta no resto do corpo.

Mas, a regra da cinemática inversa para as pernas nem sempre é vantajosa para o animador. Algumas situações demandam que o sistema seja alternado entre a cinemática direta e inversa. Para isso existem diversas técnicas e truques que podemos usar, sendo que vários dessas técnicas envolvem o uso de scripts ou plugins. Os usuários do 3ds Max podem aproveitar um plugin gratuito desenvolvido por um artista da Colômbia, chamado Felix Joleanes. A ferramenta se chama IKFK Solver (3ds Max 9 e 2010) e pode ser copiado de maneira gratuita nesse endereço.

Além de oferecer o download do plugin para o 3ds Max, o artista ainda dispõe de diversos vídeos com demonstrações de como aproveitar e usar o plugin para animação.

plugin-3ds-max-gratuito-animacao

No vídeo de demonstração é possível perceber como fica simples e trabalho de animação e a mudança entre os sistemas de animação, com a criação de uma perna em 3d. Essa mesma perna recebe um Solver desse tipo e seu sistema de hierarquia pode ser ajustado para funcionar com IK ou FK facilmente. O pequeno tutorial apresentado no vídeo mostra como começar o movimento com IK e depois mover a estrutura em FK.

Esse tipo de dinâmica é muito útil para fazer movimentos em que o personagem está caminhando, mas depois de um salto ou pulo as pernas acabam se movendo sem referência com o piso. É nesse ponto que a animação com IK não serve mais.