aula particulas

25
Projeto de jogos RAD: Partículas Augusto Bülow

Upload: marcos-batista

Post on 21-Jul-2015

226 views

Category:

Education


4 download

TRANSCRIPT

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;

}