Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Sistemas de partículas 2D
Introdução
Sistemas de partículas são usados para simular efeitos físicos complexos, como faíscas, fogo, partículas mágicas, fumaça, névoa e similares.
A ideia é que uma "partícula" seja emitida em um intervalo fixo e com um tempo de vida fixo. Durante sua vida útil, cada partícula terá o mesmo comportamento de base. O que torna cada partícula diferente do resto e proporciona uma aparência mais orgânica é a "aleatoriedade" associada a cada parâmetro. Em essência, criar um sistema de partículas significa definir parâmetros físicos básicos e, em seguida, adicionar aleatoriedade a eles.
Nós de partículas
A Godot fornece dois nós diferentes para partículas 2D, GPUParticles2D e CPUParticles2D. O GPUParticles2D é mais avançado e usa a GPU para processar efeitos de partículas. O CPUParticles2D é uma opção movida pela CPU com paridade de recursos quase idêntica ao GPUParticles2D, mas com menor desempenho ao usar grandes quantidades de partículas. Por outro lado, o CPUParticles2D pode ter um desempenho melhor em sistemas de baixo custo ou em situações de gargalo de GPU.
Enquanto o GPUParticles2D é configurado por meio de um ParticleProcessMaterial (e, opcionalmente, com um sombreador personalizado), as opções correspondentes são fornecidas por meio de propriedades de nó em CPUParticles2D (com exceção das configurações de trilha).
Daqui para frente, não há planos para adicionar novos recursos ao CPUParticles2D, embora pull requests que adicionem funcionalidades já presentes no GPUParticles2D sejam aceitas. Por esse motivo, recomendamos o uso de GPUParticles2D, a menos que você tenha um motivo específico para não utilizá-lo.
Você pode converter um nó CPUParticles2D em um nó GPUParticles2D clicando no nó na árvore da cena, selecionando o espaço de trabalho 2D e selecionando CPUParticles2D > Converter para GPUParticles2D na barra de ferramentas.
Também é possível converter um nó GPUParticles2D em um nó CPUParticles2D, mas pode haver problemas se você usar recursos somente de GPU.
O restante deste tutorial utilizará o nó GPUParticles2D. Primeiro, adicione um nó GPUParticles2D à sua cena. Após criá-lo, você perceberá que apenas um ponto branco foi criado e que há um ícone de aviso ao lado do nó GPUParticles2D no painel da cena. Isso ocorre porque o nó precisa de um ParticleProcessMaterial para funcionar.
ParticleProcessMaterial (Material do Processo de Partículas)
Para adicionar um material de processamento ao seu nó de partículas, vá até Process Material no painel Inspector. Clique na caixa ao lado de Material e, no menu suspenso, selecione New ParticleProcessMaterial.
Seu nó GPUParticles2D agora deve estar emitindo pontos brancos para baixo.
Textura
Um sistema de partículas pode usar uma única textura ou um flipbook de animação. Um flipbook é uma textura que contém vários quadros de animação que podem ser reproduzidos ou escolhidos aleatoriamente durante a emissão. Isso é equivalente a um spritesheet para partículas.
A textura é definida por meio da propriedade Textura:
Usando um flipbook de animação
Os flipbooks de partículas são adequados para reproduzir efeitos complexos, como fumaça, fogo e explosões. Eles também podem ser usados para introduzir variações aleatórias de textura, fazendo com que cada partícula use uma textura diferente. Você pode encontrar imagens existentes de flipbooks de partículas on-line ou pré-renderizá-las usando ferramentas externas, como o Blender ou o EmberGen.
Exemplo de um sistema de partículas que usa uma textura de flipbook
O uso de um flipbook de animação requer configuração adicional em comparação com uma única textura. Para fins de demonstração, usaremos essa textura com 5 colunas e 7 linhas (clique com o botão direito do mouse e escolha Salvar como...):
Créditos: JoesAlotofthings (CC BY 4.0)
Para usar um flipbook de animação, é necessário criar um novo CanvasItemMaterial na seção Material do nó GPUParticles2D (ou CPUParticles2D):
Criando um CanvasItemMaterial na parte inferior do Inspetor de nós de partículas
Neste CanvasItemMaterial, habilite Animação de Partículas e defina Quadros H e Quadros V para o número de colunas e linhas presentes na textura do seu flipbook:
Configurando o CanvasItemMaterial para a textura do flipbook de exemplo
Uma vez feito isso, a seção "Animação" em ParticleProcessMaterial (para GPUParticles2D) ou no Inspetor do CPUParticles2D será efetivada.
Dica
Se a sua textura flipbook tiver um fundo preto em vez de um fundo transparente, você também precisará definir o modo de mesclagem como Adicionar em vez de Misturar para exibição correta. Alternativamente, você pode modificar a textura para ter um fundo transparente em um editor de imagem. No GIMP, isso pode ser feito usando o menu Cor > Cor para Alfa.
Parâmetros de tempo
Tempo de Duração
O tempo em segundos em que cada partícula permanecerá viva. Quando a vida útil termina, uma nova partícula é criada para substituí-la.
Tempo de vida: 0.5
Tempo de vida: 4.0
Disparo Único
Quando habilitado, um nó GPUParticles2D emitirá todas as suas partículas uma única vez e nunca mais.
Pré processamento
Os sistemas de partículas começam com zero partículas emitidas, depois começam a emitir. Isso pode ser um inconveniente ao carregar uma cena e sistemas como uma tocha, névoa, etc. começar a emitir só no momento em que entrar. O pré-processamento é usado para permitir que o sistema processe um determinado número de segundos antes de ser realmente desenhado pela primeira vez.
Escalonamento da Velocidade
A escala de velocidade tem um valor padrão de 1 e é usada para ajustar a velocidade de um sistema de partículas. Diminuir o valor tornará as partículas mais lentas, enquanto aumentar o valor tornará as partículas muito mais rápidas.
Explosividade
Se o tempo de vida for 1 e houver 10 partículas, isso significa que uma partícula será emitida a cada 0,1 segundos. O parâmetro de explosividade altera isso e força as partículas a serem emitidas todas juntas. Os intervalos são:
0: Emite partículas em intervalos regulares (valor padrão).
1: Emite todas as partículas simultaneamente.
Valores no meio também são permitidos. Esse recurso é útil para criar explosões ou explosões repentinas de partículas:
Aleatoriedade
Todos os parâmetros físicos podem ser randomizados. Os valores aleatórios variam de 0 a 1. A fórmula para randomizar um parâmetro é:
initial_value = param_value + param_value * randomness
FPS Fixado
Essa configuração pode ser usada para definir o sistema de partículas para renderizar em um FPS fixo. Por exemplo, alterar o valor para 2 fará com que as partículas sejam renderizadas a 2 quadros por segundo. Observe que isso não desacelera o próprio sistema de partículas.
Nota
Godot 4.3 atualmente não oferece suporte à interpolação de física para partículas 2D. Como solução alternativa, desative a interpolação de física para o nó de partículas definindo Nó > Interpolação de Física > Modo na parte inferior do Inspetor.
Delta Fractal
Definir Fract Delta como true resulta em um cálculo de delta fracionário, proporcionando um efeito visual mais suave para as partículas. Essa suavidade aumentada vem de uma maior precisão. A diferença é mais perceptível em sistemas com alta aleatoriedade ou partículas em movimento rápido. Isso ajuda a manter a consistência visual do sistema de partículas, garantindo que o movimento de cada partícula esteja alinhado com sua vida útil real. Sem isso, as partículas podem parecer pular ou se mover mais do que deveriam em um único quadro se forem emitidas em um ponto intermediário do quadro. A maior precisão tem um custo de desempenho, especialmente em sistemas com uma quantidade maior de partículas.
Parâmetros de desenho
Visibility Rect (Retângulo de Visibilidade)
O retângulo de visibilidade controla a visibilidade das partículas na tela. Se esse retângulo estiver fora da janela de exibição, o mecanismo não renderizará as partículas na tela.
As propriedades W e H do retângulo controlam respectivamente sua Largura e sua Altura. As propriedades X e Y controlam a posição do canto superior esquerdo do retângulo, em relação ao emissor de partículas.
Você pode fazer o Godot gerar automaticamente um Retângulo de Visibilidade usando a barra de ferramentas acima da visualização 2D. Para isso, selecione o nó GPUParticles2D e clique em Particles > Generate Visibility Rect. O Godot simulará a emissão de partículas pelo nó Particles2D durante alguns segundos e ajustará o retângulo para abranger a área ocupada pelas partículas.
Você pode controlar a duração da emissão com a opção Tempo de geração (seg). O valor máximo é de 25 segundos. Se você precisar de mais tempo para suas partículas se moverem, você pode alterar temporariamente a duração do pré-processamento no nó Particles2D.
Coordenadas Locais
Por padrão, esta opção está desativada. Isso significa que o espaço para onde as partículas são emitidas é global e não relativo ao nó. Se o nó for movido, as partículas existentes não se movem com ele:
Se habilitado, as partículas serão emitidas em espaço local, o que significa que, se o nó for movido, as partículas já emitidas também serão afetadas:
Ordem de Desenho
Isso controla a ordem na qual as partículas individuais são desenhadas. Índice significa que as partículas são desenhadas de acordo com sua ordem de emissão (padrão). Lifetime significa que eles são desenhados em ordem de vida restante.
Configurações do Material de Processamento de Partículas
Para obter informações sobre as configurações no ParticleProcessMaterial, consulte esta página.