Blender: configuração e animação
O Blender é o hub do pipeline: ele importa as camadas do Photoshop, você faz o rig e o skinning delas aqui, e ele exporta o .proscenio para o Godot.
Na Viewport 3D, abra a Barra Lateral com N e mude para a aba Proscenio - cada subpainel abaixo vive ali.
Os subpainéis do Proscenio são contextuais e consultam a seleção atual.
Importe o manifesto do Photoshop
-
Abra o
.blendalvo: o seu arquivo Blender para este personagem. -
Importe o manifesto: no painel Pipeline, clique em
Import Photoshop Manifeste aponte para o manifesto que você exportou.
Cada camada se torna um sprite quad (pivô, região de atlas e nomenclatura já preenchidos de acordo com o que foi feito no lado do Photoshop). A importação também constrói uma armadura provisória chamada <psd>.rig com um único osso e torna cada malha filha dela, então a figura se move como uma peça só - as malhas ainda não têm pesos para dobrar (essa é a etapa de skinning abaixo).
O diálogo de importação tem duas opções que vale definir deliberadamente:
-
Placement:Landed (Feet on Z=0)(padrão; corresponde à convenção de pivô nos pés do Godot) ouCentered (Canvas at World Origin)quando você precisa alinhar várias importações em uma cena. -
Root Bone Name: nomeia aquele único osso da armadura (padrãoroot; substitua porspineou a sua própria convenção).
Criando malhas à mão em vez de importar? Modele-as diretamente, depois retome a partir de Defina o tipo de cada elemento - o resto do fluxo do Blender é idêntico.
Construa o esqueleto
Adicione os ossos reais à armadura importada. O Quick Armature é o caminho rápido; você também pode adicionar ossos no Modo de edição como em qualquer rig do Blender.
-
Inicie a sessão modal:
Skeleton > Quick Armaturealinha à vista Frontal Ortográfica e permite desenhar ossos direto na viewport. -
Desenhe cada osso: com um pressionar, arrastar, soltar (cabeça → cauda), a sessão permanece ativa para você assentar uma cadeia inteira e depois confirmar.
Enquanto a sessão está ativa, uma folha de referência na tela espelha estas entradas:
| Entrada | O que faz |
|---|---|
| arrastar LMB | Novo osso, connected - encadeia no osso anterior (a cabeça do novo osso se encaixa na cauda do pai) |
| arrastar Shift + LMB | Novo osso, unparented - independente, sem pai |
| arrastar Alt + LMB | Novo osso, disconnected - filho do osso anterior, mas a cabeça fica onde você pressiona (deixa um vão) |
| X / Z | Alterna o travamento de eixo - restringe o arraste àquele eixo |
| Ctrl (enquanto arrasta) | Encaixe na grade - posiciona cabeça e cauda no incremento de encaixe |
| Ctrl+Z / Ctrl+Shift+Z | Desfaz / refaz o último osso nesta sessão |
| Enter | Confirma e sai |
| Esc / clique-direito | Cancela e sai |
- A tabela pressupõe o comportamento de cadeia padrão. Desligue
default_chainnas opções do Quick Armature e o arraste simples com LMB passa a ser sem pai, enquanto o arraste com Shift + LMB conecta em vez disso; toda outra entrada permanece inalterada. - Novos ossos recebem um nome automático: o prefixo mais um índice preenchido com zeros começando em zero (
qbone.000,qbone.001, ...). O prefixo éqbonepor padrão e é configurável nas mesmas opções.
Modele malhas deformáveis (opcional)
Um quad plano importado não consegue dobrar, então precisamos adicionar vértices para obter deformação cutout. Quanto mais vértices, mais suave a dobra - mas também mais pesado o rig. A receita exata depende da arte e da animação, mas aqui estão alguns pontos de partida:
Para obter deformação cutout, transforme o sprite em uma malha mais densa com o painel Geração de malha:
Automesh from Alpha (de uma vez) ou Automesh Interactive (prévia modal).
Isto é independente do esqueleto - o automesh apenas remodela a geometria, não toca nos ossos. Pule-o para sprites que só precisam de movimento rígido ou de troca de sprite-frame.
Vincule e pinte os pesos
A vinculação liga os vértices de cada malha aos ossos para que a malha siga a pose.
-
Defina a armadura-alvo: no subpainel Esqueleto, escolha a sua armadura como armadura ativa - a vinculação da Pintura de peso tem ela como alvo.
-
Vincule: no subpainel Vincular do painel Pintura de peso, clique em
Bind to Target Armature(escolha um modo de vinculação se necessário).Alternativa nativa: selecione as malhas, pressione Ctrl+P, depois
Armature Deform. -
Pinte: clique em
Edit Weightspara o modal de pintura de peso no painel, ou use o próprio Modo de Pintura de Peso do Blender.Qualquer caminho produz grupos de vértices nomeados a partir dos ossos. Consulte o fluxo de trabalho do Blender para a receita completa de skinning (densidade do automesh, modos de vinculação, transferência de pesos, instantâneos).
Os nomes dos ossos são o contrato. O escritor exporta um peso apenas quando o nome de um grupo de vértices corresponde exatamente ao nome de um osso.
O Blender os sincroniza em uma direção: renomeie um osso e o Blender renomeia automaticamente o grupo de vértices correspondente em toda malha que aquela armadura deforma (comportamento padrão). O inverso não é verdadeiro - renomear um grupo de vértices não toca no osso, então isso quebra a correspondência e o peso é descartado silenciosamente.
Então: nomeie os ossos de forma significativa desde cedo e sempre renomeie pelo lado do osso, nunca pelo grupo de vértices. A renomeação automática só alcança as malhas que a armadura deforma - uma malha que ainda é apenas filha por objeto (como as malhas importadas são até você vinculá-las) é ignorada, então renomeie o grupo de vértices dela à mão. Consulte as regras de pesos de skinning.
Defina o tipo de cada elemento
Camadas importadas chegam com o tipo já definido a partir do Photoshop se você as marcou corretamente, mas malhas criadas à mão podem ser definidas aqui.
Selecione uma malha e trabalhe no painel Elemento - ele hospeda o seletor de tipo de elemento, e os subpainéis por tipo (Malha ativa / Sprite ativo), Região de textura e Drive from Bone vivem sob ele.
-
Escolha o tipo de elemento: há dois, e cada um mapeia para um nó do Godot:
Mesh(padrão) - uma malha cutout que exporta para umPolygon2D.Sprite- um quad rígido que exporta para umSprite2D. Para umSprite, o subpainel Sprite ativo definehframes/vframes/Frame; o fatiador de prévia no painel mostra a célula escolhida na viewport 3D sem exportar.
Uma camada marcada com
[mesh]no Photoshop chega aqui como umMesh- "mesh" é apenas um sinalizador de criação, não um terceiro tipo. -
Defina a região de textura: no subpainel Região de textura,
autocalcula a região a partir dos limites de UV na exportação;manualpermite fatiar um atlas à mão. Clique emSnap to UV boundspara preencher a região a partir do UV atual.
Refine o rig (opcional)
Estes dão o polimento no rig e são todos opcionais.
-
Controle uma propriedade de sprite a partir de um osso (troca suave): use o subpainel Drive from Bone para conectar um driver do Blender entre um osso de pose e uma propriedade de sprite - bom para mudanças que variam continuamente com a rotação, por exemplo.
-
Auxiliares de pose: no Modo de pose, o subpainel Esqueleto adiciona
Bake Current Pose,Toggle IKeSave Pose to Library, todos do lado do Blender.Bake Current Poseinsere quadros-chave em cada osso no quadro atual - essas chaves exportam como quaisquer outras, então é assim que você fixa um quadro posado (ou guiado por IK) na animação.Toggle IKeSave Pose to Librarypermanecem no Blender: um asset de pose simplesmente vai parar no seu Asset Browser.
IK não faz round-trip de volta para o Godot. Toggle IK é um auxiliar de pose do Blender - o escritor exporta quadros-chave de osso brutos, não constraints, e a cena gerada usa apenas nós nativos. Para levar movimento guiado por IK ao Godot, primeiro asse o resultado do IK em quadros-chave de osso (o Bake Action do Blender com visual keying), ou reconstrua o IK no motor após a importação com os modificadores de IK de esqueleto 2D embutidos do Godot.
Troque variantes com slots (opcional)
Use um slot quando um ponto de fixação alterna entre N variantes discretas: espada / cajado / mão vazia, boca aberta / fechada, sobrancelha para cima / para baixo, uma troca de expressão. O slot é dono das variantes; você alterna entre elas com um único índice.
-
Crie o slot: selecione as malhas que você quer envolver, depois
Skeleton > Create Slot. → Um Vazio de slot é ancorado sob o osso ativo, e as malhas selecionadas se tornam seus anexos. -
Escolha a variante padrão: no subpainel Slot ativo, escolha qual anexo fica visível no carregamento da cena (o ícone SOLO).
-
Anime a troca: deixe a animação ativa, vá até um quadro e clique em
Show Onlynuma linha de anexo no subpainel Slot Ativo para fixar aquele anexo visível (irmãos ocultos), ou(none) / Hide Allpara nenhum anexo. → A troca é pré-visualizada ao vivo na viewport, cada animação mantém sua própria timeline de troca, e o Godot dirige a mesma visibilidade por anexo em runtime.
Consulte examples/generated/slot_cycle/ para o fixture mínimo de slot.
Troca suave vs. troca dura. Drive from Bone é para mudanças contínuas e guiadas. Para uma troca isto/ou aquilo limpa - antebraço frente/trás, espada/cajado, sobrancelha cima/baixo - use slots em vez disso.
Anime
Anime com as ferramentas nativas do Blender (Editor de Ações, Dopesheet, drivers).
O Proscenio não cria animação - o subpainel Animação é um resumo somente leitura das ações que o escritor vai exportar. Cada Ação se torna uma entrada na exportação; strips de NLA ainda não são consumidos, então asse tudo em uma única Ação primeiro. Índices de slot e propriedades de sprite guiadas animam na mesma linha do tempo.
Empacote o atlas (opcional)
Empacotar é opcional. Pule-o e cada sprite mantém a sua própria textura - o PNG por camada, ou o spritesheet composto para um Sprite de múltiplos quadros - e a exportação referencia essas como estão.
Se você empacotar, o subpainel Atlas compõe as texturas em uma única folha: Pack Atlas constrói o atlas e reescreve o texture_region de cada sprite, Unpack Atlas reverte isso, e Apply Packed Atlas revincula a um atlas que você empacotou externamente. Pack Atlas pega cada elemento com uma textura - Mesh e Sprite igualmente - não há como um sprite individual sair do atlas em si. Defina Isolated material em um sprite para manter o seu próprio shader (aditivo, personalizado); ele ainda desenha a partir do atlas empacotado, apenas não através do material compartilhado.
Um Sprite de múltiplos quadros empacotado dessa forma ainda fatia corretamente: a folha inteira permanece como um bloco contíguo no atlas (os UVs do quad do sprite cobrem a folha completa, então o empacotador a pega inteira), e o Godot subdivide aquele bloco - o region_rect do sprite - por hframes / vframes, não o atlas inteiro. Então os índices de frame permanecem idênticos aos do Blender; uma boca de 4 quadros ainda são os quadros 0-3 do seu próprio bloco, onde quer que aquele bloco tenha ido parar.
A exportação referencia qualquer atlas que esteja empacotado na cena em vez de gerar um.
Encontre coisas em rigs grandes
Rigs grandes afogam o outliner nativo do Blender - só o fixture do boneco tem 64 ossos e 22 malhas de sprite. O subpainel Outliner dá uma lista plana centrada em sprites com um filtro de substring e um alternador de favoritos; clique em uma linha para tornar aquele objeto ativo.
Valide e exporte
-
Valide:
Pipeline > Validateverifica cada sprite contra a armadura, o atlas e os campos obrigatórios. → Qualquer erro bloqueia a exportação até você corrigi-lo. -
Exporte:
Pipeline > Export (.proscenio)escreve o JSON.proscenioao lado do.blendde origem. Em salvamentos posteriores,Re-exportreutiliza o caminho fixado sem diálogo.