Atores, Componentes e hierarquia: base da lógica de gameplay em Unreal Engine

Capítulo 3

Tempo estimado de leitura: 8 minutos

+ Exercício

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ípicoVantagem
ActorNão (por padrão)Itens, objetos interativos, props com lógicaLeve e flexível
PawnSimEntidades controláveis (player/IA)Base para controle
CharacterSimPersonagens com locomoçãoMovimento 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 Root
  • Collision (SphereCollision ou BoxCollision) como filho do Root
  • VFX (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”).

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

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.Moeda ou Item.Cura, para filtragens futuras.

Passo 4: evento de overlap e reação

No Event Graph do BP_ItemColetavel:

  • Selecione o componente Collision e adicione o evento OnComponentBeginOverlap.
  • Use o Other Actor para 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 Actor

Observaçã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.

Agora responda o exercício sobre o conteúdo:

Ao criar um Actor coletável que deve detectar o jogador sem bloquear sua passagem, qual configuração de colisão é a mais adequada para garantir que o evento de overlap dispare?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Para coleta, o ideal é detectar entrada na área sem bloquear o jogador. Um volume de colisão (Sphere/Box) com preset de Overlap e Generate Overlap Events ligado garante o disparo do evento de overlap.

Próximo capitúlo

Blueprints: Eventos e fluxo de execução para lógica de gameplay

Arrow Right Icon
Capa do Ebook gratuito Unreal Engine para Iniciantes: Fundamentos de Blueprints e Lógica de Gameplay
18%

Unreal Engine para Iniciantes: Fundamentos de Blueprints e Lógica de Gameplay

Novo curso

17 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.