Blender 2.50: Script para criar correntes 3d automaticamente

Uma das coisas que teremos que esperar quando o Blender migrar totalmente para a versão 2.50, ou 2.60 na sua versão estável, é a disponibilidade dos inúmeros scripts que permitem encurtar diversas tarefas na ferramenta. Por exemplo, para a criação de cenários de teste com planos inclinados e detalhes existe o excelente Discombobulator. O problema com a migração dessas ferramentas esbarra no fato de que o próprio Blender 2.50 ainda estar sendo desenvolvido e alterado, e a nova API do Python para essa versão ainda é desconhecida pela maioria dos autores desses scripts. A vontade em atualizar os scripts por parte dos autores também é fator fundamental para que os mesmos funcionem na versão 2.50.

Até que todos eles, ou a maioria, estejam portados para o Blender 2.50 teremos que eventualmente usar versões em paralelo do Blender para conseguir realizar principalmente tarefas de modelagem como é o caso do Discombobulator.

Mas, já começam a aparecer diversas iniciativas de bons scripts para o Blender 2.50. Um deles tem como objetivo criar de maneira automatizada objetos que se repetem em padrões sobre um caminho definido. Nesse caso podemos usar como exemplo para aplicação da ferramenta a criação de uma corrente em 3D. O script para o Blender 2.50 pode ser copiado nesse endereço.

O autor do script publicou um vídeo que demonstra a aplicação da ferramenta. É importante ressaltar que esse script ainda não está finalizado, mas já pode muito bem ser testado junto com o Blender 2.50.

Chain Script from blenderscripts on Vimeo.

O princípio de funcionamento do script é bem simples, e consiste apenas na criação de um modelo já com as argolas das correntes já criadas. Depois que objeto é adicionado a cena, podemos fazer alterações entrando no modo de edição e redimencionando o objeto de determina o caminho usado pela corrente, e inclusive trocar o modelo base da corrente. No vídeo de exemplo o autor do script mostra como trocar a base da corrente por um cubo. Outra coisa demonstrada no vídeo é que o simples ato de redimensionar o caminho usado pelo script já adiciona diversas cópias dos elementos.

Para os que não tem receio de testar ferramentas ainda em estágio alpha, o script é uma ótima opção para criar elementos repetidos que se copiam sobre caminhos. O uso de Hooks ou keyframes para deformar os vértices do caminho usado pelo script já possibilitam diversos tipos de animação.

Tutorial de animação mecânica com Blender 3D: Usando PyDrivers

Uma coisa que todas as pessoas envolvidas com o processo de criação voltado para animação conhecem é o fato de que para trabalhar com os aspectos artísticos do movimento, você precisa de muita inspiração e senso de “timing” para que o movimento seja criado da maneira como o roteiro pede. Mas, nem sempre conhecer o processo de configuração dos keyframes e noções de timing são necessárias. Quando a animação envolve a manipulação de elementos mecânicos, como motores ou elementos de veículos com peças móveis que realizam movimentos repetitivos, é mais interessantes recorrer para conhecimentos em linguagens de programação.

Esse é um dos principais benefícios em usar scripts para animação: automatizar os processos repetitivos que demandariam muito trabalho manual dos animadores. No Blender 3D é possível usar Python para controlar alguns aspectos da animação com os PyDrivers. Esses são pequenos blocos de código que podem ser atribuídos na janela que edita as curvas IPO. O uso desse tipo de script é bem mais simples que a criação de ferramentas personalizadas, pois requer apenas uma linha de código que vai controlar a maneira com que um determinado objeto deve ser animado.

Caso você nunca tenha tido oportunidade de usar recursos mais avançados como esse no Blender 3D, o tutorial abaixo é um excelente exemplo da aplicação desse tipo de recurso para animação no Blender. No tutorial em si, um artista 3d configura os PyDrivers para controlar o movimento de engrenagens em animação. O vídeo tem aproximadamente 25 minutos de duração.

Blender Python Drivers Gear Demo! from Max Hammond on Vimeo.

Depois de assistir ao tutorial fica evidente que o autor teria muita dificuldade para criar a mesma animação sem o uso de recursos como scripts, pois o movimento dos objetos deve ser sincronizado e perfeitamente mecânico. Qualquer alteração no movimento de uma das engrenagens iria resultar na perda de praticamente toda a configuração da animação.

Esse é um tipo de assunto que dificilmente abordo nas minhas aulas sobre Blender 3D, pois os alunos não aceitam muito bem o assunto. Ainda existe uma barreira entre as pessoas interessadas em aprender softwares 3d para fins artísticos e tópicos como o desenvolvimento de scripts que podem facilitar o seu trabalho. Sempre que tento fazer uma introdução ao tema, acabo tendo que fazer apenas uma pequena introdução mesmo. Quem sabe em cursos voltados para desenvolvimento de jogos usando Blender, esse tipo de experiência seja mais proveitosa.

Se você tem interesse em tópicos avançados sobre animação 3d, esse pode ser um excelente exemplo de como começar a aplicar scripts para controlar o movimento de objetos. Em outras ferramentas como o 3ds Max e Maya, o mesmo tipo de controle pode ser criado usando MAXScript ou MEL. Mas, usando Python para esse tipo de tarefa você poderá adaptar o seu código para o Houdini e Softimage XSI, pois ambos usam essa linguagem para personalizar animação, assim como o Blender 3D.

Simulações físicas avançadas com o Blender 3D e MBDyn

O Blender 3D oferece diversas opções e maneiras para realizar simulações físicas em animação com o uso de Rigid Bodies, Soft Bodies, Cloth, Partículas e fluidos. Todas essas opções fazem parte de um incrível arsenal de recursos para trabalhar com animações calculadas pelo próprio software, usando como base apenas algoritmos especializados em simulações 3D. Mas, será que esse tipo de ferramenta consegue realizar todos os tipos de simulação? Com um pouco de ajustes e trabalho de configuração é possível fazer muita coisa, mas algumas simulações físicas ainda precisam de recursos mais sofisticados, como a simulação do atrito no ar ou outras propriedades mais avançadas.

Um projeto muito interessante de pesquisadores italianos, desenvolveu um script em Python que liga o Blender 3d a um software chamado MBDyn (Multi-body dynamics). Esse software é capaz de simular comportamentos físicos avançados, como Aerodynamics e Aeroelastics. Ambas as propriedades são derivadas do estudo e comportamento de objetos se deslocando através do ar, sendo mais relacionados a engenharia aeronáutica. O estudo e análise dessas propriedades é muito usado em projetos de aeronaves como aviões de passageiros e helicópteros.

Como isso é possível? Que script é esse?

Para aprender sobre o funcionamento dessa ferramenta, e visualizar o Blender produzindo e criando um objeto tão complexo como a estrutura de um helicóptero, usando e configurando as suas diversas partes com comportamentos físicos reais, assista ao tutorial abaixo em que o script é demonstrado. Antes de assistir ao material, devo alertar que o mesmo tem aproximadamente uma hora de duração!

Piloted Coaxial Helicopter Tutorial from Doug Baldwin on Vimeo.

No tutorial podemos acompanhar o processo de criação do helicóptero usando os objetos do Blender 3D. O script e as ferramentas usadas no tutorial são bem detalhados e apresentam diversas opções para adicionar os elementos do rotor do helicóptero usando suas propriedades físicas. Assim que o objeto é criado com alguns dos seus elementos, já é possível visualizar os movimentos cíclicos das pás da hélice.

Esse material é muito interessante para pessoas que procuram animação automática realizada pelo Blender, e principalmente tópicos avançados sobre simulações físicas. Como faço para começar?

Se você quiser fazer o download do material necessário, como arquivos e o script usado para fazer a ligação entre o Blender 3D com o MBDyn, visite os seguintes endereços:

Agora você já pode criar os seus próprios projetos aeroespaciais no Blender 3D, fazendo a análise e testes usando propriedades físicas reais! Os arquivos fonte desse tutorial em vídeo, podem ser copiados nesse endereço.

Quero agradecer ao leitor Jefferson, pela dica enviada no fórmulario de contato. Obrigado!

Como criar controles de animação no Blender 3D?

Na animação de personagens e objetos em 3d, algumas ferramentas podem facilitar em muito o trabalho dos artistas. Uma dessas ferramentas é o chamado controle de animação, que é conhecido em alguns softwares como slider ou controle mesmo. Você já deve ter visto esse tipo de ferramenta sendo usada em tutoriais ou vídeos de demonstração, em que animadores controlam a forma de objetos ou personagens, arrastando formas no espaço 3d. Por exemplo, podemos criar um controle específico para controlar a abertura dos olhos em um personagem. Assim o animador pode animar apenas a posição do controlador, ao invés de se preocupar com a posição dos vértices de múltiplas partes do modelo 3d.

Nesse tutorial, vou mostrar como é possível usar esse tipo de controlador no Blender 3D, usando um script que já acompanha o Blender 2.48a chamado Shape Widget Wizard. O script usa as informações de um Shape Key do Blender e transforma isso em controles manipuláveis na própria 3D View do Blender. Para exemplificar bem o uso da ferramenta, vamos usar uma forma extremamente simples, representando a cabeça de um personagem.

blender3d-shape-widget-wizard01

Sim, como você pode perceber é apenas um cubo subdividido, simulando a forma básica de uma cabeça com dois orifícios para os olhos. Assim, mesmo sem experiência na modelagem 3d você pode reproduzir os passos apresentados nesse tutorial.

O primeiro passo é criar os Shape Keys no Blender, que em outros softwares também é chamado de Morph ou Morph Target, para as posições dos olhos abertos e fechados. Entre no modo de edição, e no menu dos Shapes adicione um novo Shape Key.

blender3d-shape-widget-wizard02

Depois, adicione um novo Shape Key e altere a posição dos vértices ou arestas do objeto, para que os olhos pareçam estar fechados. Caso você queira, altere o nome do Shape Key para “fechados”.

blender3d-shape-widget-wizard03

Quando isso estiver concluído, poderemos controlar a posição dos olhos, alterando a influência do Shape Key “fechados”. Mas, isso ainda não é o que queremos com a ferramenta.

O próximo passo é acionar na janela de Scripts do Blender 3D o script Shape Widget Wizard. Ele está na pasta Animation.

blender3d-shape-widget-wizard04

O painel de configuração dos controles permite escolher vários tipos diferentes de opções para os controles da animação. No nosso caso, precisamos apenas de uma forma simples que permita alterar os valores do Shape Key antre 0 e 1. Por isso, escolhi a segunda opção que é 1 Shape: 1,0.

blender3d-shape-widget-wizard05

Pressione o botão next, e logo estaremos na próxima dela de configuração. Agora, você deve especificar um nome para o controlador e também determinar o nome do Shape Key, que será controlado pelo Widget.

blender3d-shape-widget-wizard06

Quando tudo estiver pronto, basta pressionar o botão finished e o Widget será criado.

Agora, basta selecionar o objeto central do controlador para ajustar a posição dos olhos:

blender3d-shape-widget-wizard07

Esse é o controlador mais simples da lista, existem outros que podem controlar ao mesmo tempo a influência de vários Shape Keys. Com essa pequena introdução, você poderá começar a fazer testes e usar os controladores para facilitar o processo de animação. Assim, os keyframes podem ser adicionados nos controladores e não mais nos objetos 3d.

Tutorial Blender 3D: Como fazer Offset de faces na modelagem 3d

Nos softwares de CAD existe um comando extremamente útil na modelagem 3D e desenho 2D, chamado Offset que consegue criar cópias paralelas de objetos e linhas. Como maneira de desenhar, esse comando é fundamental na criação, sendo até indispensável em softwares 3D também. O Blender 3D não tem uma opção nativa chamada Offset, como acontece com outros softwares 3D, mas um Script em Python pode desempenhar uma função semelhante. Esse Script se chama Solidify Selection e pode ser findamental, principalmente para os artistas interessados na modelagem geométrica, como a criação de maquetes eletrônicas.

Como funciona esse script? Qual a vantagem em usar a ferramenta?

A função desse script é simples, que é a de criar novas faces a partir de faces selecionadas em um objeto 3d. Mesmo que sua função original não seja a de funcionar como um meio de de fazer Offset, o resultado final da sua aplicação é uma versão aproximada do Offset. Para responder melhor essas duas perguntas, vamos tentar realizar uma operação simples, com um plano levemente modificado que se mescla com um arco.

Se o objetivo fosse realizar uma operação semelhante ao Offset, o fato do plano incorporar um arco dificulta o uso de um simples extrude. Veja o resultado do extrude:

blender3d-solidify-selection1

Com o extrude, mesmo na opção individual faces, o resultado da cópia dessas novas faces é desastroso em termos de posicionamento dos novos objetos. O uso de uma transformação como a escala está descartada, pois iria resultar em faces com tamanhos levemente diferentes.

Agora, podemos fazer um teste com Solidify Selection. Depois de selecionar as faces desejadas para a transformação no modo edição, selecione o Script que está na pasta de scripts do Blender 3D no grupo Mesh.

blender3d-solidify-selection2

No Script podemos selecionar a distância do Offset no parâmetro Thick. Depois de configurar essa altura, mantenha a opção Skin Sides acionada para que as novas faces sejam conectadas à nova geometria. Quando o Ok é pressionado o resultado é esse:

blender3d-solidify-selection3

Repare que o resultado é muito próximo do Offset, com as faces sendo criadas em paralelo as faces originais. Esse script é extremamente útil na modelagem de projetos arquitetônicos e modelagem mecânica. Você só precisa tomar o cuidado de orientar as normais das faces sempre na mesma direção, pois é com as normais que o Script determina a direção em que as faces são copiadas.