Projeto de jogos RAD: 
Partículas 
Augusto Bülow
Unity3D 
• Objetos especiais para efeitos 
• Objetos resumidos = propriedades diferentes 
• Renderização diferente 
• Centenas / milhares de partículas por FX 
• = Performance (necessidade) 
• Uso geral 
• Fumaça, faíscas, água, spray, sangue, 
rastros, fogo, etc
Unity3D 
• Partículas: objetos “mais leves” 
• Sem componentes normais (não objeto) 
• Feito para exibir e desaparecer 
rapidamente - Lifetime * 
• Animações ou efeitos simples 
• Com velocidade e direção
Unity3D 
• Sistema de partículas, três componentes: 
• Particle Emitter 
• Fonte, como / onde são emitidas 
• Particle Annimator 
• Animação das partículas comportamento 
• Particle Renderer 
• Renderizador / mostrar partículas
Unity3D 
• Partículas: 
essencialmente imagens 2D renderizadas 
no mundo 3D. 
• Imagem simples 2D 
• Seqüência = Animação
Unity3D 
• Adicionar Partículas: 
• Necessita os 3 componentes: emitter, 
animator e renderer 
• Emitter 
• Ellipsoid 
• Mesh
Unity3D 
• Emitter : Ellipsoid 
• Partículas geradas dentro da esfera (área) 
• Tamanho regulável 
• Opções de emissão = Emitter 
• Tamanho partículas 
• Velocidades iniciais 
• Quantidade 
• Direção inicial
Unity3D 
• Min/Max Size: tamanho inicial das 
partículas 
• Min/Max Energy: lifetime, tempo 
que vivem (desaparecem) 
• Min/Max Emission: quantidade de 
partículas emitidas 
• World / Local / Rnd : velocidades 
iniciais das partículas 
• Emitter Vel Scale: recebe 
velocidade do emitter diretamente
Unity3D 
• Tangent Vel: velocidade inicial em 
relação a superfície do emitter 
• Simulate in World Space 
• Sim = ficam no mundo 3D 
• Não = movem-se junto ao emitter 
• One Shoot : única vez (emissão) 
• Ellipsoid : tamanho 
• Min Emitter Range: espaço no 
interior que não são criadas 
partículas
Unity3D 
• Emitter: Mesh 
• Cria partículas seguindo o 
mesh do objeto 
• Maior controle complexidade 
• Opções adicionais: 
• Interpolate Triangles: geradas 
entre faces, senão somente 
dos vértices do mesh 
• Systematic: na ordem dos 
vértices no modelo
Unity3D 
• Emitter sem Renderer = não funciona 
• Renderer = gera / apresenta partículas na tela 
• Renderer = propriedades visualização partículas 
• Render - Definição inicial: 
• Material das partículas (Textura / imagem) 
• EX: Fire Ad (Standard Assets)
Unity3D 
• Material = textura usada (em 
cada partícula) 
• Cam. Vel. Scale: quanto da 
velocidade da câmera é 
passada para Stretch da 
partícula 
• Esticada : efeito tipo faísca 
• Combinado com modo Stretch
Unity3D 
• Stretch: modo de exibição 
• Billboard: virado para 
câmera 
• Stretch: orientados pela 
direção do movimento 
(escala na direção) 
• Sorted Billboards: ordenadas 
por profundidade (blend)
Unity3D 
• Vertical Billboard: alinhados 
em X/Z 
• Horizontal Billboard: 
alinhados em X/Y 
• Lenght Scale: se Stretch, 
determina quanto esticam 
• Velocity Scale: se Stretch, 
quanto esticam de acordo 
com sua velocidade
Unity3D 
• UV Animation: Efeito animado (quadros) 
• Vários quadros em um BMAP 
• Criar material com BMAP 
• Definir (Particle Render: UV Animation) 
• X Tile : quadros em X (presentes no bmap) 
• Y Tile : quadros em Y 
• Cycles : velocidade da animação
Unity3D 
• Tipo material (shader) : 
• Partículas - gerais 
• FX - Flare 
• Preto = transparente
Unity3D 
• Particle Animator 
• Determina movimento, 
comportamento das 
particulas 
• Mudanças de cor, 
simulação vento (move 
adicional)
Unity3D 
• Animate Color: 
• Varia entre cores 
definidas ao longo da 
Lifetime 
• Definição de ALPHA nas 
cores = transparência 
• Ideal = últimas e primeiras 
cores mais transparentes = 
melhor integração, 
desaparecem
Unity3D 
• Animate Color: 
• ALPHA 
• transparência 
• Cores 
• ciclo automático
Unity3D 
• WORLD / LOCAL Rotation Axis 
• Rotação adicional a partícula 
• Eixo sobre qual ela rota 
• Size Grow 
• Quanto a partícula pode crescer no lifetime 
• Rnd Force 
• Força adicional random para partículas
Unity3D 
• Force 
• Força definida para partículas (move) 
• Ex: forca Y = sobem 
• Damping 
• Quanto diminuem a força por ciclo 
• 1 = sem damping, de 0..1 = menor mais diminui 
• Auto Destruct 
• Partículas removidas no final da lifetime
Unity3D 
• Trail Renderer 
• Efeito de trajetória 
• Rastro do percurso 
• Material 
• Tempo de duração 
• Tamanho inicial / final 
• Cores (animação)
Unity3D 
• Particles Collider 
• Partículas colidem com 
objetos / cena 
• Mandam mensagem 
específica na colisão 
• Rebatem (Bounce) 
• Perdem energia (Loss) 
• Utilizar com cuidado: 
• Colisões: Requer 
Processamento
Unity3D 
• Partículas via Script , ex: 
if (Input.GetKeyDown("p")) { 
if (particleEmitter.emit) { 
particleEmitter.emit = false; 
} 
else { particleEmitter.emit = true; } 
if (Input.GetKeyDown("o")) { 
GetComponent("ParticleAnimator").sizeGrow += 1; 
}
Unity3D 
• Partículas via Script , ex: 
if (Input.GetKeyDown("p")) { 
if (particleEmitter.emit) { 
particleEmitter.emit = false; 
} 
else { particleEmitter.emit = true; } 
if (Input.GetKeyDown("o")) { 
GetComponent("ParticleAnimator").sizeGrow += 1; 
}

Aula particulas

  • 1.
    Projeto de jogosRAD: Partículas Augusto Bülow
  • 2.
    Unity3D • Objetosespeciais para efeitos • Objetos resumidos = propriedades diferentes • Renderização diferente • Centenas / milhares de partículas por FX • = Performance (necessidade) • Uso geral • Fumaça, faíscas, água, spray, sangue, rastros, fogo, etc
  • 3.
    Unity3D • Partículas:objetos “mais leves” • Sem componentes normais (não objeto) • Feito para exibir e desaparecer rapidamente - Lifetime * • Animações ou efeitos simples • Com velocidade e direção
  • 4.
    Unity3D • Sistemade partículas, três componentes: • Particle Emitter • Fonte, como / onde são emitidas • Particle Annimator • Animação das partículas comportamento • Particle Renderer • Renderizador / mostrar partículas
  • 5.
    Unity3D • Partículas: essencialmente imagens 2D renderizadas no mundo 3D. • Imagem simples 2D • Seqüência = Animação
  • 6.
    Unity3D • AdicionarPartículas: • Necessita os 3 componentes: emitter, animator e renderer • Emitter • Ellipsoid • Mesh
  • 7.
    Unity3D • Emitter: Ellipsoid • Partículas geradas dentro da esfera (área) • Tamanho regulável • Opções de emissão = Emitter • Tamanho partículas • Velocidades iniciais • Quantidade • Direção inicial
  • 8.
    Unity3D • Min/MaxSize: tamanho inicial das partículas • Min/Max Energy: lifetime, tempo que vivem (desaparecem) • Min/Max Emission: quantidade de partículas emitidas • World / Local / Rnd : velocidades iniciais das partículas • Emitter Vel Scale: recebe velocidade do emitter diretamente
  • 9.
    Unity3D • TangentVel: velocidade inicial em relação a superfície do emitter • Simulate in World Space • Sim = ficam no mundo 3D • Não = movem-se junto ao emitter • One Shoot : única vez (emissão) • Ellipsoid : tamanho • Min Emitter Range: espaço no interior que não são criadas partículas
  • 10.
    Unity3D • Emitter:Mesh • Cria partículas seguindo o mesh do objeto • Maior controle complexidade • Opções adicionais: • Interpolate Triangles: geradas entre faces, senão somente dos vértices do mesh • Systematic: na ordem dos vértices no modelo
  • 11.
    Unity3D • Emittersem Renderer = não funciona • Renderer = gera / apresenta partículas na tela • Renderer = propriedades visualização partículas • Render - Definição inicial: • Material das partículas (Textura / imagem) • EX: Fire Ad (Standard Assets)
  • 12.
    Unity3D • Material= textura usada (em cada partícula) • Cam. Vel. Scale: quanto da velocidade da câmera é passada para Stretch da partícula • Esticada : efeito tipo faísca • Combinado com modo Stretch
  • 13.
    Unity3D • Stretch:modo de exibição • Billboard: virado para câmera • Stretch: orientados pela direção do movimento (escala na direção) • Sorted Billboards: ordenadas por profundidade (blend)
  • 14.
    Unity3D • VerticalBillboard: alinhados em X/Z • Horizontal Billboard: alinhados em X/Y • Lenght Scale: se Stretch, determina quanto esticam • Velocity Scale: se Stretch, quanto esticam de acordo com sua velocidade
  • 15.
    Unity3D • UVAnimation: Efeito animado (quadros) • Vários quadros em um BMAP • Criar material com BMAP • Definir (Particle Render: UV Animation) • X Tile : quadros em X (presentes no bmap) • Y Tile : quadros em Y • Cycles : velocidade da animação
  • 16.
    Unity3D • Tipomaterial (shader) : • Partículas - gerais • FX - Flare • Preto = transparente
  • 17.
    Unity3D • ParticleAnimator • Determina movimento, comportamento das particulas • Mudanças de cor, simulação vento (move adicional)
  • 18.
    Unity3D • AnimateColor: • Varia entre cores definidas ao longo da Lifetime • Definição de ALPHA nas cores = transparência • Ideal = últimas e primeiras cores mais transparentes = melhor integração, desaparecem
  • 19.
    Unity3D • AnimateColor: • ALPHA • transparência • Cores • ciclo automático
  • 20.
    Unity3D • WORLD/ LOCAL Rotation Axis • Rotação adicional a partícula • Eixo sobre qual ela rota • Size Grow • Quanto a partícula pode crescer no lifetime • Rnd Force • Força adicional random para partículas
  • 21.
    Unity3D • Force • Força definida para partículas (move) • Ex: forca Y = sobem • Damping • Quanto diminuem a força por ciclo • 1 = sem damping, de 0..1 = menor mais diminui • Auto Destruct • Partículas removidas no final da lifetime
  • 22.
    Unity3D • TrailRenderer • Efeito de trajetória • Rastro do percurso • Material • Tempo de duração • Tamanho inicial / final • Cores (animação)
  • 23.
    Unity3D • ParticlesCollider • Partículas colidem com objetos / cena • Mandam mensagem específica na colisão • Rebatem (Bounce) • Perdem energia (Loss) • Utilizar com cuidado: • Colisões: Requer Processamento
  • 24.
    Unity3D • Partículasvia Script , ex: if (Input.GetKeyDown("p")) { if (particleEmitter.emit) { particleEmitter.emit = false; } else { particleEmitter.emit = true; } if (Input.GetKeyDown("o")) { GetComponent("ParticleAnimator").sizeGrow += 1; }
  • 25.
    Unity3D • Partículasvia Script , ex: if (Input.GetKeyDown("p")) { if (particleEmitter.emit) { particleEmitter.emit = false; } else { particleEmitter.emit = true; } if (Input.GetKeyDown("o")) { GetComponent("ParticleAnimator").sizeGrow += 1; }