Entendendo a base: Actor, Pawn e Character
Em Unreal Engine, quase tudo que “existe” no mundo do jogo é um Actor. A partir dele, você escolhe classes mais específicas quando precisa de comportamento de controle, movimento e interação com o jogador.
Actor
- O que é: um objeto que pode ser colocado no mundo (ou spawnado) e pode conter componentes.
- Quando usar: itens, portas, alavancas, projéteis simples, efeitos de ambiente, triggers, objetos decorativos com lógica.
- Ponto-chave: não é “possuível” por um Controller por padrão (não é pensado para ser controlado diretamente pelo jogador).
Pawn
- O que é: um Actor que pode ser possuído (possessed) por um Controller (PlayerController ou AIController).
- Quando usar: qualquer entidade que você quer controlar (jogador, inimigo, drone, veículo simples).
- Ponto-chave: é a base para controle; você normalmente adiciona componentes de movimento/colisão conforme a necessidade.
Character
- O que é: um Pawn especializado para personagens humanoides (ou similares), já preparado para locomoção.
- O que vem pronto: CapsuleComponent (colisão), SkeletalMeshComponent (malha esquelética), CharacterMovementComponent (andar, pular, gravidade, etc.).
- Quando usar: personagens que andam/correm/pulam e precisam de movimentação robusta.
| Classe | É “possuível”? | Uso típico | Vantagem |
|---|---|---|---|
| Actor | Não (por padrão) | Itens, objetos interativos, props com lógica | Leve e flexível |
| Pawn | Sim | Entidades controláveis (player/IA) | Base para controle |
| Character | Sim | Personagens com locomoção | Movimento pronto e completo |
Por que Componentes são a chave da reutilização
Um Blueprint raramente é “um único objeto monolítico”. Em vez disso, ele é uma composição de Componentes, cada um responsável por uma parte do comportamento: visual, colisão, áudio, partículas, etc. Isso facilita reutilização porque você pode replicar a mesma estrutura em vários Blueprints, trocar apenas o mesh/material/efeito e manter a lógica.
Componentes comuns e para que servem
- StaticMeshComponent: representa um objeto 3D estático (uma moeda, caixa, chave). Pode ter materiais, colisão (simples/complexa) e gerar eventos de hit/overlap dependendo da configuração.
- SphereCollision / BoxCollision: volumes de colisão “invisíveis” usados como área de detecção. São ideais para interação (pegar item, entrar em área, acionar trigger) porque são baratos e previsíveis.
- AudioComponent: toca sons no mundo (2D/3D), pode ser disparado ao coletar um item, abrir uma porta, etc.
- ParticleSystemComponent / NiagaraComponent: efeitos visuais (brilho, fumaça, faíscas). Úteis para feedback ao jogador.
Composição vs herança (na prática)
Você pode criar um “ItemColetável” como Actor e compor: Mesh + Colisão + Efeito + Áudio. Amanhã, para criar “ItemRaro”, você pode reutilizar a mesma base e trocar apenas parâmetros (mesh, cor, intensidade do brilho, som). Isso reduz duplicação e torna o projeto mais consistente.
Criando um Blueprint Actor e adicionando componentes (passo a passo)
1) Criar o Blueprint
- No Content Browser, crie um Blueprint Class.
- Escolha Actor como classe base.
- Nomeie como
BP_ItemColetavel.
2) Estruturar os componentes
No Blueprint (aba Components), monte uma hierarquia clara. Uma estrutura comum:
- DefaultSceneRoot (ou um SceneComponent renomeado para
Root) Mesh(StaticMeshComponent) como filho do RootCollision(SphereCollision ou BoxCollision) como filho do RootVFX(Niagara/Particle) como filho do Mesh (ou do Root, dependendo do efeito)Audio(AudioComponent) como filho do Root
Boas práticas: renomeie componentes para facilitar leitura e manutenção (evite “StaticMeshComponent0”).
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
3) Configurar o Static Mesh
- Selecione o componente
Mesh. - No painel Details, defina o Static Mesh (o modelo do item).
- Ajuste Transform (Location/Rotation/Scale) se necessário.
4) Configurar a colisão para detecção (Overlap)
Para item coletável, o mais comum é usar Overlap (não bloqueio).
- Selecione
Collision(SphereCollision ou BoxCollision). - Em Collision Presets, comece com
OverlapAllDynamic(ou crie um preset próprio mais tarde). - Garanta que Generate Overlap Events esteja habilitado.
- Ajuste o tamanho: Sphere Radius (Sphere) ou Box Extent (Box).
Dica: se o item não dispara overlap, normalmente é por um destes motivos: o outro objeto não gera overlap, os canais estão bloqueando/ignorando, ou o volume está pequeno/distorcido.
5) Configurar VFX e áudio
- No
VFX, selecione um sistema de partículas/niagara para um brilho contínuo (idle) ou um efeito de coleta (burst). - No
Audio, defina um Sound Cue/Sound Wave (opcional). Você pode deixar Auto Activate desligado para tocar apenas ao coletar.
Hierarquia de componentes: como pensar e por que importa
A hierarquia define como transformações se propagam. Se o VFX é filho do Mesh, qualquer rotação/escala do Mesh afetará o efeito. Isso é útil para efeitos “colados” no objeto. Se o Collision é filho do Root, você pode ajustar a área de coleta sem mexer no visual.
Exemplo prático de hierarquia
Root (SceneComponent) [Transform geral do item] ├─ Mesh (StaticMeshComponent) [visual] │ └─ VFX (Niagara/Particle) [efeito acompanha o mesh] ├─ Collision (Sphere/Box) [área de coleta] └─ Audio (AudioComponent) [som 3D]Sockets: anexando componentes em pontos específicos
Sockets são pontos nomeados em uma malha (muito comum em Skeletal Mesh, mas também possível em Static Mesh) para anexar outros objetos/efeitos com precisão (ex.: brilho na ponta de uma chave, luz no topo de um poste).
Como usar sockets (visão prática)
- Crie/edite um socket no asset da malha (no editor de Static Mesh ou Skeletal Mesh).
- No Blueprint, selecione o componente que será anexado (ex.:
VFX). - Use o campo de anexo/parent (Attach) e informe o nome do socket (ou faça via Blueprint com um nó de attach, se preferir).
Quando o socket existe, você evita “chutar” offsets manualmente e mantém o posicionamento consistente mesmo se trocar a malha.
Parâmetros no Details: tornando o Blueprint configurável
Um dos maiores ganhos de produtividade é expor variáveis para configurar instâncias do item sem duplicar Blueprints.
Variáveis úteis para um item coletável
ItemID(Name ou String): identificador do item.Valor(Integer/Float): quanto vale ou quanto cura.SomColeta(SoundBase): som ao coletar.EfeitoColeta(Niagara/Particle): efeito ao coletar.DestruirAoColetar(Boolean): se o item some após coleta.
Marque variáveis como Instance Editable para aparecerem no Details quando você selecionar o Actor no mundo. Se fizer sentido, use Expose on Spawn para configurar ao spawnar via Blueprint.
Exercício guiado: criar um “ItemColetável” (mesh + colisão + efeito visual)
Objetivo
Criar um Actor coletável que detecta o jogador por overlap, dispara um efeito visual e usa Tags para identificação.
Passo 1: montar o Blueprint
- Crie
BP_ItemColetavel(Actor). - Adicione componentes:
Mesh(StaticMesh),Collision(SphereCollision),VFX(Niagara/Particle). - Organize a hierarquia: Root → Mesh; Root → Collision; Mesh → VFX.
Passo 2: configurar colisão corretamente
- No
Collision: Collision Presets =OverlapAllDynamic(ponto de partida). - Generate Overlap Events = ligado.
- Ajuste o raio/extent para envolver o item com folga (para facilitar a coleta).
Se você quer que apenas o jogador colete, refine depois usando canais: por exemplo, configurar o Collision para sobrepor apenas Pawn e ignorar o resto. O importante aqui é validar o fluxo de overlap funcionando.
Passo 3: adicionar Tags para identificação
- Selecione o Actor (Blueprint) e, no Details do Blueprint (Class Defaults) ou na instância no mundo, adicione uma Tag em Actor Tags:
Coletavel. - Opcional: adicione uma tag mais específica, como
Item.MoedaouItem.Cura, para filtragens futuras.
Passo 4: evento de overlap e reação
No Event Graph do BP_ItemColetavel:
- Selecione o componente
Collisione adicione o eventoOnComponentBeginOverlap. - Use o
Other Actorpara checar se quem entrou é o jogador (ex.: por classe, por tag, ou por ser Pawn). Uma checagem simples e comum é:Other Actoré do tipo Pawn/Character. - Ao coletar: disparar VFX (se for um efeito de burst, pode ativar/spawnar), tocar som (se tiver Audio), e destruir o Actor.
Collision → OnComponentBeginOverlap → (Validar Other Actor) → Ativar/Spawn VFX → (Opcional) Tocar som → Destroy ActorObservação: se o seu VFX for contínuo (idle), você pode manter ele ativo e, no momento da coleta, trocar para um efeito de burst (spawn) ou apenas desativar o idle antes de destruir.
Passo 5: ajustes finos e depuração rápida
- Se o overlap não dispara: verifique se o jogador também tem colisão habilitada e se não está tudo em “Ignore”.
- Se o item bloqueia o jogador: você está usando “Block” em vez de “Overlap”. Troque o preset.
- Se a área de coleta parece deslocada: confira a hierarquia e o Transform do componente
Collision. - Se o VFX está fora do lugar: anexe ao Mesh ou use socket; evite offsets “no olho” quando a malha pode mudar.