Voltar para o Blog
Quest Log

ProBuilder na Unity: Blockout de Fase sem Sair da Engine

Fase 3D em blocos cinza com corredor, escada, porta e plataformas, e uma cápsula representando o jogador

Unity ProBuilder para blockout: formas, extrusão, portas e escadas na escala do jogador, teste com um controller em C# e quando exportar a fase para o Blender.

Ferramenta:Unity

ProBuilder na Unity: Blockout de Fase sem Sair da Engine

O Unity ProBuilder é a ferramenta de modelagem dentro da própria engine, e o melhor uso dela é o blockout: montar a fase inteira em blocos cinza, na escala certa, e jogar antes de existir qualquer arte. Você instala pelo Package Manager, cria formas pelo overlay Tools da Scene view, extruda faces para fazer salas e corredores e testa tudo com um personagem simples. Aqui você monta uma fase pequena em uma tarde: sala, corredor, porta, escada e uma sequência de pulos, com medidas de referência e um script de teste em C#.

O que define se o blockout presta não é a ferramenta, é a escala. Fase bonita no editor e apertada para o jogador é o erro mais comum, e ele só aparece quando você anda por ela.

Por que fazer blockout antes da arte

Arte é cara de mudar. Se o corredor ficou comprido demais depois de modelado, texturizado e iluminado, encurtar envolve refazer modelo, UV e luz. No blockout, você arrasta uma face e pronto.

O blockout responde as perguntas que importam para a jogabilidade:

  • O jogador entende para onde ir sem placa?
  • O pulo entre as plataformas é desafiador ou impossível?
  • O inimigo consegue ver o jogador daquela janela?
  • A sala de combate tem espaço para desviar?

Os princípios por trás dessas perguntas estão em design de levels: princípios e práticas. Aqui o foco é a execução na Unity. Quem usa Godot faz o mesmo processo com nós CSG, explicado em blockout com CSG no Godot.

Instalar o ProBuilder

  1. Window > Package Management > Package Manager.
  2. No menu da esquerda, Unity Registry.
  3. Busque ProBuilder e clique em Install.

No Unity 6.3, o pacote está na versão 6 (com.unity.probuilder, 6.1.3 segundo o manual do 6.3 em out/2026). Se você vem de tutoriais antigos, a interface mudou bastante:

  • A janela flutuante do ProBuilder não existe mais. Os botões de criação estão no overlay Tools da Scene view.
  • O ProBuilder tem um tool context próprio, que você ativa no topo do overlay Tools. Com ele ativo, o overlay Tool Settings mostra os modos Vertex, Edge e Face.
  • As ações que dependem de seleção (Extrude, Bridge, Weld Vertices) e as que valem para o objeto inteiro (Subdivide, Center Pivot, Export) aparecem no menu de contexto da Scene view, com o botão direito.
  • O menu principal também tem Tools > ProBuilder com Editors (New Shape, New Poly Shape, UV Editor), Object > Pro Builderize e Export.

Se o overlay Tools não aparece, aperte ` (crase) na Scene view para abrir o menu de overlays e ligue.

ProBuilder na Unity: shapes, faces e extrusão

Criar uma forma. No overlay Tools, clique em Create Cube (ou Tools > ProBuilder > Editors > New Shape). Arraste na Scene view para desenhar a base e depois arraste para cima para a altura. No Tool Settings, você troca o tipo de forma (cubo, cilindro, escada, porta, arco) e digita as dimensões exatas. Segure Shift logo depois de criar para gerar uma cópia da mesma forma.

Poly Shape. Para um piso de formato irregular, use Create PolyShape: clique ponto a ponto no chão, feche o contorno e defina a altura. No ProBuilder 6 você desenha várias formas seguidas sem sair da ferramenta.

Editar elementos. Ative o tool context do ProBuilder, escolha Face no Tool Settings e clique numa face. Com a ferramenta Move (W), arraste para mudar a dimensão do bloco.

Extrudar. Com a face selecionada, segure Shift e arraste com a ferramenta Move: o ProBuilder cria geometria nova a partir da face. Também dá para usar o botão direito > Extrude Faces. É assim que um cubo vira um corredor em L: seleciona a face da ponta, Shift + arrasta, gira a direção, Shift + arrasta de novo.

Snap. Ligue o grid snapping na barra da Scene view (ícone de grade) com incremento de 0,5 ou 1. Blockout fora do grid gera fresta entre blocos, e o personagem enrosca nela.

Escala de referência: altura do jogador, porta e degrau

Na Unity, 1 unidade = 1 metro para física, luz e áudio. Monte o blockout nessa convenção. Medidas de partida que funcionam para personagem humano em terceira ou primeira pessoa:

ElementoMedida inicial
Jogador1,8 m de altura, 0,5 m de raio
Porta1,2 m de largura, 2,2 m de altura
Corredor2,5 a 3 m de largura
Pé-direito de sala3 a 4 m
Degrau0,2 m de altura, 0,3 m de profundidade
Mureta que bloqueia puloacima da altura de pulo

Duas regras de jogo, não de arquitetura:

  1. Corredor e porta de jogo são maiores que os reais. A câmera em terceira pessoa precisa de espaço atrás do personagem. Porta de 0,8 m como na vida real faz a câmera atravessar a parede.
  2. O degrau depende do CharacterController. O componente tem Step Offset (0,3 por padrão) e Slope Limit (45 graus por padrão). Degrau mais alto que o Step Offset trava o jogador; rampa mais íngreme que o Slope Limit vira parede.

Crie um prefab Escala_Jogador com uma cápsula de 1,8 m e deixe uma cópia em cada sala enquanto monta. Olhar a cápsula ao lado da porta resolve metade dos problemas antes do Play.

Montar o blockout é rápido. Fazer o personagem final, com animação, câmera de verdade e inimigos, caber nesse espaço sem um sistema quebrar o outro é a etapa em que muita gente desiste do projeto, porque os tutoriais ensinam cada sistema numa cena vazia. Ver um jogo montado de ponta a ponta, com a fase sendo testada e corrigida, é o que destrava isso. A montagem e o teste vêm a seguir.

Curso de Unity
Quer fazer seu primeiro jogo na Unity?

No curso de Unity 6 da CursoGame.Dev você vai do zero ao primeiro jogo, com um desafio prático em cada level e suporte individual no WhatsApp quando travar.

Conhecer o curso de Unity
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Montar sala, corredor e plataforma de pulo

Uma fase de teste com tudo que o blockout precisa validar:

  1. Sala inicial. Cubo de 10 x 4 x 10. No modo Face, selecione a face de cima e apague com o botão direito > Delete Faces para abrir o teto. Com o botão direito > Flip Normals no objeto todo, as paredes passam a ser vistas por dentro. Outro caminho é montar chão e paredes com cubos finos separados, que dá mais controle de colisão.
  2. Porta. Use a forma Door do Create Shape, ou corte: selecione a face da parede, subdivida e apague o quadrado do vão.
  3. Corredor. Extrude a partir da porta, 3 m de largura, com uma curva de 90 graus no meio para quebrar a linha de visão.
  4. Escada. Forma Stairs no Create Shape: defina altura total de 2 m e deixe o número de degraus resultar em degraus de cerca de 0,2 m.
  5. Sequência de pulos. Três cubos de 2 x 0,5 x 2 com distâncias crescentes: 2 m, 3 m e 4 m entre bordas. O último deve falhar se o jogador não correr, e você vai ajustar depois de jogar.
  6. Área de combate. Uma sala de 15 x 15 com dois cubos de cobertura de 1,2 m de altura.

Pinte categorias com cores diferentes usando o Material Editor (Tools > ProBuilder > Editors > Open Material Editor): chão cinza, parede cinza escuro, plataforma de pulo amarela, elemento interativo vermelho. Cor no blockout é informação para o jogador, não decoração.

Testar com o personagem e iterar

Blockout sem jogar é maquete. Coloque um personagem e ande. Se você ainda não tem controle pronto, este script resolve para o teste. Crie BlockoutTester.cs:

using UnityEngine;
using UnityEngine.InputSystem;

[RequireComponent(typeof(CharacterController))]
public class BlockoutTester : MonoBehaviour
{
    [SerializeField] private Transform cameraPivot;
    [SerializeField] private float moveSpeed = 5f;
    [SerializeField] private float sprintSpeed = 8f;
    [SerializeField] private float jumpHeight = 1.2f;
    [SerializeField] private float gravity = -20f;
    [SerializeField] private float mouseSensitivity = 0.1f;

    private CharacterController controller;
    private float verticalVelocity;
    private float pitch;

    private void Awake()
    {
        controller = GetComponent<CharacterController>();
        Cursor.lockState = CursorLockMode.Locked;
    }

    private void Update()
    {
        Keyboard keyboard = Keyboard.current;
        Mouse mouse = Mouse.current;
        if (keyboard == null || mouse == null)
        {
            return;
        }

        Vector2 look = mouse.delta.ReadValue() * mouseSensitivity;
        transform.Rotate(0f, look.x, 0f);
        pitch = Mathf.Clamp(pitch - look.y, -80f, 80f);
        cameraPivot.localEulerAngles = new Vector3(pitch, 0f, 0f);

        Vector2 input = Vector2.zero;
        if (keyboard.wKey.isPressed) input.y += 1f;
        if (keyboard.sKey.isPressed) input.y -= 1f;
        if (keyboard.dKey.isPressed) input.x += 1f;
        if (keyboard.aKey.isPressed) input.x -= 1f;

        float speed = keyboard.leftShiftKey.isPressed ? sprintSpeed : moveSpeed;
        Vector3 move = (transform.right * input.x + transform.forward * input.y).normalized * speed;

        if (controller.isGrounded && verticalVelocity < 0f)
        {
            verticalVelocity = -2f;
        }

        if (controller.isGrounded && keyboard.spaceKey.wasPressedThisFrame)
        {
            verticalVelocity = Mathf.Sqrt(jumpHeight * -2f * gravity);
        }

        verticalVelocity += gravity * Time.deltaTime;
        move.y = verticalVelocity;
        controller.Move(move * Time.deltaTime);
    }
}

Monte assim: um GameObject Jogador com CharacterController (Height 1,8, Radius 0,4, Center Y 0,9) e o script; um filho CameraPivot na altura de 1,6 m; a Main Camera dentro do pivô. Arraste o pivô para o campo cameraPivot. O script lê o teclado e o mouse direto pelo Input System, que já vem ativo em projeto novo do Unity 6.

O jumpHeight em metros é proposital. A fórmula Mathf.Sqrt(jumpHeight * -2f * gravity) dá a velocidade inicial exata para o pulo subir aquela altura. Assim a medida do blockout e a medida do personagem falam a mesma língua: pulo de 1,2 m, mureta de 1,3 m bloqueia, caixa de 1 m dá para subir.

Aperte Play e faça o percurso cronometrando. Anote onde você hesitou, onde a câmera bateu na parede e qual pulo foi fácil demais. Pare, ajuste os blocos com o ProBuilder, jogue de novo. Três ou quatro voltas desse ciclo valem mais que um dia de arte.

Exportar para o Blender ou substituir por assets

Com a fase aprovada, você tem três caminhos:

  1. Substituir por assets modulares. Peças de parede, chão e porta com as mesmas medidas do grid substituem os blocos um a um. É o caminho mais rápido quando você usa um kit modular.
  2. Exportar para o Blender e modelar em cima. Com o objeto selecionado, Tools > ProBuilder > Export > Export Obj, ou instale o pacote FBX Exporter e use GameObject > Export To FBX. No Blender, o blockout vira a referência de escala para o cenário final. Na volta, exporte o FBX do Blender com Apply Transform e os eixos certos, para a escala e a rotação chegarem iguais na Unity.
  3. Manter o ProBuilder na arte final. Para jogos de estilo flat ou low poly, texturize com o UV Editor e materiais simples. Funciona e muitos jogos pequenos saem assim.

Em todos os casos, guarde a cena de blockout no projeto. Quando algo não encaixar na arte final, você compara com o original.

Erros comuns: escala errada, colisão faltando

Tudo parece pequeno no Play. Você modelou olhando a Scene view, não a cápsula do jogador. Coloque o prefab de escala e reveja portas e corredores.

O personagem atravessa a parede. O objeto do ProBuilder recebe um MeshCollider por padrão, mas blocos com normais invertidas ou faces apagadas deixam buracos na colisão. Confira cada sala andando colado nas paredes.

O personagem enrosca em degrau ou em emenda. Bloco fora do grid ou degrau maior que o Step Offset. Ligue o snap e meça.

A câmera entra na parede. Corredor estreito para câmera em terceira pessoa. Alargue ou limite a distância da câmera.

Textura esticada depois de escalar. Escalar pelo Transform deforma o UV. Prefira mudar o tamanho editando faces no modo Face, que mantém a textura proporcional.

Próximo passo

Monte a fase de teste desta página em uma tarde: sala, corredor, porta, escada, três pulos e a arena. Jogue com o BlockoutTester, ajuste e só depois troque o controller de teste por um de verdade, com aceleração e câmera em terceira pessoa. Esse é o assunto do post de movimento de personagem 3D na Unity.

Perguntas frequentes

Onde ficou a janela do ProBuilder no Unity 6?

O ProBuilder 6 removeu a janela antiga. Você ativa o contexto do ProBuilder no overlay Tools da Scene view; os modos Vertex, Edge e Face vão para o overlay Tool Settings e as ações (Extrude, Bridge, Subdivide, Export) aparecem no menu de contexto da Scene view, com o botão direito.

O que é greybox ou blockout em level design?

É a versão da fase feita só com formas simples e cinza, na escala certa, para testar navegação, ritmo e combate antes de produzir arte. Mudar um bloco leva segundos; mudar um cenário modelado e texturizado leva dias.

ProBuilder serve para a arte final do jogo?

Serve para jogos de estilo simples e para colisões, e dá para texturizar com o UV Editor. Para cenário detalhado, o caminho comum é usar o blockout como referência no Blender ou substituir os blocos por assets modulares.

Qual escala usar no blockout da Unity?

Uma unidade da Unity é tratada como um metro. Pense em jogador com cerca de 1,8 m, porta com 1 a 1,2 m de largura e 2,2 m de altura, degrau abaixo do Step Offset do CharacterController e pé-direito de 3 m.