Voltar para o Blog
Quest Log

Importar modelo 3D do Blender para a Godot (glTF)

Modelo 3D estilizado sendo importado de um app de modelagem para a viewport de uma game engine

Importar modelo 3D do Blender para a Godot passo a passo: exportar glTF (.glb), corrigir escala, rotação e eixos, materiais, texturas e reimportar sem perder ajustes.

Ferramenta:GodotBlender

Importar modelo 3D do Blender para a Godot é um daqueles passos que parecem triviais e viram uma hora de frustração quando o modelo chega deitado, gigante, cinza ou sem textura. A boa notícia é que o caminho certo é curto e estável: exportar em glTF e deixar o importador da Godot fazer o resto. Este guia é o fluxo que eu uso numa cena real, do Blender até a cena instanciada rodando no jogo.

Antes de qualquer coisa, uma decisão que resolve metade dos problemas: use glTF 2.0, de preferência o binário .glb. É o formato recomendado oficialmente pela Godot, carrega geometria, materiais, texturas, armadura e animação num arquivo só, e não depende de plugin externo como o FBX depende. OBJ até funciona para um prop estático simples, mas perde material e animação. Para asset novo, glTF e ponto final.

Exportar do Blender em glTF (.glb)

No Blender, com o objeto pronto, a exportação é por File > Export > glTF 2.0 (.glb/.gltf). As opções que importam de verdade ficam no painel lateral da janela de exportação.

No campo Format, escolha glTF Binary (.glb). Ele empacota tudo num arquivo único, incluindo as texturas embutidas. É o que evita o clássico "importei e as texturas não vieram".

Em Include, decida o que entra. Se você só quer a malha selecionada, marque Selected Objects. Em Transform, deixe +Y Up marcado: é isso que converte o eixo do Blender (Z para cima) para o eixo da Godot (Y para cima) na hora da exportação. Esse único checkbox resolve o modelo que chega deitado.

Antes de exportar, faça uma coisa no Blender que economiza dor depois: aplique as transformações. Com o objeto selecionado, Ctrl+A e escolha All Transforms (ou ao menos Rotation & Scale). Isso zera escala e rotação acumuladas no objeto, de modo que ele sai do Blender com transform limpo. Modelo que vem com escala 0.01 ou rotação de 90 graus "presa" quase sempre é transform não aplicado.

Salve o .glb direto dentro da pasta do projeto Godot, por exemplo em res://models/. A Godot detecta o arquivo novo e importa sozinha assim que a janela do editor volta a ter foco.

Importar na Godot 4 e entender o que acontece

Quando o .glb entra na pasta do projeto, a Godot não copia o arquivo para dentro de uma cena: ela cria um recurso importado e mantém o .glb como fonte. No painel FileSystem, dê um duplo clique no arquivo e a aba Import aparece no canto. É ali que mora o controle do processo.

O ponto mais importante de entender: o .glb é a fonte, e a cena que a Godot gera a partir dele é derivada. Toda vez que você reexporta do Blender, a Godot reimporta e regenera essa cena. Por isso não se edita a cena importada direto, mas já chego lá.

Por padrão, o Import As vem como Scene (PackedScene). É o que você quer para um modelo de verdade: a Godot monta uma cena com um nó raiz, as malhas como MeshInstance3D, a armadura como Skeleton3D e as animações num AnimationPlayer, tudo pronto para instanciar.

Corrigir escala, rotação e eixos

Se você aplicou as transformações no Blender e exportou com +Y Up, na maioria dos casos o modelo já chega de pé e no tamanho certo. Quando ainda vem torto, o ajuste é na aba Import, não na cena.

Para escala global, a aba Import tem um campo que multiplica o modelo inteiro na importação. Use quando o modelo veio consistentemente pequeno ou grande e você não quer voltar ao Blender. É um ajuste de fonte: afeta o .glb importado, não uma instância solta.

Para rotação, o caminho honesto é corrigir no Blender e reexportar, porque um eixo errado na fonte vai te perseguir em toda animação e todo ponto de ancoragem depois. Girar na Godot para "consertar" resolve o visual e esconde o problema real.

Uma dica de sanidade: modele e exporte pensando que 1 unidade da Godot é 1 metro. Se o seu personagem tem 1.8 de altura no Blender em metros, ele chega com a escala certa para um mundo em metros na Godot, e a física, a câmera e a iluminação se comportam como você espera. Montar um personagem com 180 unidades de altura funciona, mas quebra a intuição de todo o resto do projeto.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

Materiais e texturas que chegam junto

Com o .glb binário, as texturas vêm embutidas, então o material base aparece já na importação. A Godot converte o material glTF em StandardMaterial3D, com as texturas de albedo, normal, metallic e roughness nos canais certos quando você exportou tudo pelo Blender.

Dois cuidados valem a pena. O primeiro: o material que vem embutido no .glb é read-only, porque pertence à fonte. Se você quer mexer nele dentro da Godot, a aba Import tem a opção de extrair os materiais para arquivos .tres separados, que aí sim você edita livremente sem a reimportação sobrescrever. O segundo: canais como normal e roughness precisam estar no espaço de cor correto. A Godot costuma acertar isso na importação do glTF, mas se um normal map parecer "estourado", confira se ele não foi importado como sRGB em vez de linear.

Se o seu objetivo é um acabamento mais realista, o material importado é só o ponto de partida. Dá para aprofundar cada canal, rugosidade, metalicidade e emissão, no fluxo de material 3D PBR na Godot, que é onde o modelo importado deixa de parecer protótipo cinza. E com o material no ponto, o que faz o modelo "assentar" na cena é a luz: vale cruzar com iluminação 3D no Godot antes de julgar o visual do asset, porque muito modelo "feio" é só modelo mal iluminado.

Organizar o import: Advanced Import Settings

Para qualquer modelo além do prop mais simples, abra o Advanced Import Settings com um duplo clique no .glb e depois no botão no topo da aba Import. É uma janela com a cena importada de um lado e a árvore de nós do outro, e ela resolve ajustes por nó que você faria repetidas vezes na mão.

Ali você define, por nó ou globalmente:

  • Física: marcar uma malha para gerar CollisionShape na importação, escolhendo entre colisão convexa, trimesh ou caixa, sem adicionar o nó depois toda vez.
  • Malhas e LOD: ativar a geração automática de níveis de detalhe, e marcar se a malha deve ter dados para lightmap (o segundo canal de UV que o bake de luz usa).
  • Animações: definir loop por clipe, recortar a timeline em clipes nomeados e escolher o modo de otimização de cada um.
  • Skip e remap: pular nós que vieram do Blender e você não quer na cena, como lâmpadas ou câmeras auxiliares.

A vantagem de resolver aqui é que tudo fica gravado nas configurações de importação do .glb. Reexportou do Blender, a Godot reimporta e reaplica essas regras sozinha. Você configura uma vez por asset.

Reimportar sem perder os ajustes

Esta é a parte que mais gera retrabalho em quem está começando, então vale a regra em uma frase: nunca edite a cena importada direto, instancie ela.

O padrão correto é tratar o .glb como uma cena-fonte e usar uma cena de jogo separada que a instancia. Na prática: você arrasta o .glb da aba FileSystem para dentro da sua cena de nível, e ele entra como uma instância. Os ajustes de posicionamento, scripts e nós extras (como uma CollisionShape3D manual, pontos de spawn, um AudioStreamPlayer3D) ficam nessa cena de uso, não na fonte.

Quando você reexporta do Blender e a Godot reimporta o .glb, só a fonte muda. A instância na sua cena de nível continua com todos os ajustes intactos, porque eles nunca estiveram dentro do arquivo importado. Se precisar alterar a hierarquia interna da instância, clique com o direito nela e ative Editable Children: isso expõe os nós internos para edição pontual, ainda sem tocar na fonte.

Carregar e instanciar esse modelo por código segue o mesmo princípio, com tipagem:

extends Node3D

@export var modelo_cena: PackedScene

func _ready() -> void:
    var modelo: Node3D = modelo_cena.instantiate()
    add_child(modelo)
    modelo.position = Vector3(0.0, 0.0, 0.0)

E quando você quer spawnar várias cópias do mesmo asset importado, o .glb continua sendo a fonte única: cada instantiate() cria uma instância independente, e um ajuste na fonte propaga para todas na próxima reimportação.

extends Node3D

@export var inimigo_cena: PackedScene
@export var quantidade: int = 5
@export var espacamento: float = 2.0

func _ready() -> void:
    for i: int in range(quantidade):
        var inimigo: Node3D = inimigo_cena.instantiate()
        add_child(inimigo)
        inimigo.position = Vector3(i * espacamento, 0.0, 0.0)

Checklist do fluxo que funciona

Resumindo o caminho inteiro, na ordem em que eu faço:

  1. No Blender, aplique as transformações com Ctrl+A (All Transforms).
  2. Exporte em glTF Binary (.glb) com +Y Up marcado, direto para a pasta do projeto.
  3. Na Godot, confirme que importou como Scene (PackedScene).
  4. Ajuste escala global na aba Import só se vier consistentemente errado; rotação, conserte no Blender.
  5. Extraia materiais para .tres se for editar o acabamento.
  6. Use o Advanced Import Settings para colisão, LOD e clipes de animação.
  7. Instancie o .glb na sua cena de jogo; faça todos os ajustes na instância.
  8. Reexporte do Blender à vontade: a reimportação não toca nos seus ajustes.

Esse ciclo é o que te deixa iterar no modelo sem medo. Você mexe no Blender, salva, volta para a Godot e o asset se atualiza na cena com tudo que você montou em volta intacto.

Com o modelo importado, materializado e iluminado, o próximo passo é botar ele para andar numa cena jogável de verdade, que é o que cubro no primeiro jogo 3D na Godot. E se você está montando esse pipeline sozinho e sentindo que cada etapa vira uma caça ao tutorial, vale ler a comparação honesta sobre aprender a criar jogos sozinho ou por curso antes de decidir como investir seu tempo.

Importar um modelo bem feito não é sorte: é formato certo, transform aplicado e respeito à separação entre fonte e cena de uso. Acertando esses três, o modelo chega na Godot do jeito que saiu do Blender, e você passa a gastar seu tempo fazendo jogo em vez de consertando import.

Perguntas frequentes

Qual formato usar para importar modelo 3D do Blender para a Godot?

glTF 2.0, de preferência o binário .glb. É o formato recomendado oficialmente pela Godot: carrega geometria, materiais, texturas, armadura e animação num único arquivo. Esqueça FBX e OBJ para assets novos. O .glb importa limpo e sem dependência de plugin externo.

Por que meu modelo importado fica deitado ou com escala errada na Godot?

É diferença de eixo e de unidade. O Blender usa Z para cima, a Godot usa Y para cima; o exportador glTF já converte isso quando você usa +Y Up na exportação. Se o modelo vem gigante ou minúsculo, aplique escala no Blender com Ctrl+A antes de exportar e confira as unidades da cena.

Como reimportar o modelo sem perder os ajustes que fiz na Godot?

Nunca edite a cena importada direto. Instancie a cena do .glb na sua cena principal ou use Editable Children, e faça os ajustes ali. Assim, quando você reexportar do Blender e a Godot reimportar o .glb, seus ajustes ficam na cena de uso e não são sobrescritos.

As texturas vêm junto no arquivo .glb?

No .glb binário sim: as texturas ficam embutidas no próprio arquivo. No .gltf separado elas vêm como arquivos soltos ao lado. Para importar na Godot, o .glb é mais simples porque é um arquivo único, sem risco de esquecer uma textura para trás.