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.