Add-on para animação em tempo real no Blender

A criação de animações em softwares 2d ou 3d é sempre um processo que exige muito dos artistas, seja no conhecimento técnico da ferramenta usada para produzir a animação ou então na sensibilidade e habilidade artística necessária para criar dinâmicas interessantes para a animação. O processo tradicional de animação é a chamada interpolação de movimento, que é a base de toda a animação gerada por meio de software. Mais tradicional ainda é o método de movimento chamado de “quadro-a-quadro” em que precisamos fazer todos os quadros da animação, sendo derivado dos sistemas “analógicos de animação”. Nos meios digitais é mais comum trabalhar com a interpolação. Existem outras maneiras? Claro que sim, e podemos usar métodos de animação procedural para gerar movimento, como é o caso das animações baseadas em física.

No Blender ainda é possível usar outro método para criar animações, graças a um Add-on muito interessante chamado de Real Time Animation. Antes que você continue lendo, é importante lembrar que esse Add-on em particular é diferente dos outros existentes para o Blender, pois ele é pago. Sim, para usar na sua totalidade esse Add-on é preciso adquirir o mesmo, mas o autor disponibiliza uma versão de testes gratuita.

Mas, o que faz o Real Time Animation? Muito simples, ele permite que você realize uma animação usando métodos semelhantes aos da Game Engine do Blender. Você pode criar e gravar keyframes com base no movimento dos objetos usando o teclado. Assim, o movimento pode ser criado de maneira “livre” usando o as setas. Esse tipo de animação permite aos artistas 3d trabalhar com métodos bem diferentes e interativos de animação, praticamente como se fôssemos jogar dentro de um ambiente de render em tempo real.

A versão de testes do Add-on funciona com os mesmos recursos da versão paga, mas depois de algumas interações alguns dos botões do Add-on ficam desabilitados, sendo necessário instalar novamente o Add-on. Será que vale a pena adquirir esse Add-on para o Blender? Dependendo da sua necessidade e habilidade em criar animações baseadas em keyframes, pode ser uma ótima solução para gerar movimento. O processo fica mais interativo e direto, dependendo menos do artista para posicionar keyframes.

Apostila gratuita sobre programação em Python com Blender 2.5

O conhecimento de linguagens de programação é de fundamental importância para qualquer pessoa envolvida com a manipulação de grandes quantidades de informação, pois com o uso inteligente desse tipo de ferramenta, podemos economizar horas de trabalho repetitivo. Isso se aplica até mesmo em profissionais que trabalham com a parte mais artística da modelagem 3d e animação. Se você já trabalhou em projetos envolvendo esses tipos de conhecimento, já deve ter percebido que existe uma grande quantidade de tarefas repetitivas. Agora, o mais interessante é que em algumas situações as tarefas mudam de acordo com o projeto. Portanto, fica difícil criar ferramentas que ao mesmo tempo sejam universais e ajudem os artistas a trabalhar com praticamente tudo.

Devido a isso, podemos dispor de linguagens de script em todos os grande softwares de animação e modelagem 3d. Por exemplo, no Maya usamos MEL e no 3dsmax MAXScript. Mas, entre essas linguagens a que se mostra mais universal é o Python. Já podemos aproveitar scripts em Python no Blender, Softimage, Houdini e até mesmo no 3dsmax com o uso do módulo criado pelo Blur Studio para adaptar ferramentas criadas em Python para MAXScript.

Caso você seja usuário do Blender e queira começar a aprender a programar em Python, consultando diversos exemplos já no Blender 2.54. Existe uma apostila gratuita sobre Python com Blender que pode ser copiada nesse endereço.

blender-python-free-ebook.jpg

São 74 páginas recheadas de exemplos e dicas abrangendo os seguintes temas:

  • Edição de objetos do tipo Mesh
  • Materiais e texturas
  • Criação de objetos
  • Organizando texturas UV
  • Hierarquias para animação
  • Manipulação de câmeras
  • Renderização
  • Ajustes para curvas

Esses são apenas alguns dos assuntos disponíveis nesse material. A apostila não vai ensinar a trabalhar com Python desde o início, mas apresenta a vantagem de já mostrar exemplos de como realizar algumas tarefas simples usando o Blender 2.54, como a criação de primitivas geométricas. A exemplificação dos procedimentos é de grande ajuda, pois pode levar a adaptação dos scripts para tarefas mais complexas.

O material é recomendado a todos que usam o Blender e querem expandir um pouco mais os seus projetos, criando ferramentas personalizadas. Conhecer esse tipo de linguagem é um grande diferencial para qualquer artista.

Análise do livro Blender 2.49 Scripting

Uma coisa que sempre repito para meus alunos nas minhas aulas sobre computação gráfica 3d, é que para conseguir passar para níveis em que você tem controle total sobre o seu ambiente de produção, nesse caso os softwares 3d, em algum momento eles precisam trabalhar com programação. Essa programação pode assumir diversos níveis de complexidade, sendo o mais comum a criação de scripts. No Blender esse tipo de programação é feita usando a linguagem Python que é muito simples de usar e aprender. O desafio de aprender Python para trabalhar com computação gráfica 3d no Blender, é desvendar os detalhes da API do Blender que permitem trabalhar com Python para “dizer” ao Blender o que você precisa.

Nesse ponto, ganhamos poucas semanas atrás uma excelente fonte de informação sobre esse tipo de tarefa que é o livro Blender 2.49 Scripting, escrito por Michel Anders. Estou com o livro já faz quase três semanas e passei esse tempo todo lendo e exercitando as quase trezentas páginas de exemplos e exercícios. Como estou com a versão eletrônica do livro, não poderei tirar a tradicional fotografia segurando o livro.

Mas, o livro é realmente bom?

Antes de falar sobre o livro, me permitam fazer uma separação clara aqui sobre o processo de aprendizado de duas coisas que podem parecer as mesmas, mas são bem diferentes. Se você investir tempo aprendendo como funciona a linguagem Python, não estará automaticamente aprendendo a programar para o Blender. A linguagem Python é usada nos mais variados ambientes e tarefas, e a maioria dos seus livros e fontes de informação não fazem relação com o Blender. Até tenho um livro sobre Python, mas o mesmo não aborda nada sobre o uso dele em computação gráfica.

Nesse ponto o livro do Michel Adams é perfeito, pois apresenta a linguagem Python para as pessoas que tem interesse em aprender, já associada com a API do Blender. Isso acelera em muito o processo de aprendizagem. No meu caso, precisei aprender primeiro Python para depois ir pesquisando a API do Blender e descobrir como poderia usar e criar ferramentas personalizadas para meus projetos.

blender-scripting.jpg

Outro ponto positivo para o livro, além de abordar a linguagem associada ao Blender é o seu enfoque prático. Tudo é apresentado com um exemplo prático, mesmo que seja simples ou até mesmo para assuntos mais complexos como a manipulação de animação. Essa é uma lista com os tópicos e capítulos abordados no livro:

  1. Entendendo o funcionamento do Blender e Python
  2. Criando e editando objetos
  3. Grupos de vértices e materiais
  4. Pydrivers e Constraints
  5. Manipulando frames
  6. Shape keys, IPOs e Poses
  7. Criando shaders
  8. Renderização
  9. Opções extras com Python

Infelizmente o livro só está disponível em inglês, mas é uma fonte incrivelmente rica de informações para pessoas interessadas em aprender a criar scripts e rotinas para o Blender. Mesmo sendo no 2.49? Sim! Mesmo abordando o Blender 2.49, a parte complicada que é fazer entender as ligações entre o Blender com o Python são bem desenvolvidas, depois é só consultar as alterações na API para migrar os conhecimentos para o Blender 2.50.

Eu recomendo esse livro para todos os usuários do Blender que queiram expandir os seus conhecimentos no software.

Tutorial Blender 3D e Python: Alinhando objetos com seus próprios scripts

O uso de scripts e rotinas personalizadas em ferramentas 3d é um dos requisitos para acelerar o seu trabalho em softwares 3d, seja com o uso de MAXScript no 3ds Max, Mel no Maya ou Python no Softimage XSI. No Blender 3D também podemos usar Python para adicionar novas ferramentas e até mesmo criar pequenas rotinas que ajudam no desenvolvimento de ferramentas para automatizar tarefas de modelagem. Como sempre falo sobre esse tipo de assunto, mas ainda não tinha publicado nenhum tutorial sobre como começar com Python no Blender, resolvi criar um tutorial em vídeo sobre uma tarefa comum em modelagem, que é o alinhamento de objetos.

Sempre que estamos criando cenários ou composições complexas usando diversos objetos, precisamos alinhar os mesmos em um eixo, ou simplesmente organizar modelos 3d como peças de mobiliário. Uma das maneiras mais rápidas e simples de fazer isso é usando Python.

Como é possível fazer isso em Python?

Para responder essa pergunta, editei um tutorial separado em duas partes que mostra os primeiros passos com Python no Blender 3D, e a criação de uma rotina que alinha objetos selecionados, com base na posição em Y de um elemento presente na 3D View.

O vídeo aborda os seguintes assuntos:

  • O que é necessário para importar os módulos do Blender para o script
  • Como capturar informações sobre objetos na 3D View
  • Como capturar informações apenas dos objetos selecionados
  • Como exibir as informações na janela auxiliar do Blender 3D
  • Como alterar propriedades de objetos usando Python
  • Como criar estruturas de repetição para automatizar as transformações

Claro que se você tiver algum tipo de experiência com desenvolvimento de scripts ou softwares, a explicação e objetos apresentados no tutorial ficam mais simples de seguir e entender.

A lógica apresentada nos tutoriais é a seguinte, com a opção Blender.Objects.GetSelected() é possível adicionar os objetos selecionados na 3D View em uma lista. Essa lista é composta pelos nomes dos objetos. No caso desse script que alinha os elementos em relação a outro, o acesso a cada um deles é feito por um for.

O que significa esse for?

Em linguagens de script um for é usado para fazer tarefas repetidas. No caso do nosso exemplo poderíamos ter escrito a declaração que altera as posições em Y dos objetos na 3D View de duas maneiras. Uma declaração para cada objeto selecionado como objeto(0).LocY = meuObjeto.LocY, objeto(1).LocY = meuObjeto.LocY, objeto(2).LocY = meuObjeto.LocY.

O funcionamento seria o mesmo. Com o for, podemos dizer que uma variável i deve ser comparada com o número de índices da lista objetos, que nesse caso tem o mesmo número de objetos selecionados na 3D View. A vantagem em usar o for é que não importa o número de objetos selecionados, o script sempre vai adicionar automaticamente o número necessário de declarações para mover os modelos 3d.

Agora você já pode fazer adaptações nesse script para criar as suas próprias rotinas. Em outros artigos, mostro como é possível criar uma interface e trabalhar com ferramentas personalizadas usando Python no Blender 3D.

Tutorial de modelagem para topografia com o Blender 3D

A cada nova versão do Blender 3D são adicionados novos recursos e ferramentas que facilitam muito o nosso trabalho de modelagem e animação. Mas, alguns desses recursos não ganham tanto destaque no lançamento pelo simples fato de serem scripts desenvolvidos em Python. Como esses recursos não estão totalmente integrados ao sistema do Blender, mas são executados como ferramentas auxiliares acabam ficando de fora da lista de recursos. Desde que o Blender 2.49a foi lançado, tenho pesquisado os diversos scripts que foram adicionados ou atualizados para aprender o que cada um deles pode fazer.

Um desses scripts ajuda na modelagem para topografia e criação de paisagens ou cenários virtuais. O script se chama Landscape generator e pode ser copiado nesse endereço, caso você não tenha o mesmo instalado na sua versão do Blender. Na atualização de software do Blender, alguns scripts podem não ser atualizados e também nas versões copiadas no formato zip.

O tipo de modelagem realizada pelo script é um combinação de modelagem 3d poligonal e escultura, para adicionar detalhes as superfícies. Para demonstrar o funcionamento do script, gravei um pequeno tutorial em vídeo mostrando o que é necessário para começar a elaborar as suas paisagens virtuais com o Blender 3D.

O segredo para usar esse script é conseguir realizar uma boa quantidade de testes, para identificar o conjunto de configurações ideal para o terreno que você precisa criar para seu projeto. Como é possível perceber pelo vídeo, a quantidade de informações e personalização que podemos realizar na ferramenta é muito grande.

Para criar terrenos com mais detalhes e suavização, aumente a resolução do grid inicial que precisamos adicionar a cena, com o cuidado de não usar valores altos demais para não travar o computador. Os terrenos são gerados com uma combinação entre a aba Noise e a Effects, que determinam a maneira como o terreno será exibido.

A melhor parte desse tipo de ferramenta é que os modelos 3d gerados são totalmente compatíveis com renderizadores externos que funcionam com o Blender 3D. Portanto, os terrenos gerados com ele podem ser renderizados com o LuxRender e YafaRay sem maiores problemas. Se você precisa criar cenários e paisagens virtuais com o Blender, esse script vai ajudar muito nos seus projetos.