Aperfeiçoando o Workflow de Animação com Ferramentas Customizadas Alex Ferreira Simões Animador Freelance Joaquim Luciano Nazário Gonçalves Vagalume Animation Studios Nessa palestra iremos apresentar um pouco sobre como funcionam as ferramentas customizadas para aperfeiçoar o workflow de um usuário de Autodesk 3ds Max. As ferramentas são desenvolvidas por método de programação na linguagem de MaxScript no qual o usuário consegue criar uma serie de tarefas assim facilitando trabalhos repetitivos e acelerando o seu workflow de trabalho. Objetivo de aprendizado Ao final desta palestra você terá condições de: Saber o que é linguagem de script e sua utilidade Ter exemplos de ferramentas customizadas auxiliando um projeto de animação Conhecer todo o processo de criação de uma ferramenta desde sua concepção Entender a pipeline de um projeto de animação 3D e aplicar as ferramentas customizadas dentro dessa pipeline Sobre os Palestrantes Joaquim Luciano Nazário Gonçalves Após trabalhar 4 anos na área de animação de personagens como generalista se especializou em Rigging de personagens e scripts para agilizar o processo de animação 3d, trabalha nos softwares 3ds Max e Maya fazendo soluções para o dia a dia de uma empresa de animação. Atualmente atua como Diretor Técnico da Vagalume Animation Studio, participando de diversos projetos como, furnas Queimadas, FakeShower, Guardiões da BiosFera entre outros para publicidade e séries animadas. Alex Ferreira Simões Formado em Design Gráfico pela Faculdades Oswaldo Cruz, com experiência nas áreas de maquete eletronica e animação 3d por mais de 5 anos no mercado, trabalhou em diversos projetos, entre eles os curtas metragem: Dia de Prova e Dia de Carlinhos para a campanha do projeto Adote um Leito da Casa Hope. Ministrou aulas no Senac Consolação por 2 anos e atualmente presta serviços freelance de animação 3d. Contato: alexferreiraa@live.com
O que é linguagem de Script e qual sua finalidade Para que servem as ferramentas As Ferramentas customizadas levam esse nome justamente porque elas têm a característica de ser adaptável ao usuário, assim resolvendo os problemas específicos dentro de um projeto 3D e principalmente para acelerar o seu método de trabalho, reduzindo o tempo levado para tarefas que exigem funções repetitivas. Como se projeta uma Ferramenta Existem alguns passos para o desenvolvimento de uma ferramenta. Primeiramente você precisa entender o problema real do usuário por completo, apos essa análise sobre o problema, você precisa identificar quais seriam as soluções ideais para a resolução desse problema, e após filtrar todas as soluções para esse problema, você precisa viabilizar uma das soluções, levando em consideração complexidade, praticidade e facilidade de entendimento para o usuário. Após esse primeiro passo podemos prosseguir para o planejamento da ferramenta, onde decidimos qual técnica vai ser utilizada (linguagem de script) e projetamos sua interface. O próximo passo é a construção da ferramenta e sua viabilização dentro da pipeline do estúdio. Exemplos de Ferramentas Atualmente dentro de toda pipeline 3d existem diversas ferramentas, todas elas são feitas sobre a necessidade dos usuários. Abaixo temos alguns exemplos: - RandomAll Essa ferramenta é reponsável por randomizar qualquer posição, rotação ou escala de qualquer objeto no 3dsmax, como podemos observar na imagem abaixo. Imagem 1. - Exemplo da ferramenta RandomAll 2
- ConnectMorpher Conecta o morphers para controle facial sem precisar passar por varios links e ajustes de parâmetros, simplesmente conectando o controle ao controlador. -IMAP/RENDER Enviar os renders de uma animação e junto os mapas de IMAP são lançados para serem calculados já entrando com proridade máxima. O render entra na lista de jobs como dependente desse IMAP. - List Scripts Uma lista com todos os scripts que o usuário tem instalado em sua maquina. -Manager Ctrl Posibilita usar ferramentas de joystick sem precisar desenhar elas novamente, tendo alguns joysticks prontos e com a possibilidade de criar novos controles e salvar eles, como podemos observar na imagem abaixo Imagem 2. Exemplo ferramenta Manager Ctrl Processo de criação de uma ferramenta Identificando Problema do Usuário Primeiramente precisamos identificar e entender o problema do usuário para iniciar a concepção da ferramenta. Abaixo uma breve descrição do usuário relatando o seu problema no caso da ferramenta Galeria de Personagens. Para importar um personagem para uma cena onde está o cenário e outros personagens, é preciso clicar no menu arquivo abrir outro menu e clicar em merge e então 3
encontrar a pasta do projeto para encontrar dentro dela uma pasta que contem os arquivos do personagem e então carregar ele na cena, muitas vezes havia a necessidade de trazer muitos personagens para a mesma cena e isso leva muito tempo. Usuário Imagem 3. Ilustação do problema do usuário Pesquisa Na pesquisa precisamos: Entender, Visualizar, Desenhar e Referenciar o problema. Entender quais as dificuldade do usuário para então planejar a ação desejada onde a ferramenta podera suprir esta necessidade. Visualizar como a ferramenta receberia os comandos do usuário, quais os tipos de informação a ferramenta recebe como as funções trabalham essas informações e assim agir por meio das ferramenta tirando esse trabalho das mãos do usuário. Desenhar o projeto para determinar como as pessoas iram executar determinadas ações dentro da mesma ferramenta, e trabalhar no layout para a fácil entendimento e adaptação do usuário. Referência das ferramentas ja dispoíiveis que executam ações semelhantes ao problema solicitado. Layout existentes podem te dar uma direção inicial de como fazer o seu. Um fator muito importante é que o usuario não sinta falta do processo antigo a ferramenta precisa funcionar e subistituir o método anterior Planejamento Com a pesquisa finalizada podemos começar a parte mais importante do desenvolvimento da ferramenta, o planejamento. O planejamento da ferramenta consiste em criar um cronograma de desenvolvimento, assim tendo um prazo final para viabilizar a ferramenta para o usuário. Defini-se o layout dessa ferramenta mostrando suas exatas funções e a disposição dessas funçõs para o usuário. Determinar o que cada programador irá contribuir nesse projeto, ou se esta fazendo sozinho, qual caminho começar e terminara a ferramenta, sempre seguindo uma linha lógica de ações e 4
por fim sempre se atualizar em novas tecnologias a fim de melhorar a ferramenta que você esta produzindo. No planejamento definimos qual a Linguagem de script* que será utilizada para a concepção de tal ferramenta. Sendo a linguagem nativa do 3ds Max o MaxScript, porem temos a possibilidade de utilizar outras linguagens (como por exemplo Microsoft.NET e Phyton) no 3ds Max ou até mesmo criar uma ferramenta para o sistema operacional que complemente o 3ds Max. Desenvolvimento da Ferramenta Estaremos utilizando como exemplo a ferramenta Galeria de Personagens. Para o desenvolvimento da ferramenta iniciamos pela Interface, assim podemos definir quais seram os botões necessários, trabalhar a interface mais amigável para o usuário utilizar e definir o que a ferramenta vai conter, como no exemplo abaixo de um sketch da interface da ferramenta Galeria de Personagens. Imagem 4. Sketch da ferramenta Galeria de Personagens 1.Linguagem de script são linguagens de programação executadas do interior de programas e de outras linguagens de programação. As linguagens de script servem para estender a funcionalidade de um programa ou controlá-lo, acessando sua API. 5
Objetivo da Ferramenta Essa ferramenta tem como objetivo principal a organizacao do projeto, onde voce podera facilmente listar todos os personagens de um determinado projeto, importar esse personagem dentro da cena, importar diversos personagens dentro da mesma cena e substituir esse personagem por uma versao mais atualizada. Raciocínio Lógico do Programador Abaixo acompanhamos o raciocínio lógico do programador dessa ferramenta, após realizadas todas etapas anteriores, como ele se organiza para comecar a escrever a ferramenta: Achar personagem que vai entrar em cena. Como o usuário vai ver os personagens Achar esse personagem na cena atual. Varrer a cena atual em busca de partes do personagem Salvar todas as animações. Verificar se há animações e salvá-las em alguma pasta Deletar o personagem e qualquer coisa ligada a ele. Deletar todo o corpo do personagem acessórios Colocar novo personagem em cena Colocar o personagem na cena onde o usuário não precise mais fazer nenhuma ação Carregar animações Carregar as animações salvas do personagem. Acompanhando o raciocinio lógico, podemos perceber todos os passos importantes para que a ferramenta funcione dentro da pipeline da produção, sem que perca nenhum dado importante e seja mais eficiente do que simplesmente utilizar o método padrão do software, onde voce consegue carregar as animações já realizadas com esse personagem, no caso de uma animação onde envolvem ciclos, facilmente voce pode carregar o personagem e juntar diversos ciclos previamente já animados em poucas ações. Escrevendo a ferramenta Na imagem abaixo observamos como a ferramenta é escrita utilizando a linguagem de programação MaxScript. Curiosidade: Para a ferramenta Galeria foram utilizadas 500 linhas de codigos. 6
Imagem 5. Linguagem de programação MaxScript escrevendo a ferramenta Galeria de Personagens Beta teste O beta teste ocorre quando a ferramenta já está em seu estágio final, e o desenvolvedor envia a ferramenta para os usuários testarem e fazerem as considerações finais sobre interface, praticidade, agilidade, desempenho e todos os fatores importantes para a ferramenta se tornar bem sucedida. Finalização da Ferramenta Com os resultados do beta teste aplicados na ferramenta, o desenvolvedor finaliza a mesma assim aplicando essa ferramenta dentro da pipeline do estúdio, desenvolvendo um manual de utilização e instalação dessa ferramenta para todos os usuários onde eles obterão o suporte inicial de como começar a utilizá-la. 7
Pipeline de um Projeto de Animação Utilizando Ferramentas Customizadas Utilizando as novas ferramentas criadas para facilitar o workflow de trabalho do usuário, temos uma nova pipeline de trabalho. Anteriormente os passos seriam como nos passos abaixo: 1. Abrir o 3ds Max 2. Abrir arquivo contendo o cenário 3. Acionar o comando Merge 4. Achar o personagem no servidor do projeto 5. Importar o Personagem 1 utilizando o comando Merge 6. Posicionar o Personagem 1 7. Clicar no Controlador Null do Personagem 1 8. Ir até a aba Motion 9. Acionar o comando de carregar animação (CAT) 10. Achar no servidor do projeto a animação desse personagem 11. Carregar a animação 12. Repetir passos 3 a 11 para os outros personagens da cena 13. Mandar o arquivo para o profissional de render. Observamos que seriam no mínimo de 12 passos para importar 1 personagem em uma cena. Se a cena tiver a necessidade de 5 personagens o processo seria repetitivo com um total de 48 ações, sendo várias repetitivas que levam tempo para serem executada. Agora com a ferramenta Galeria de Personagens o workflow é como nos passos abaixo: 1. Abrir o 3ds Max 2. Abrir o arquivo contendo o cenário 3. Clicar na ferramenta Galeria de Personagens 4. Selecionar o Personagem 1 dentro da lista de personagens 5. Clicar no botão importar 6. Selecionar a Animação desse personagem 7. Clicar no botão importar 8. Repetir passos 4 a 7 para os outros personagens da cena 9. Mandar arquivo para o profissional de render Observamos que com a ferramenta o workflow ficou muito mais simplificado abrindo somente uma janela e selecionando as opções dentro desta janela, menos ações para importar o personagem e para importar 5 personagens o processo seria muito mais prático utilizando somente 24 ações, não precisando ir a diferentes janelas e menus. 8