Process material properties

ParticleProcessMaterial properties

Min, max, and curve properties

As propriedades neste material controlam como as partículas se comportam e mudam ao longo de sua vida útil. Muitas delas possuem valores Min, Max e Curve, que permitem ajustar seu comportamento com precisão. A relação entre esses valores é a seguinte: quando uma partícula é gerada, a propriedade é definida com um valor aleatório entre Min e Max. Se Min e Max forem iguais, o valor será sempre o mesmo para todas as partículas. Se a Curve também estiver definida, o valor da propriedade será multiplicado pelo valor da curva no ponto atual da vida útil da partícula. Use a curva para alterar uma propriedade ao longo da vida da partícula. Com isso, é possível expressar comportamentos bastante complexos.

Nota

Esta página aborda como usar o ParticleProcessMaterial especificamente para cenas 3D. Para informações sobre como usá-lo em uma cena 2D, veja ParticleProcessMaterial 2D Usage.

Time

A propriedade Lifetime Randomness controla quanta aleatoriedade aplicar ao tempo de vida de cada partícula. Colocar o valor como 0 significa que não há aleatoriedade alguma e todas as partículas vivem pelo mesmo período de tempo, definido pela propriedade Lifetime. Colocar o valor como 1 significa que o tempo de vida de uma partícula é completamente aleatório dentro do intervalo de [0,0, Lifetime].

Particle flags

A propriedade Align Y alinha o eixo Y de cada partícula com sua velocidade. Habilitar esta propriedade é o mesmo que definir a propriedade Transform Align como Y to Velocity.

A propriedade Rotate Y funciona com as propriedades nos grupos Angle e Angular Velocity para controlar a rotação das partículas. Rotate Y deve ser habilitado se você quiser aplicar qualquer rotação às partículas. A exceção a isso é qualquer partícula que use o Standard Material onde a propriedade Billboard está definida como Particle Billboard. Nesse caso, as partículas giram mesmo sem o Rotate Y habilitado.

Quando a propriedade Disable Z é habilitada, as partículas não se moverão ao longo do eixo Z. Se este será o eixo Z local do sistema de partículas ou o eixo Z do mundo é determinado pela propriedade Local Coords.

A propriedade Damping as Friction muda o comportamento da amortização de uma desaceleração constante para uma desaceleração baseada na velocidade.

Gerar

Emission shape

As partículas podem ser emitidas a partir de um único ponto no espaço ou de forma que preencham uma forma. A propriedade Shape controla essa forma. Point é o valor padrão. Todas as partículas são emitidas de um único ponto no centro do sistema de partículas. Quando definida como Sphere ou Box, as partículas são emitidas de forma que preencham uma esfera ou uma caixa de maneira uniforme. Você tem controle total sobre o tamanho dessas formas. Sphere Surface funciona como Sphere, mas em vez de preenchê-la, todas as partículas surgem na superfície da esfera.

Simple particle emission shapes

Partículas emitidas de um ponto (esquerda), em uma esfera (meio) e em uma caixa (direita)

Ring-shaped particle system

A ring-shaped particle system

A forma de emissão Ring faz com que as partículas sejam emitidas na forma de um anel. Você pode controlar a direção do anel alterando a propriedade Ring Axis. Ring Height controla a espessura do anel ao longo de seu eixo. Ring Radius e Ring Inner Radius controlam a largura do anel e o tamanho do buraco no meio. A imagem mostra um sistema de partículas com um raio de 2 e um raio interno de 1.5, o eixo aponta ao longo do eixo Z global.

Além destas formas relativamente simples, você pode selecionar a opção Points ou Directed Points para criar formas de emissão altamente complexas. Consulte a seção Complex emission shapes para uma explicação detalhada de como configurá-las.

Ângulo

A propriedade Angle controla a rotação inicial de uma partícula conforme descrito acima. Para ter um efeito real na partícula, você precisa habilitar uma das duas propriedades: Rotate Y rotaciona a partícula em torno do eixo Y do sistema de partículas. A propriedade Billboard no Standard Material, se for definida como Particle Billboard, rotaciona a partícula em torno do eixo que aponta da partícula para a câmera.

Direção

Nota

A propriedade Direction por si só não é suficiente para ver qualquer movimento de partícula. Quaisquer valores que você defina aqui só terão efeito quando as propriedades de velocidade ou aceleração também forem definidas.

A propriedade Direction é um vetor que controla a direção de movimento de cada partícula no momento em que ela é gerada. Um valor de (X=1, Y=0, Z=0) faria com que todas as partículas se movessem para o lado ao longo do eixo X. Para algo como uma fonte, onde as partículas são lançadas para cima no ar, um valor de (X=0, Y=1, Z=0) seria um bom ponto de partida.

Valores diferentes para a direção das partículas

Valores de direção diferentes: somente eixo Y (esquerda), valores iguais para X e Y (meio), X e Y com gravidade ativada (direita)

Após definir uma direção, você notará que todas as partículas se movem na mesma direção em linha reta. A propriedade Spread adiciona alguma variação e aleatoriedade à direção de cada partícula. Quanto maior o valor, mais forte é o desvio do caminho original. Um valor de 0 significa que não há nenhuma variação, enquanto um valor de 180 faz com que as partículas sejam lançadas em todas as direções. Você poderia usar isso para algo como pedaços de destroços durante um efeito de explosão.

Valores diferentes para dispersão de partículas

Sem propagação (esquerda), ângulo de 45 graus (meio), 180 graus completos (direita)

A propriedade Flatness limita a dispersão ao longo do eixo Y. Um valor de 0 significa que não há limite e um valor de 1 eliminará todo o movimento das partículas ao longo do eixo Y. As partículas se espalharão de forma completamente "plana".

Você não verá nenhum movimento real até que também defina alguns valores para as propriedades de velocidade e aceleração abaixo, então vamos dar uma olhada nelas a seguir.

Initial velocity

Enquanto a propriedade Direction controla a direção do movimento de uma partícula, a Initial Velocity controla a sua velocidade. Ela é separada em Velocity Min e Velocity Max, ambas definidas como 0 por padrão, e é por isso que você não vê nenhum movimento inicialmente. Assim que você define valores para qualquer uma dessas propriedades conforme descrito acima, as partículas começam a se mover. A direção é multiplicada por esses valores, então você pode fazer as partículas se moverem na direção oposta definindo uma velocidade negativa.

Accelerations

Gravidade

Os próximos grupos de propriedades trabalham em conjunto para controlar o movimento e a rotação das partículas. A Gravity arrasta as partículas na direção para a qual aponta, que é para baixo com a força da gravidade da Terra por padrão. A gravidade afeta todo o movimento das partículas. Se o seu jogo usa física e a gravidade do mundo pode mudar em tempo de execução, você pode usar esta propriedade para manter a gravidade do jogo sincronizada com a gravidade das partículas. Um valor de Gravity de (X=0, Y=0, Z=0) significa que nenhuma partícula se moverá se nenhuma das outras propriedades de movimento estiver definida.

Valores diferentes para a gravidade das partículas

Esquerda: (X=0,Y=-9,8,Z=0), meio: (X=0,Y=9,8,Z=0), direita: (X=4,Y=2,Z=0).

Angular velocity

Angular Velocity controla a velocidade de rotação de uma partícula conforme descrito acima. Você pode inverter a direção usando números negativos para Velocity Min ou Velocity Max. Assim como a propriedade Angle, a rotação só será visível se a flag Rotate Y for definida ou o modo Particle Billboard for selecionado no Standard Material.

Nota

A propriedade Damping não tem efeito na velocidade angular.

Linear acceleration

A velocidade de uma partícula é um valor constante: uma vez definida, ela não muda e a partícula sempre se moverá na mesma velocidade. Você pode usar a propriedade Linear Accel para mudar a velocidade do movimento ao longo da vida útil de uma partícula conforme descrito acima. Valores positivos irão acelerar a partícula e fazê-la mover mais rápido. Valores negativos irão desacelerá-la até que ela pare e comece a se mover na outra direção.

Diferentes valores para aceleração linear de partículas

Aceleração linear negativa (superior) e positiva (inferior)

É importante ter em mente que quando mudamos a aceleração, não estamos mudando a velocidade diretamente, estamos mudando a mudança na velocidade. Um valor de 0 na curva de aceleração não para o movimento da partícula, ele para a mudança no movimento da partícula. Seja qual for a sua velocidade naquele momento, ela continuará se movendo com essa velocidade até que a aceleração seja alterada novamente.

Radial acceleration

A propriedade Radial Accel adiciona uma força semelhante à gravidade a todas as partículas, com a origem dessa força na localização atual do sistema de partículas. Valores negativos fazem com que as partículas se movam em direção ao centro, como a força da gravidade de um planeta sobre objetos em sua órbita. Valores positivos fazem as partículas se moverem para longe do centro.

Diferentes valores para aceleração radial de partículas

Aceleração radial negativa (esquerda) e positiva (direita)

Tangential acceleration

Tangents on a circle

Tangents on a circle

Esta propriedade adiciona aceleração de partículas na direção da tangente a um círculo no plano XZ do sistema de partículas com a origem no centro do sistema e um raio igual à distância entre a localização atual de cada partícula e o centro do sistema projetado nesse plano.

Vamos destrinchar isso.

Uma tangente a um círculo é uma linha reta que "toca" o círculo em um ângulo reto em relação ao raio do círculo no ponto de toque. Um círculo no plano XZ do sistema de partículas é o círculo que você vê quando olha diretamente para o sistema de partículas de cima.

Tangential acceleration from above

Tangential acceleration from above

Tangential Accel é sempre limitada a esse plano e nunca move as partículas ao longo do eixo Y do sistema. A localização de uma partícula é suficiente para definir tal círculo onde a distância até o centro do sistema é o raio se ignorarmos o componente Y do vetor.

A propriedade Tangential Accel fará com que as partículas orbitem o centro do sistema de partículas, mas o raio aumentará constantemente. Visto de cima, as partículas se afastarão do centro em espiral. Valores negativos invertem a direção.

Amortecimento

A propriedade Damping para gradualmente todo o movimento. A cada quadro, o movimento de uma partícula é desacelerado um pouco, a menos que a aceleração total seja maior que o efeito de amortecimento. Se não for, a partícula continuará desacelerando até que não se mova mais. Quanto maior o valor, menos tempo leva para parar completamente as partículas.

Attractor interaction

Se você quiser que o sistema de partículas interaja com particle attractors, você deve marcar a propriedade Enabled. Quando ela está desabilitada, o sistema de partículas ignora todos os atratores de partículas.

Exibição (Display)

Escala

Scale controla o tamanho de uma partícula conforme descrito acima. Você pode definir valores diferentes para Scale Min e Scale Max para randomizar o tamanho de cada partícula. Valores negativos não são permitidos, então você não conseguirá inverter as partículas com esta propriedade. Se você emitir partículas como billboards, a propriedade Keep Size no Standard Material em suas draw passes deve estar habilitada para que qualquer escala tenha efeito.

Cor

A propriedade Color controla a cor inicial de uma partícula. Ela terá efeito somente depois que a propriedade Use As Albedo no grupo Vertex Color do Standard Material for habilitada. Esta propriedade é multiplicada com a cor vinda da propriedade Color ou Texture do próprio material da partícula.

Particle color ramp

Setting up a color ramp

Existem duas propriedades Ramp no grupo Color. Elas permitem que você defina uma gama de cores que são usadas para definir a cor da partícula. A propriedade Color Ramp muda a cor de uma partícula ao longo de sua vida útil. Ela se move através de toda a gama de cores que você definiu. A propriedade Color Initial Ramp seleciona a cor inicial da partícula a partir de uma posição aleatória na rampa de cores.

Para configurar uma rampa de cores, clique na caixa ao lado do nome da propriedade e no menu de lista, selecione New GradientTexture1D. Clique na caixa novamente para abrir os detalhes da textura. Encontre a propriedade Gradient, clique na caixa ao lado dela e selecione New Gradient. Clique nessa caixa novamente e você verá um intervalo de cores. Clique em qualquer lugar nesse intervalo para inserir um novo marcador. Você pode mover o marcador com o mouse e excluí-lo clicando com o botão direito do mouse. Quando um marcador está selecionado, você pode usar o seletor de cores ao lado do intervalo para mudar a cor dele.

Hue variation

Assim como a propriedade Color, Hue Variation controla a cor de uma partícula, mas de uma maneira diferente. Ele faz isso não definindo diretamente os valores de cor, mas mudando a matiz da cor.

Hue descreve o pigmento de uma cor: vermelho, laranja, amarelo, verde e assim por diante. Ele não diz nada sobre o quão clara ou quão saturada a cor é. A propriedade Hue Variation controla o intervalo de matizes disponíveis conforme descrito acima.

Ele funciona sobre a cor atual da partícula. Os valores que você define para Variation Min e Variation Max controlam o quão longe a matiz pode se mover em ambas as direções. Um valor mais alto leva a mais variação de cor, enquanto um valor baixo limita as cores disponíveis aos vizinhos mais próximos da cor original.

Valores diferentes para variação de matiz

Valores diferentes para variação de matiz, ambas as vezes com azul como cor base: 0,6 (esquerda) e 0,1 (direita)

Animação

O grupo de propriedades Animation controla o comportamento das animações de sprite sheet no Standard Material da partícula. Os valores Min, Max e Curve funcionam conforme descrito acima.

Uma spritesheet animada é uma textura que contém várias imagens menores alinhadas em uma grade. As imagens são mostradas uma após a outra tão rápido que se combinam para tocar uma animação curta, como um flipbook. Você pode usá-las para partículas animadas como fumaça ou fogo. Estes são os passos para criar um sistema de partículas animado:

A sprite sheet

Uma spritesheet de fumaça animada 8x8

  1. Importe uma textura de spritesheet para a engine. Se você não tiver uma em mãos, pode baixar a versão em alta resolução da imagem de exemplo.

  2. Configure um sistema de partículas com pelo menos uma draw pass e atribua um Standard Material à mesh nessa draw pass.

  3. Atribua a spritesheet à propriedade Texture no grupo Albedo

  4. Defina a propriedade Billboard do material para Particle Billboard. Fazendo isso, o grupo Particles Anim se tornará disponível no material.

  5. Defina H Frames para o número de colunas e V Frames para o número de linhas na sprite sheet.

  6. Marque Loop se você quiser que a animação continue se repetindo.

Isso é tudo para o Standard Material. Você não verá nenhuma animação de imediato. É aqui que entram as propriedades Animation. As propriedades Speed controlam a velocidade de animação da spritesheet. Defina Speed Min e Speed Max como 1 e você deverá ver a animação sendo reproduzida. As propriedades Offset controlam onde a animação começa em uma partícula recém-gerada. Por padrão, será sempre a primeira imagem na sequência. Você pode adicionar alguma variedade alterando Offset Min e Offset Max para randomizar a posição inicial.

Animated particles

Três sistemas de partículas diferentes usando a mesma spritesheet de fumaça

Dependendo de quantas imagens sua sprite sheet contém e por quanto tempo sua partícula permanece ativa, a animação pode não parecer suave. A relação entre a duração de vida da partícula, a velocidade da animação e o número de imagens na sprite sheet é a seguinte:

Nota

A uma velocidade de animação de 1.0, a animação alcançará a última imagem na sequência no momento em que a vida útil da partícula terminar.

\[Animação\ FPS = \frac{Número\ de\ imagens}{Vida útil}\]

Se sua spritesheet contiver 64 (8x8) imagens e o tempo de vida da partícula for definido para 1 segundo, a animação será muito suave em 64 FPS (1 segundo / 64 imagens). Se o tempo de vida for definido para 2 segundos, ainda será razoavelmente suave em 32 FPS. Mas se a partícula estiver viva por 8 segundos, a animação será visivelmente instável em 8 FPS. Para tornar a animação suave novamente, você precisa aumentar a velocidade da animação para algo como 3 para atingir uma taxa de quadros aceitável.

Animated particles lifetimes

O mesmo sistema de partículas em diferentes tempos de vida: 1 segundo (esquerda), 2 segundos (meio), 8 segundos (direita)

Note que o Fixed FPS do nó GPUParticles3D também afeta a reprodução da animação. Para uma reprodução suave, é recomendado defini-lo como 0 para a partícula ser simulada em cada quadro renderizado. Se isso não for uma opção para o seu caso de uso, defina o Fixed FPS para ser igual à taxa de quadros efetiva usada pela animação de flipbook (veja a fórmula acima).

Turbulência

A turbulência adiciona ruído ao movimento das partículas, criando padrões interessantes e animados. Marque a caixa ao lado da propriedade Enabled para ativá-la. Várias novas propriedades aparecem que controlam a velocidade do movimento, o padrão de ruído e a influência geral no sistema de partículas. Você pode encontrar uma explicação detalhada sobre elas na seção de particle turbulence.

Collision

A propriedade Mode controla como e se os emissores colidem com os nós de colisão de partículas. Defina como Disabled para desabilitar qualquer colisão para este sistema de partículas. Defina como Hide On Contact se você quiser que as partículas desapareçam assim que colidirem. Defina como Constant para fazer as partículas colidirem e ricochetearem. Você verá duas novas propriedades aparecerem no inspetor. Elas controlam como as partículas se comportam durante os eventos de colisão.

Um alto valor de Friction (Fricção) reduzirá o deslizamento ao longo das superfícies. Isso é especialmente útil se as partículas colidirem com superfícies inclinadas e você quiser que elas permaneçam no lugar em vez de deslizarem até o final, como neve caindo em uma montanha. Um alto valor de Bounce (Salto) fará com que as partículas ricocheteiem nas superfícies com as quais colidem, como bolas de borracha em um piso sólido.

Se a propriedade Use Scale estiver habilitada, o tamanho base da colisão será multiplicado pela current scale da partícula. Você pode usar isso para garantir que o tamanho renderizado e o tamanho da colisão correspondam para partículas com escala aleatória ou escala que varia ao longo do tempo.

Você pode aprender mais sobre colisões de partículas na seção Collisions deste manual.

Sub-emitter

Sub-emitter modes

Os modos subemitter disponíveis

A propriedade Mode controla como e quando os sub-emissores são gerados. Defina-a como Disabled e nenhum sub-emissor será gerado. Defina-a como Constant para fazer com que os sub-emissores sejam gerados continuamente a uma taxa constante. A propriedade Frequency controla a frequência com que isso acontece no espaço de um segundo. Defina o modo como At End para fazer com que o sub-emissor seja gerado no final da vida útil da partícula-mãe, pouco antes de ser destruído. A propriedade Amount At End controla quantos sub-emissores serão gerados. Defina o modo como At Collision para fazer com que os sub-emissores sejam gerados quando uma partícula colide com o ambiente. A propriedade Amount At Collision controla quantos sub-emissores serão gerados.

Quando a propriedade Keep Velocity está habilitada, o sub-emissor recém-gerado começa com a velocidade da partícula-mãe no momento em que o sub-emissor é criado.

Consulte a seção Sub-emitters neste manual para uma explicação detalhada sobre como adicionar um sub-emissor a um sistema de partículas.