Blender 2.8 Python Scripting Superpowers for Non-Programmers

Creating 3d renders, games, and animations is always incredibly exciting! Bem, excepto quando se torna desafiador ou entediante. Se você tem usado Blender ou qualquer outro aplicativo 3D por um tempo, você se viu passando pelas mesmas tarefas vezes sem conta e em algum momento pensando: “eu realmente desejo Blender apenas fez isso por mim”.

através do script, ele pode! Além disso, o Python pode criar novas funcionalidades divertidas que nem sequer são possíveis clicando em torno da interface.

se você é como eu e não teve nenhum treinamento em Ciência da computação, a programação pode parecer uma palavra de quatro letras exceto com onze letras (2,75 vezes pior!). É como uma linguagem secreta que só as pessoas inteligentes conhecem, que provavelmente também sempre lêem os fatos nutricionais, constroem motores de foguete por diversão, ou têm um Ph. D. em algum tipo de matemática que nem sequer usa números. Felizmente, não é esse o caso. A verdade é que, se puder usar o Ctrl+C e o Ctrl+V para copiar e colar, poderá começar a criar os seus próprios programas Blender Python imediatamente.

habitue-se a ver o código

terapêutica de exposição. Dessensibilização progressiva. Chame-lhe o que quiser, mas a melhor maneira de normalizar algo que parece estranho inicialmente é vê-lo muitas vezes no contexto certo.

cada acção que tomar na interface do Blender é executada através de comandos Python. Você pode verificar isso por si mesmo, mudando sua linha do tempo para o editor de informações e vendo o que ele cospe para fora quando você vai sobre o seu trabalho normal.

O editor de informações pode ser um pouco de um firehose, mas há algo sobre linhas de comando e de tal forma que pode ser a programação de heresia, mas colocar-me à vontade quando começar – a maior parte do que você vê existe apenas no caso de você precisar dele, e 98% do tempo você não vai precisar dele. Então, quando você faz algo simples como mover o cubo e ele lhe dá duas ou três linhas completas de código, você pode ignorar a maior parte dele. A parte importante está bem no início:

bpy.ops.transform.translate(value = (0.5, 0, 0))

você já sabe que o nome para mover algo é chamado de ‘traduzir’, então os valores que vêm depois disso são o quanto você traduziu seu objeto nos eixos X, Y, E Z, respectivamente. Tudo antes de ‘traduzir’ é onde esse comando é encontrado no código do misturador. É como se o Blender fosse um menu aninhado gigante e seleccionasse o Blender Python -> operações -> transformar -> traduzir.

existem nove secções principais do Blender Python (bpy). Você não precisa memorizar estes, mas reconhecer alguns deles pode ajudá-lo a entender como Blender está trabalhando sob o capô.

  • bpy.app-Informação sobre o Blender em si que não muda durante a execução.
  • bpy.listas de leitura de contexto do que está atualmente ativo no Blender.
  • bpy.dados – todos os dados internos do misturador, como objetos.
  • bpy.msgbus-significa “barramento de mensagens”, e é usado para notificar o misturador de certas alterações. Não precisamos de nos preocupar.
  • bpy.ops – todas as operações que você pode fazer no Blender, de modelagem para adicionar arquivos à renderização.
  • bpy.path-Functions that deal with file paths.
  • bpy.adereços-as diferentes propriedades que o misturador usa. Você usaria isso para dizer ao Blender se uma entrada deve ser um número ou uma cor.
  • bpy.tipos-todo tipo de coisa que existe no misturador, de modificadores a texturas A lâmpadas e muito mais.
  • bpy.utils-utility functions that are only for Blender but do not deal with internal data.

se estiver curioso, aqui está a documentação da API para o Blender 2.8 e para todas as versões anteriores.

à medida que trabalha, acostume-se a ver onde as suas ferramentas favoritas podem ser encontradas no código. Você não precisa entender tudo neste momento – apenas se acostumar com o que parece!

the Python Console of Power

Once you’re ready for the next step, head over to the Scripting workspace tab. Você vai encontrar o editor de informações agora familiar na parte inferior esquerda. Diretamente acima disso está a consola Python, que é onde você pode colar comandos e fazer as coisas acontecerem. Tente isto: seleccione uma linha no editor de informação, carregue em Ctrl+C para copiar e depois use o Ctrl+V para a colar na consola. Carrega no enter e verás que a mesma acção volta a acontecer!

agora tente isso: rodar, escalar e mover algo, ou fazer quaisquer outras três ações em uma linha. Copie os três do editor de informações e cole-os na consola. Agora fizeste três coisas ao mesmo tempo! Não há limite para isto, por isso podes fazer centenas de coisas de uma vez, se quiseres. Mesmo que você não vá mais longe na codificação, este é um grande truque para manter em seu bolso de trás.

salvar comandos com o Editor de texto

caçar através de um monte de comandos e copiar / colar o tempo todo é por si só bastante tedioso se você o fizer muito! Vamos poupar algum tempo e tornar o nosso multitarefas ainda mais eficiente usando o Editor de texto do Blender.

crie um novo ficheiro de texto e copie e cole três ou mais acções diferentes do editor de informação para o editor de texto. Vou começar por adicionar um cubo.:

bpy.ops.mesh.primitive_cube_add(size=2, view_align=False, enter_editmode=False, location=(0, 0, 0))

então vou rodar o cubo ao longo do eixo Z:

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=True, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

Caramba, isso é muito código para algo tão simples! Se não te incomoda, fica com ele. Se você achar intimidante, no entanto, tente excluir tudo, exceto o valor e o eixo orientado para que ele seja mais fácil de ler. O resto simplesmente assumirá valores por omissão.

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z')

por último, vamos adicionar um modificador bevel:

bpy.ops.object.modifier_add(type='BEVEL')

A mais uma coisa que você precisa fazer para obter o script a ser executado é o tipo de:

import.bpy

No topo do arquivo, para que ele possa ler o Blender Python. Também é útil mudar os três botões para números de linha, mudança de linha e realce de sintaxe no cabeçalho do Editor de texto.

aí tens, agora tens um guião! Você pode agora fazer três coisas muito importantes de uma vez, clicando em Executar Script no cabeçalho do Editor de texto. Se você quiser salvá-lo para mais tarde ou usá-lo em um arquivo diferente, vá para Text – > Salvar Como e salvá-lo como um arquivo .py Python.

se você tentou comandos diferentes do que eu e o seu programa não funciona como esperado, é provável que seja devido ao contexto – qual objeto é selecionado ou qual editor está ativo. Poderá seleccionar ou deseleccionar objectos no Blender 2. 8, configurando a sua propriedade de selecção como verdadeira ou falsa:

bpy.data.objects.select_set(state=True)

All Hail Autocomplete

Some commands that Blender has can only be done through code and are not found in the interface. Além disso, outras coisas que mudam na interface (como esfregar a linha do tempo) nem sempre lhe dão algo no editor de informações que você pode copiar e colar.

pode sempre usar o Google ou os documentos da API do Blender para o ajudar a encontrar o comando certo para fazer o que precisa, mas muitas vezes é mais fácil apenas encontrá-lo usando o autocompleto. Se começar a escrever um endereço na consola Python, poderá carregar em Ctrl+Space e o Blender mostrar-lhe-á todas as formas disponíveis para completar o que escreveu. É uma ótima maneira de navegar na base de código e descobrir novas funcionalidades.

o Editor de texto também tem uma funcionalidade de completação automática Ctrl+Space, mas não funciona da mesma forma e geralmente não é assim tão útil. Se é algo que usarias muitas vezes, eu recomendaria pegar o código de Jacques Lucke Auto-Completar Addo que te permitirá trabalhar muito mais rápido.

Terrific Templates

se você gostaria de transformar seu script em um addon apropriado que pode ser acessado através de um botão na interface ou um menu, os templates embutidos do Blender são um ótimo lugar para começar. Pode haver muito para se lembrar quando se trata de como fornecer a informação que é visto nas Preferências do Usuário, ou como registrar o addon, de modo que é exibido corretamente, por isso, os modelos são uma grande coisa para se referir a (ou copiar e colar), se você ficar preso.

na verdade aprender Python

se você gostou de criar seus próprios scripts, mas se sente um pouco decepcionado com a falta de poder deles (eu fiz algumas grandes promessas no início!), então é hora de aprender mais sobre Python e programação em geral. Conceitos como variáveis, loops e funções são essenciais para fazer algo verdadeiramente novo ou poderoso. Um pouco de conhecimento pode ir muito longe aqui, então realmente vale a pena o esforço extra. Recomendo investigar o Python num dos seguintes sites. Não somos afiliados, eles fazem um bom trabalho.

  • Team Treehouse
  • Code Academy
  • Data Camp
  • Learn Python

Send Help!Inevitavelmente, você ficará preso no meio da construção de seus próprios scripts e add-ons. Acontece aos melhores! Aqui estão os lugares que você pode ir para fazer perguntas sobre codificação no Blender:

  • Blender StackExchange
  • Blender DevTalk

pode também aprender mais ao assistir a estes cursos no CG Cookie:

  • Intro to Python Scripting in Blender
  • Scripting with Python Handler Functions in Blender
  • Scripting a Custom Rig UI in Blender