Clicky

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.

Sobre o Autor:

Arquiteto que trocou as construções baseadas em tijolos pelas que utilizam pixels! Sim, os pixels também precisam ser devidamente construídos, e quem melhor do que um arquiteto para planejar construções?

4 Comentários

  1. Carlos H. Passos 05/12/2009 em 2:55 pm

    Olá Allan Brito, obrigado por essas vídeo-aulas, muito bom!
    Poderia fazer uma aula sobre como fazer ou aplicar scripts em Armatures?

  2. Martinho 19/01/2010 em 12:24 pm

    Olá Allan Brito, eu tô tentando fazer um jogo no blender só que eu preciso fazer o seguinte:

    Movimentar objeto com o clique do mouse.tipo aqueles jogos de montar bases e tanque, etc. Onde a gente clica na unidade(no caso o objeto) e clica em algum outro lugar e esse move ate la.Dentro do game engine.

    Tem jeito. Obrigado.

  3. Solano 13/12/2010 em 3:56 pm

    Gostei Allan, a crítica que tenho a fazer é que “Tutorial Python” acaba fazendo que só quem sabe python se interesse pelo tópico. No entanto, é um artigo com introdução ao python, ou seja, para iniciantes. Agora sugiro que faça um mais avançado, como a criação de um Constraint personalizado com Python.

  4. jesse 08/04/2014 em 6:57 pm

    oi meu nome e jesse e quero tirar um duvida eu salvei meu jogo e quando eu abri ficou a tela pre e ele tava rodando por que coloquei uma musica e escutei como fasso? me ajude

Deixar Um Comentário