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.

Livro gratuito sobre design de modelos de papel com Blender

A criação de modelos físicos de papel é um grande desafio devido ao design do objeto que precisa prever as partes do objeto de devem ser recortadas ou dobradas. Esse é um trabalho que tem relação direta com a modelagem 3d, pois envolve conhecimentos muito semelhantes aos usados no processo de mapeamento UV. Quando temos um modelo 3d que precisa ser mapeado com precisão, o processo envolve “recortar” a malha 3d do objeto para depois abrir o modelo e com a estrutura planificada, ajustar a textura da maneira como acharmos melhor. Até mesmo a construção de modelos físicos, como maquetes reais envolve um tipo de planejamento muito semelhante.

Para quem nunca tentou criar esse tipo de modelo de papel, saiba que um software 3d como o Blender pode ajudar significativamente no processo. E se o que faltava era orientação sobre o assunto, um artista e usuário do Blender chamado David Guzmán resolveu esse problema. Ele disponibilizou um livro gratuito que aborda o uso do Blender como base para o planejamento e design de modelos de papel.

Tudo é feito com base em um script Python que acompanha o download do livro, e ajuda no processo de planificação dos modelos 3d. O livro se chama Fundamentals of Paper Model Design e pode ser copiado no endereço indicado no link.

livro-gratuito-pdf-blender-modelo-papel.jpg

O livro é bem extenso e conta com mais de 200 páginas de tutoriais e dicas sobre como criar um modelo 3d simples no Blender, e depois tratar a malha do objeto 3d aberta e gerar um arquivo vetorial que possa ser impresso e depois recortado. É o tipo de tarefa para a qual não se imaginaria o uso de ferramentas sofisticadas como o Blender, ou mesmo outros softwares 3d, mas que ajudam aos que precisam trabalhar com esses modelos de papel.

Antes de pensar que qualquer modelo 3d pode passar por esse tipo de transformação, é importante tomar cuidado com a topologia e quantidade de faces dos objetos trabalhados. Lembre que todas as faces dos modelos 3d devem ser representadas fisicamente na impressão, portanto quando mais suavizada for uma superfície, mais dobras são necessárias no papel.

Isso mostra o quanto o Blender pode ser versátil, até mesmo como forma de ensinar e aprimorar o raciocínio geométrico e a visão espacial. Com esse tipo de aplicativo usado em escolas, o ensino de disciplinar relacionadas e geometria fica muito mais simples e atrativa.

Blender 2.50: Script adiciona câmera estereoscópica

O uso de animações e vídeos usando técnicas 3d está se tornando cada vez mais comum, inclusive com crescente demanda na área do entretenimento graças ao barateamento da tecnologia. No que se refere aos softwares 3d já existem diversas ferramentas e opções para conseguir produzir animações em 3d usando técnicas simples como a estereoscopia. O Maya já dispõe de uma câmera nativa para esse propósito, gerando uma imagem renderizada para cada olho e criando a ilusão de profundidade nas imagens. Até mesmo com o Photoshop CS4 e CS5 podemos trabalhar com a técnica em imagens estáticas.

O Blender 2.49 tinha um script muito bom que adicionava uma câmera estereoscópica ao software, e esse script está em processo de atualização para a versão 2.50. Apesar de realizar uma tarefa simples, o script é muito útil para gerar o efeito 3d.

blender-camera-estereoscopica.png

Essa versão atualizada do script para câmera estereoscópica no Blender pode ser copiada nesse endereço. No mesmo local é possível fazer o download de um vídeo demonstrando como usar esse tipo de ferramenta em animação.

A câmera estereoscópica nada mais é que um conjunto de duas câmeras colocadas em paralelo e que permitem gerar imagens duplicadas, uma para cada olho. Com o uso dos famigerados óculos especiais é possível fazer a união das imagens e gerar a ilusão de profundidade.

Esse mesmo princípio pode ser gerado para qualquer ferramenta em 3d que não tenha ainda sistema de câmera semelhante.

O script em si ainda está sem nenhum recurso extra para o Blender 2.50, mas com o tempo o autor deve atualizar as opções do script e permitir controle total sobre a câmera. O mais interessante é que o Blender pode fazer a parte da câmera e também a pós-produção do vídeo com o editor de nós. Basta misturar a imagem das duas câmeras e teremos em pouco tempo um vídeo usando 3d anaglifo. Esse é aquele tipo de imagem que visualizamos com os óculos com lentes em ciano e vermelho.

O ponto negativo dessa tecnologia é que esses óculos acabam com as cores da animação, mas é uma maneira rápida e de baixo custo para produzir conteúdo em 3d.

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.

Modelagem 3d com precisão no Blender 3D: Usando o script Lengthen

Na maior parte dos projetos envolvendo modelagem 3d o uso de ferramentas para precisão absoluta na organização do modelo 3d é dispensável. Como o objetivo do projeto de modelagem é atingir a proporção correta do modelo 3d e não as dimensões, é mais interessante conseguir opções para ajustar a topologia do modelo 3d do que as dimensões em si. Mas, isso é aplicável em projetos que envolvem modelagem orgânica e não precisam demonstrar dimensões e relações de proporções geométricas, como é o caso dos projetos de visualização arquitetônica. Nesse caso é muito importante conseguir criar modelos 3d com um mínimo de fidelidade as dimensões dos projetos representados.

O Blender 3D consegue manipular os objetos 3d de maneira satisfatória, mas as opções de controle e modelagem com precisão podem sempre melhorar. Existem diversos scripts em Python que ajudam no trabalho de modelagem e entre eles estão o Script chamado Lenghten. Já faz um bom tempo que escrevi um tutorial sobre o funcionamento desse script aqui no blog, mas ainda assim a ferramenta se mostra indispensável para trabalhos que envolvem o controle absoluto das dimensões.

O que ele faz? O script é bem simples e consegue alterar as distâncias entre dois vértices para qualquer dimensão especificada pelo usuário, sem modificar a orientação dos vértices. Para demonstrar o seu funcionamento, resolvi criar um pequeno vídeo mostrando o script em ação.

Caso você queira fazer o download do script, basta visitar esse link que leva ao fórum de usuários do Blender em inglês, o Blenderartists.

Como você deve ter percebido pelo vídeo, o script ajuda muito no dimensionamento correto de elementos no Blender, principalmente quando objetos estão para ser copiados ou transformados. Por exemplo, ao criar os modelos 3d de uma parede é possível usar os mesmos modelos 3d para diferentes tipologias de paredes que diferem na altura e largura. Sem o uso do script seria necessário usar o Grid ou o menu de propriedades do Blender para conseguir a mesma transformação.

A única coisa que poderia melhorar com o Script é a sua interação com objetos auxiliares como Hooks, o que deixaria o trabalho de modelagem mais rápido. Os Hooks são deformadores que podem alterar a posição de diversos vértices de maneira rápida. Apesar do suporte aos grupos de vértices ajudar também, os Hooks são uma opção extra para interação visual com as modificações.

O script é recomendado para todos os usuários que desejem trabalhar com precisão no Blender 3D!