A Geometria do Combate: Hitboxes, Hurtboxes e Pushboxes
Nos sistemas de combate dos jogos eletrônicos, o que os jogadores visualizam na tela raramente reflete os cálculos executados pelo motor de física subjacente. Modelos visuais tridimensionais de alta fidelidade, compostos por dezenas de milhares de polígonos, roupas dinâmicas e articulações detalhadas, são computacionalmente inviáveis para simulações de física em tempo real. Por esse motivo, os motores separam completamente a renderização gráfica da física geométrica, criando volumes invisíveis e simplificados que determinam se um ataque acerta, se uma entidade recebe dano e de que forma os personagens ocupam o espaço no cenário.
Para organizar a lógica de combate com precisão, os motores dividem as colisões de um personagem em três volumes funcionais distintos:
+-------------------------------------------------------------------------+
| TRÍADE DE COLISÃO DE COMBATE |
+-------------------------------------------------------------------------+
| 1. HITBOX (Volume Ofensivo Ativo) |
| - Gerado unicamente durante os quadros ativos do ataque |
| - Percorre o espaço em busca de alvos vulneráveis em interseção |
| - Dispara o cômputo de dano, o hitstop e impulsos de repulsão |
+-------------------------------------------------------------------------+
| 2. HURTBOX (Volume Passivo de Vulnerabilidade) |
| - Vinculado aos ossos da estrutura esquelética (cabeça, tronco, etc)|
| - Atualiza suas matrizes de rotação e translação a cada animação |
| - Receptor passivo: registra dano ao sofrer invasão por uma Hitbox |
+-------------------------------------------------------------------------+
| 3. PUSHBOX / COLISOR DE AMBIENTE (Volume Físico Sólido) |
| - Geralmente uma cápsula vertical, cilindro ou paralelepípedo |
| - Resolve o contato com o terreno (chão, paredes, rampas) |
| - Impede que personagens atravessem uns aos outros ou o cenário |
+-------------------------------------------------------------------------+
A Necessidade Estrutural do Isolamento Espacial
Se um jogo unificasse todas as interações em um único colisor físico, as mecânicas de combate entrariam em colapso:
- Caso a cápsula de navegação ambiental registrasse dano, golpes que passassem no ar perto de braços estendidos resultariam em acertos injustos.
- Se as armas compartilhassem a física de bloqueio do corpo, desferir um golpe de espada larga contra um inimigo pararia a lâmina bruscamente no momento em que ela tocasse a borda externa da colisão, impedindo que a espada atravessasse o tronco para concluir o golpe cortante.
- Ao separar Hitboxes (causadores de dano), Hurtboxes (receptores de dano) e Pushboxes (fronteiras físicas sólidas), o motor pode configurar canais de resposta de colisão (Collision Response Channels) independentes, ignorando certas interações e disparando eventos de sobreposição (Overlap) em outras.
O Pipeline de Colisão em Duas Fases: Fase Ampla vs. Fase Estreita
Em jogos de ação modernos com dezenas de inimigos na tela, projéteis arcanos e elementos interativos, testar cada formato geométrico contra todos os outros a cada quadro geraria uma explosão de processamento na ordem de $O(N^2)$. Caso uma cena contenha 100 entidades físicas, um algoritmo ingênuo realizaria:
$$\frac{100 \times 99}{2} = 4,950 \text{ testes de interseção por ciclo}$$
Para sustentar taxas de atualização de física de 60Hz ou 144Hz, os motores de física (como PhysX, Chaos e Havok) dividem as consultas espaciais em duas fases sequenciais:
[ Todas as Entidades Físicas na Cena ]
|
v
+-----------------------------------------------------------+
| FASE AMPLA (Broad Phase): Particionamento Espacial Amplo |
| - Utiliza Caixas Alinhadas aos Eixos (AABB) |
| - Processa Árvores BVH, Octrees ou Varredura e Poda (SAP) |
| - Descarta instantaneamente de 95% a 99% dos pares |
+-----------------------------------------------------------+
|
| (Apenas Pares Candidatos a Sobreposição)
v
+-----------------------------------------------------------+
| FASE ESTREITA (Narrow Phase): Resolução Geométrica Exata |
| - Testa primitivas específicas (Esferas, Cápsulas, OBBs) |
| - Executa o Teorema do Eixo Separador (SAT) ou GJK |
| - Calcula pontos de contato exatos, normais e penetração |
+-----------------------------------------------------------+
|
v
[ Eventos de Jogabilidade: TakeDamage(), ApplyImpulse() ]
1. Particionamento e Aceleração na Fase Ampla
A fase ampla desconsidera detalhes anatômicos. Cada elemento da cena é encapsulado dentro de uma Caixa Delimitadora Alinhada aos Eixos (Axis-Aligned Bounding Box, AABB), cujas faces permanecem estritamente paralelas aos eixos globais $(X, Y, Z)$. A verificação de sobreposição entre duas caixas AABB requer apenas comparações escalares simples entre coordenadas mínimas e máximas:
$$\text{Overlap} \iff (A_{\min}^x \le B_{\max}^x \land A_{\max}^x \ge B_{\min}^x) \land (A_{\min}^y \le B_{\max}^y \land A_{\max}^y \ge B_{\min}^y) \land (A_{\min}^z \le B_{\max}^z \land A_{\max}^z \ge B_{\min}^z)$$
Estruturas hierárquicas como a Hierarquia de Volumes Delimitadores (BVH), Octrees ou o método de Varredura e Poda (Sweep and Prune) agrupam objetos próximos em nós de árvores espaciais. Se a caixa delimitadora do golpe de uma espada não interceptar o nó pai que engloba um grupo de inimigos distantes, o motor descarta dezenas de checagens em um único ciclo, reduzindo a complexidade de $O(N^2)$ para $O(N \log N)$ ou próximo de $O(N)$.
2. Resolução Geométrica na Fase Estreita
Os pares que superam o filtro da fase ampla avançam para a fase estreita, onde fórmulas matemáticas de alta precisão avaliam as primitivas:
- Esfera contra Esfera: O teste mais rápido do espaço tridimensional. Basta constatar se a distância entre centros ao quadrado é menor que a soma dos raios ao quadrado $(|C_1 - C_2|^2 \le (R_1 + R_2)^2)$.
- Cápsula contra Cápsula: Localiza o menor segmento de reta entre os dois eixos esqueléticos internos e compara com o raio cumulativo. Por casar perfeitamente com os membros humanos, é a forma padrão para as Hurtboxes de personagens.
- Caixas Orientadas (OBB) e Cascos Convexos: Resolvidas pelo Teorema do Eixo Separador (SAT) ou pelo algoritmo de distância GJK (Gilbert-Johnson-Keerthi). Se for possível traçar um plano separador sem sobreposição em qualquer eixo viável, os dois corpos não se tocam.
A checagem direta triângulo a triângulo (Per-Polygon Mesh) é evitada categoricamente em combates dinâmicos. Submeter dezenas de milhares de polígonos deformados por animação a testes de colisão simultâneos paralisaria as threads da CPU, provocando severas quedas de quadros.
Detecção Discreta vs. Detecção Contínua (CCD): O Fenômeno do Efeito Túnel
A anomalia de colisão mais recorrente em jogos de combate é o efeito túnel (tunneling, comumente chamado de "atravessamento fantasma" ou "tiro que sumiu"). Ocorre quando um corpo em alta velocidade pula integralmente a barreira física de seu alvo entre dois quadros sucessivos da física.
A Mecânica Matemática do Efeito Túnel
A maior parte dos motores opera por padrão com a Detecção de Colisão Discreta. Nela, as posições dos objetos são avaliadas unicamente em intervalos de tempo discretos $t, t + \Delta t$:
Quadro N (Tempo = t): Quadro N+1 (Tempo = t + dt):
[ Bala / Espada ] --- Velocidade v ---> [ Bala / Espada ]
o o
(em x=10) (em x=60)
| Escudo / Inimigo |
| [x=30..35] |
Se um corpo se move a uma velocidade $v$, seu deslocamento em um intervalo de simulação é:
$$\Delta x = v \cdot \Delta t$$
Se a espessura do obstáculo $W_{\text{target}}$ somada ao diâmetro do objeto $D_{\text{proj}}$ for inferior ao deslocamento do quadro:
$$W_{\text{target}} + D_{\text{proj}} < v \cdot \Delta t$$
No quadro $N$, o projétil se encontrava antes do obstáculo; no quadro $N+1$, ele já se localiza inteiramente atrás dele. Como o motor discreto consulta apenas as posições estáticas nesses instantes específicos, nenhum contato é registrado. A espada ou o projétil atravessa o corpo como se ele não existisse.
Arquiteturas de Detecção Contínua de Colisão (CCD)
Para conter o efeito túnel em projéteis velozes, pontas de espadas e personagens arremessados, os motores adotam a Detecção Contínua de Colisão (CCD) por meio de dois métodos principais:
+----------------------------------------------------------------------------+
| MODALIDADES DE CCD |
+----------------------------------------------------------------------------+
| 1. CCD BASEADA EM VARREDURA (Sweep-based CCD / Volume Extrudado) |
| - Extruda a forma geométrica ao longo do vetor de deslocamento |
| - Soluciona a interseção temporal matemática no intervalo contínuo |
| - Determina o momento exato do impacto (TOI ∈ [0, 1]) e sua normal |
| - Custo: Elevada demanda de processamento de CPU por ator dinâmico |
+----------------------------------------------------------------------------+
| 2. CCD ESPECULATIVA (Speculative CCD / Expansão Preditiva) |
| - Amplia a caixa AABB do objeto no sentido de sua trajetória |
| - Cria restrições preditivas de contato antes da sobreposição física |
| - Vantagem: Menor custo de processamento que a varredura geométrica |
| - Risco: Pode gerar "colisões fantasmas" em mudanças bruscas de direção |
+----------------------------------------------------------------------------+
Em jogos de tiro em primeira pessoa, os desenvolvedores evitam instanciar projéteis físicos para armas de fogo convencionais, optando por Traçados de Raio (Line Traces / Raycasts) instantâneos (hitscan). No instante do disparo, uma linha matemática de espessura zero é projetada a partir do cano da arma, registrando instantaneamente qualquer Hurtbox perfurada ao longo de sua trajetória.
O Descompasso Entre o Modelo Visual e a Física de Combate
A sensação de frustração quando "o golpe atravessou o inimigo sem registrar" ou "o personagem foi atingido pelo vento a meio metro de distância" resulta do compromisso técnico entre estética e simulação.
1. Aproximação por Cápsulas vs. Curvaturas Anatômicas
Modelos visuais apresentam relevos musculares, ombreiras de armaduras e dobras de tecidos. Por outro lado, as Hurtboxes são montadas a partir de cápsulas cilíndricas simplificadas acopladas ao esqueleto do personagem.
Os designers precisam balancear:
- Hurtboxes Justas (menores que o modelo): Evitam que o jogador receba dano indevido nas bordas, mas fazem com que golpes visíveis em capas e adornos passem em branco.
- Hurtboxes Generosas (maiores que o modelo): Garantem que raspões causem dano, mas abrem margem para acertos perceptíveis no ar vazio ao lado do personagem.
2. Mesclagem de Animações e Dessincronização de Root Motion
Personagens modernos utilizam árvores de mistura (Blend Trees). Quando um ataque pesado é cancelado por uma esquiva, a GPU interpola suavemente os vértices da malha visual ao longo de centenas de milissegundos.
Contudo, as Hurtboxes atualizam suas posições com base nas matrizes dos ossos. Se a curva de animação e o deslocamento de física (Root Motion) sofrerem pequenos descompassos temporais, o modelo gráfico desenhado na tela pode se afastar momentaneamente das cápsulas de colisão reais.
3. Hitboxes Desarticuladas (Disjoint) e Quadros Residuais (Linger Frames)
Em jogos de luta e ação acrobática, desenvolvedores frequentemente configuram Hitboxes propositalmente desarticuladas (disjoint), projetando a área de dano além do alcance visual da lâmina, ou estendendo a ativação da colisão por alguns quadros após o término do golpe (linger frames).
Essa decisão compensa o tempo de reação humano e assegura que golpes aéreos conectem com firmeza em alvos abaixados, garantindo uma resposta tátil e prazerosa nas mãos do jogador, ainda que sacrifique a precisão visual absoluta.
4. Efeitos Especiais Visuais (VFX) Não Possuem Massa Física
Lâminas flamejantes, feixes de energia e rastros luminosos são processados exclusivamente na placa de vídeo (GPU) como texturas e partículas translúcidas. Eles não possuem colisão. A menos que a equipe de programação anexe intencionalmente um colisor à área do efeito, encostar apenas no brilho de uma magia não produzirá nenhum dano.
Matriz Comparativa: Modos de Detecção de Colisão
A tabela abaixo compara as principais abordagens de detecção e seus impactos operacionais:
| Modo de Colisão | Custo de Processamento | Risco de Túnel (Estático) | Risco de Túnel (Dinâmico) | Aplicação Comum | Desvantagens e Falhas |
|---|---|---|---|---|---|
| Detecção Discreta | Mínimo (Teste estático por quadro) | Alto em alta velocidade | Alto em alta velocidade | Movimentação básica, cenário imóvel, inimigos lentos | Travessia indevida quando o FPS cai; atravessa paredes finas |
| CCD por Varredura | Elevado (Cálculos de extrusão temporal) | Nulo | Nulo (com ambos corpos ativos) | Pontas de lâminas brancas, lanças arremessadas, veículos | Sobrecarga de CPU em combate com múltiplos agentes |
| CCD Especulativa | Moderado (Expansão preditiva de AABB) | Muito reduzido | Muito reduzido | Físicas de boneco de pano (ragdoll), destroços | Risco de ricochetear no ar diante de mudanças bruscas de vetor |
| Traçado de Raio (Raycast) | Baixo (Interseção linha-superfície) | Nulo ao longo da linha | Nulo ao longo da linha | Armas hitscan, checagem de chão, linhas de visão | Não possui espessura; pode passar por brechas entre cápsulas |
Diagnóstico no Motor e Resolução de Problemas Práticos
Ao investigar inconsistências de registro de acertos, confiar unicamente no olho humano costuma conduzir a conclusões errôneas. É possível inspecionar a física real por meio dos consoles de depuração dos motores.
1. Comandos de Visualização de Colisão
Unreal Engine (UE4 / UE5)
Com o console habilitado (tecla ~), execute os seguintes comandos:
show collision # Renderiza todas as geometrias de colisão ativas no mapa
show CollisionPawn # Isola a visualização apenas para as cápsulas de dano dos personagens
pxvis collision # Exibe a malha vetorial de física de baixo nível do PhysX / Chaos
- Arestas Ciano / Verde: Colisores regulares passivos (cápsulas, esferas, caixas).
- Arestas Vermelhas / Roxas: Geometrias de ataque em varredura ativas no quadro atual (Hitboxes).
Motor Source / Source 2
Em servidores dedicados e lobbies locais de títulos baseados na engine da Valve:
sv_showlagcompensation 1 # Desenha as caixas rebobinadas pelo servidor no instante do disparo
r_drawclipbrushes 1 # Desenha os volumes de bloqueio invisíveis do cenário (clip brushes)
2. Fluxo de Investigação de Falhas de Impacto
Caso um ataque pareça falhar de forma inexplicável:
- Passo 1: Verificar a taxa de quadros e estabilidade da física
- Caso o jogo sofra quedas momentâneas de rendimento (ex.: caindo de 60 para 25 FPS), o delta $\Delta t$ aumenta de forma acentuada, fazendo com que armas de ataque rápido atravessem alvos sem registrar contato.
- Passo 2: Inspecionar o alinhamento esquelético dos colisores
- Com as linhas de depuração ligadas, verifique se as cápsulas acompanharam o movimento da malha durante o quadro exato da animação. Falhas de acompanhamento apontam para pesos de animação incorretos, não para erros na física.
- Passo 3: Avaliar a compensação de latência (em rede)
- No ambiente multijogador, a quase totalidade das falhas aparentes decorre da compensação de lag (Lag Compensation). O cliente prevê o acerto localmente, mas o servidor autoritativo volta no tempo e determina que a vítima já havia rolado para trás da parede, rejeitando o evento de dano.
Para discernir com objetividade se uma anomalia de combate tem raízes na geometria de colisão, na sincronização de rede ou em particularidades estéticas da animação, a consulta aos artigos técnicos do 365Finds permite isolar as causas reais sem cair nos mitos populares sobre supostos motores de física defeituosos.