Oficina de VFX ZombiAdA
ZombiAdA · time central de VFX · revisão 1

Oficina de VFX

Todos os efeitos de partículas e efeitos especiais do jogo, time por time, com prévia 3D ao vivo no mesmo low poly sombrio da cena de teste. Cada ficha diz quando o efeito dispara, como ele é, quanto custa e o que vai pela rede LAN. A regra que manda em tudo: com 2.000 zumbis na tela, o VFX inteiro cabe em 2,5 ms de GPU numa GTX 1060.

-- fps · 0 draw calls partículas 0 / 0 · decalques 0
LOD

Regra dos fluidos

Fluido nunca fica parado enquanto está molhado. Só para quando seca, e seco tem outra cor e outro acabamento. Vale para sangue, bile, óleo, gasolina e água, em todos os times.

FluidoFrescoComportamentoSecoTempo no jogo
Sangue Fresco (0–3 dias)Vermelho vivo #8A0A0A, brilhanteEspalha, ondula, escorre em parede, corre em declive, pinga em bordaMarrom #3B1D14, foscoseca em 10 min
Sangue Recente / AntigoBordô #5A0C10 / marrom #3A1C12, brilho menorIgual, mais lento e em menor quantidadeMarrom-escuro foscoseca em 6 min
DecrépitoPó preto, não é líquidoCai e assenta, não escorreIgual—
Bile do InchadoVerde-amarelo #8A9A2A, grosso, borbulhaEscorre devagar, bolhas estourandoCrosta verde-oliva #3E4220seca em 15 min
Óleo de motorPreto com reflexo de arco-írisEspalha devagar e corre em decliveNunca seca; mancha permanente—
GasolinaQuase transparente, ar tremulando em cimaEspalha rápido, inflamávelEvapora sem marcaevapora em 60 s
ÁguaEscurece o chão, refletePoça com anéis na chuvaVolta à cor do chão3 min sem chuva
Unity
  • Cada superfície com sangue perto do jogador ganha uma grade de altura 2×2 m (células de 1,25 cm, altura em mm) simulada em compute shader: o líquido só corre quando a camada passa do limiar de viscosidade, segue o declive pela normal e pinga em bordas. No máximo 6 grades ativas; longe ou velha vira decal assado.
  • Filetes de parede: contas com massa que descem serpenteando e deixam película; param quando a massa acaba. Gotas penduradas crescem, afinam no pescoço, soltam, esticam na queda e respingam.
  • Respingo nunca redondo: corpo alongado na direção do impacto, cauda do lado oposto, pontas afinando, gotas satélite com rabo e pontinhos.
  • Shader _Wetness (0 a 1) lê a altura: normal, brilho, fresnel, película iridescente no óleo e mistura da cor fresca para a seca.
Interações
  • Chuva lava: o sangue clareia, espalha 50% a mais e não seca enquanto chove.
  • Pisar no fresco deixa pegadas (6 decalques, somem com a secagem) e o Farejador segue o cheiro.
  • Fogo seca na hora e escurece; gasolina e óleo pegam fogo.
Custo
  • Um decalque por poça ou fio, até 6 fios por respingo.
  • Fluido a mais de 30 m não anima e mostra só o estado atual.
  • Secagem calculada pela hora do evento: nada novo na rede.

Cada elemento destrutível

Regra geral: todo objeto que quebra tem pelo menos 3 estados visíveis, solta partículas do seu material a cada dano e deixa marca que fica. Furos e amassados são presos ao pedaço (não ao mundo), então continuam na parede derrubada, na porta caída e no carro capotado.

ElementoEstadosPartículas a cada danoNa quebraO que fica
Parede de concreto ou tijolo
parede_concreto
furos · rachada · cai em blocosPó claro, pedrinhas, faísca raraBlocos com física, nuvem de poeira rolandoBlocos com os furos de bala presos neles
Parede de gesso / madeira interna
parede_gesso
furos · buraco · atravessávelPó branco de gesso, lascas finasPlacas caem, luz passa pelo buracoBuraco com borda irregular
Porta de madeira
porta_madeira
racha · tábua cai · tombaLascas, pó do batentePorta tomba, poeira no chãoPorta caída e tábuas soltas
Porta e portão de metal
porta_metal
amassado 1, 2, 3 · dobradiça estouraFaísca, lasca de tinta, pó de ferrugemFaísca na dobradiça e ao raspar no chãoChapa amassada no formato dos golpes
Grade, corrimão, ferro
grade_ferro
enverga · solda estoura · tombaFerrugem caindo em fioEstalo de faíscas na soldaFerro torto no chão
Alambrado (tela)
alambrado
estufa · arame arrebenta · poste entortaFaísca pequena no arame, ferrugemTela rasga e cai soltaTela pendurada com rasgo
Cerca de madeira
cerca_madeira
tábuas partem uma a uma · seção tombaLascas, pó de madeiraPedaços voam, seção caiTocos presos no trilho
Barricada de tábuas do jogador
barricada_tabuas
uma tábua a menos por estágioLascas, faísca pequena no pregoTábua arrancada com pregoTábuas no chão (recuperáveis)
Vidro de vitrine e janela
vidro_comum
trinca · estrela · estouraBrilho e pó de vidro60 a 80 cacos com físicaCacos na calçada, moldura vazia
Vidro de carro (temperado)
vidro_temperado
trinca em teia · branco · caiPó de vidroVira granulado (cubinhos), não cacosGranulado no banco e no chão
Lataria de carro
lataria
amassado por zona · peça soltaFaísca, lasca de tintaPara-choque e porta caemAmassados e peças no chão
Caixa de madeira
caixa_madeira
racha · quebraLascasTábuas e o conteúdo espalhamLoot visível no chão
Prateleira e gôndola
prateleira
enverga · tombaFaísca ao raspar, póProdutos caem e rolamProdutos espalhados
Sofá, colchão, móveis
estofado
furos · rasgaFlocos de espuma, penas, lascasEstofado abreEspuma espalhada
Sacos de areia
sacos_areia
furo · rasga · murchaFio de areia escorrendoSaco esvazia e baixa a alturaMonte de areia
Barril de óleo / gasolina
barril_combustivel
furo vaza · pega fogo · explodeFio de líquido, poça crescendoExplosão do barrilMarca queimada, barril aberto
Botijão de gás
botijao_gas
furo chia · jato · explodeJato de gás branco que empurra o botijãoExplosão, botijão voaBotijão rasgado
Hidrante
hidrante
quebrado jorraJato de água vertical, névoa, poça—Poça que cresce
Poste e fios
poste_fios
entorta · fio soltaArco elétrico com faísca no fio caídoPoste tomba, luz apagaFio no chão estalando
Caçamba e lixeira
cacamba
amassa · tampa voaFaísca, lixo voandoLixo espalha, papéis com ventoLixo no chão
Placa e outdoor
placa
furos com luz passando · caiFaísca e lasca de tintaPlaca cai tortaPlaca furada
Vidro laminado (balcão, vitrine de farmácia)
vidro_laminado
teia · afunda · rasgaPó de vidro, quase sem cacoPlaca inteira cede presa na películaVidro pendurado e rasgado
Eletrônico (TV, painel, motor, gerador)
eletronico
tela trinca · faísca · apagaFaísca curta, estalo de luz azul, fumaça cinza finaCurto: chuveiro de faíscas e fumaça preta por 5 sCarcaça queimada, cheiro (zumbis 10 m)
Cerâmica (vaso, pia, privada, azulejo)
ceramica
lasca · racha · estilhaçaLascas brancas pontudas, pó finoQuebra em 6 a 12 cacos curvos; pia e privada vazam águaCacos e poça d'água
Pedra (banheira de pedra, altar, estátua, meio-fio)
pedra
lasca · racha · parte em blocosPó cinza, pedrinhas, faísca rara com metalBlocos pesados com física, poeira grossaBlocos com furos presos
Lona e tenda
lona
furo · rasgo · desabaFiapos de tecido, pó acumulado na lonaLona rasga e cai, panos batem com o ventoLona caída por cima do que estava embaixo
Colchão de barricada
colchao_barricada
furos · rasga · murchaFlocos de espuma e molas soltando com faísca pequenaEspuma voa em pedaços, colchão dobraColchão rasgado, espuma no chão
Alvo de tiro (papel e madeira)
alvo_tiro
furos marcados · rasga · caiConfete de papel, lasca do suportePapel rasga, suporte tombaFuros ficam no papel (mostra o agrupamento)
Extintor
extintor
furo · jato · vazioJato de pó branco que empurra e giraNuvem branca de 5 m por 6 s (bloqueia visão)Pó branco no chão, extintor vazio
Cilindro de oxigênio ou solda
cilindro_oxigenio
válvula quebra · foguete · estoura no fogoJato de gás, faísca ao rasparVira foguete rente ao chão; com fogo, explosão do barrilCilindro amassado, marca de raspão
Plástico (cadeira, balde, galão)
plastico
racha · parte · derrete no fogoLascas coloridas sem póPartes leves que quicam longePedaços coloridos; no fogo, poça preta
Borracha (pneu, mangueira)
borracha
furo · esvazia · rasgaPó preto, chiado de ar (pneu)Pneu murcha, tiras soltasPneu murcho; no fogo, fumaça preta densa
Marquise e telhado
marquise
pó escorre · desabaPó fino e pedrinhas (aviso)Blocos e nuvem de poeiraEntulho que bloqueia passagem

Quebra pelo ponto atingido

Todo item é montado em peças (pernas, tampo, portas de armário, prateleiras, tábuas, blocos). Cada peça tem vida e material próprios. O golpe acha a peça mais próxima do ponto de impacto e o tipo de arma decide como ela quebra. Peça que perde o apoio (sem caminho até o chão) cai, e o item tomba para o lado que ficou sem apoio.

ArmaÁrea do danoEfeito na peçaPartículas
Bala (pistola, fuzil)Ponto de 3 cm; atravessa conforme calibre e materialFuro que fica; peça fina parte no pontoDo material, na direção da bala; saída do outro lado se atravessar
Chumbo calibre 12Cone com 9 pontos; perto é agrupado, longe espalhaVários furos; arranca pedaço de madeira e gesso de perto9 jatos pequenos e lascas
Arma branca de corte (facão, machado)Linha no sentido do golpe, 15 a 30 cmSepara a peça num corte reto; machado racha madeira no veioLascas em linha ao longo do corte, faísca em metal
Contundente (taco, cano, marreta)Área de 25 cm; 30% do dano passa para as peças vizinhasRacha madeira, amassa metal, estilhaça vidro e cerâmicaPó e pedaços em volta do ponto, tremor no item
Golpe de zumbiÁrea de 30 cm, sempre de frenteDesgasta portas, vidros e barricadas aos poucosPó leve; Brutamonte faz 3× e solta pedaços
ExplosãoRaio; todas as peças dentro levam dano e impulsoArranca peças e espalhaDo material de cada peça, mais a poeira da explosão
FogoÁrea por segundoMadeira e tecido escurecem e viram carvão; metal fica pretoBrasas, fumaça, cinza quando cai
Como fica salvo
  • O estado de cada objeto é do servidor e é salvo no mundo: amassados em 3 bits por zona, furos como lista de posições locais, tábuas quebradas como bits.
  • Pedaços caídos têm física só no cliente. Quando param, a posição final é mandada uma vez e todos ajustam.
Limites
  • Furos e marcas: 128 no total, até 12 por pedaço. Ao passar, some o furo mais antigo fora da vista.
  • Entulho e pedaços: entram no teto de 300 detritos. Entulho que bloqueia passagem nunca é reciclado.

Orçamento de desempenho

Os números valem para o caso típico (horda de 2.000, coop LAN de 4, GTX 1060 / RX 580). Todo efeito sai de um pool aquecido na tela de carregamento: nenhum Instantiate durante o jogo. Quando um teto enche, o mais antigo fora da vista é reciclado primeiro.

RecursoTeto simultâneoPor eventoRegra
Partículas GPU (VFX Graph)60.000≤ 400Sangue, faíscas, poeira, chuva, brasas. Sem colisão física, só colisão com o plano do chão e com o depth buffer.
Partículas CPU com colisão1.500≤ 60Só o que precisa quicar em geometria: gotas que viram poça, cápsulas.
Detritos com física300≤ 40Vidro, tábuas, pedaços de carro, membros. Em repouso por 2 s viram instância estática. Somem em 60 s fora da vista.
Cápsulas no chão200 por jogador1Física por 1,5 s, depois instância estática sem colisão.
Decalques de sangue2561 poça + 3–6 respingosAtlas único 2048², um draw call. Escurecem em 60 s e acompanham o corpo (somem com ele aos 15 min).
Furos e marcas1281Furo de bala, queimado de explosão, rachadura de vidro.
Luzes dinâmicas de VFX4 + 2 de fogo1Sem sombra. Clarão de tiro dura 50 ms. Só a lanterna do jogador projeta sombra.
Fumaça e gás grandes24 volumes≤ 30 spritesPoucos sprites grandes, partículas suaves com fade perto da câmera (0,5 m). Desenhados em meia resolução.
Disparos de efeito por quadro64—O excedente vira um único evento agregado com lista de pontos (Barrett na fila, granada no meio da horda).
Tempo de quadro do VFX2,5 ms GPU · 0,8 ms CPU—Medido nos cenários de estresse abaixo. Estourou, cai um nível de LOD inteiro antes de cortar efeito de jogo.
LOD por distânciaQuantidadeLuzFaíscas e detritosDecalque
0–15 m100%SimSimSim
15–40 m50%Só explosão e fogoSó faíscasSó poça
40–80 m20%Só explosãoNãoNão
Além de 80 m0%NãoNãoNão. Ficam só explosões, colunas de fumaça e incêndios, que servem de ponto de referência no mapa.
Fora da tela0%NãoNãoSim, se estiver a menos de 30 m: o jogador vira e vê o sangue que ficou.
Cenário de estresse 1

Barrett na fila

Um tiro atravessa 6 zumbis com 2.000 na tela. Precisa gerar 6 saídas de sangue, 6 poças e o rastro do traçante num só quadro sem pico acima de 1 ms.

Cenário de estresse 2

Granada no meio da horda

40 zumbis atingidos no mesmo quadro. O evento é agregado: um disparo de GPU com 40 pontos, 12 ragdolls (o teto do bestiário) e o resto com animação de queda.

Cenário de estresse 3

Temporal com incêndio

Chuva forte, um prédio em chamas, 4 jogadores atirando de AK e 2.000 zumbis. É o pior caso de overdraw e o que define os tetos de fumaça.

VFX na rede LAN

Efeito visual nunca é replicado como objeto. O servidor manda eventos pequenos e cada cliente desenha o efeito sozinho, com a mesma semente, para todos verem o mesmo respingo no mesmo lugar.

Só cosmético

Gerado no cliente

  • Clarão, fumaça de cano, cápsulas, faíscas, detritos pequenos, chuva, respingos, brasas.
  • Chega um evento de impacto de 12 bytes: posição quantizada em 1 cm, normal em 2 bytes, material em 4 bits, idade do zumbi em 2 bits e semente de 16 bits.
  • Pior caso: 4 jogadores de AK na horda dão uns 40 impactos/s, perto de 0,5 KB/s por jogador.
Muda o jogo

Entidade no servidor

  • Nuvem do Inchado: raio 4 m, 8 s, cega por 5 s e dobra o rastro de cheiro.
  • Fogo: área, dano por segundo, espalha em gasolina e madeira.
  • Fumaça densa: bloqueia a visão dos zumbis.
  • Rastro de sangue do Farejador: um ponto a cada 2 m, some em 10 min.
  • O cliente desenha o visual a partir da entidade e nunca decide a área sozinho.
Só na sua tela

Efeitos de câmera

  • Dano, mordida, pânico, cegueira e fases da infecção são locais.
  • A rolagem da infecção nunca sai do servidor (regra do time de personagens). Os outros só percebem os sintomas que o corpo mostra: tosse audível a 10 m e o vapor da respiração.

Como montar na Unity 6 (URP)

Ferramentas
  • VFX Graph para tudo que é em massa: sangue, faíscas, poeira, chuva, fogo, fumaça. Disparo por GraphicsBuffer de eventos, um sistema por família, não um por zumbi.
  • Particle System (Shuriken) só para o que colide com geometria: gotas que viram poça e cápsulas.
  • Decalques: projetor de decal da URP em modo screen space, ou malha de decal própria com atlas, para caber em um draw call.
  • Efeitos de tela: Volume da URP mais um Renderer Feature próprio para borda fria, aberração da febre e o túnel do pânico.
Estilo
  • Gotas, detritos e estilhaços são malhas facetadas (octaedro, caixa), não sprites redondos: combina com Synty.
  • Fumaça e gás em sprites de borda dura com 3 tons, sem textura fotográfica.
  • Paleta fixa por material de impacto (tabela no brief) e o sangue segue a idade do bestiário: vivo, bordô, marrom, pó preto.
  • Um atlas 2048² para todos os flipbooks e decalques.
Dados
  • VfxProfileSO por efeito: contagens, cores, LOD, se é cosmético ou entidade.
  • SurfaceMaterial como tag em toda malha do mapa e dos veículos: concreto, metal, madeira, vidro, carne, terra, água.
  • WeaponVfxSO por arma: tamanho do clarão, luz, fumaça, tipo de cápsula e traçante.
  • Pontos de emissão nos prefabs: capô, escapamento, tanque, rodas, janelas, portas.

Revisão da cena de teste

Li o código da Cena de Arte ZombiAdA v2. A base é boa: detritos, gotas e poças já usam instâncias. O que falta para chegar no nível desta oficina:

Efeito na cenaComo estáO que mudar
altaExplosão do barril5 bolas de fumaça, 24 detritos e uma mancha preta.Bola de fogo, onda de choque, anel de poeira no chão, estilhaços, fogo residual de 5 s e coluna de fumaça. Ver “Barril explosivo”.
altaClarão do disparoUm octaedro e uma luz, igual para todas as armas.Três camadas (núcleo, pétalas, fumaça) com escala por arma. A Barrett solta jatos laterais pelo freio de boca e levanta poeira do chão.
altaImpactosNão há efeito por material.Concreto solta pó, metal solta faísca, madeira solta lasca, vidro racha, água espirra. Furo de bala em todos.
médiaSangueGotas em cubo e poças que crescem e nunca secam. A cor muda com a idade.Névoa na entrada, jato na saída, poças que escurecem em 60 s. Decrépito solta pó preto, não gota.
médiaFogo do tambor5 cones parados e uma luz que pisca.Chamas em partícula, brasas que sobem e fumaça fina. A luz já existe e fica.
médiaFumaça24 malhas, cada uma com material próprio: 24 draw calls.Um sistema de partículas só, um draw call.
altaDestruiçãoVidro, caixas e tábuas quebram em detritos sem poeira, e os furos de bala não existem.Pó e lascas a cada tiro, nuvem de poeira na queda, e furos presos aos pedaços para continuarem na parede derrubada. Ver “Parede derrubada com furos”.
baixaChuva1.600 linhas sem contato com o chão.Respingos e anéis nas poças só até 12 m da câmera. Relâmpago no temporal.
baixaTelaVinheta vermelha quando cercado.Dano com direção, mordida, cegueira do Inchado, pânico e fases da infecção.

O que cada time precisa entregar para o VFX

Zumbis · Bestiário
  • Aviso de 0,5 s antes do Inchado estourar (barriga pulsando) para o jogador ter tempo de fugir.
  • Preparo visível de 1,5 s no grito do Gritador.
  • Malha de cabeça estourada e membros soltos por categoria.
Armas · Arsenal
  • Ponto do cano e da janela de ejeção em cada modelo.
  • Quais armas têm traçante e a cada quantos tiros.
  • Raio e tempo de queima do molotov, raio da granada.
Mapa · Vale Cinzento
  • Tag de material de superfície em toda malha.
  • Paredes destrutíveis divididas em pedaços já no modelo, para os furos de bala ficarem presos em cada pedaço.
  • Prédios com janelas que pegam fogo e marquises que desabam marcadas no prefab.
  • Onde ficam as poças para a chuva.
Veículos · Frota
  • Pontos de emissão: capô, escapamento, tanque, para-choques, faróis.
  • Ligar a fumaça do motor à condição da peça (0 a 100).
  • Para-brisa com máscara de rachadura em 4 estágios, já pedida no brief da frota.
Personagens e sobreviventes
  • Gatilhos das fases da infecção e do pânico para os efeitos de tela.
  • Ponto da boca (vapor e tosse) e da mão (lanterna).
  • Fogueira do acampamento como objeto de cena com área de calor.

Prévias em three.js só para avaliar visual e quantidade. O jogo usa os mesmos números com VFX Graph na Unity.