A Arte das Partículas… Do Começo ao Fim
Hoje eu vou ensinar Sistema de Partículas de novo, mas em lugar de focar no comando, eu vou focar em uma configuração específica. Eu quero tentar mostrar hoje como se sai de uma idéia para uma configuração de Sistema de Partículas.
Qual é a idéia? Ah, não tem nada pra fazer, eu podia fazer um sabre de luz, estilo jedi… Já existem dezenas deles por aí, mas ia ser legal fazer um, não seria? Basta isso para começar! Já temos uma idéia de onde queremos chegar, certo? quem não conhece sabres de luz? E como todo processo criativo, agora temos que pensar em como construir. Um sabre de luz é basicamente dois cilindros. É possível detalhar mais, mas vamos deixar as coisas mais simples. Um cilindro para o cabo, e outro para a “luz”. Mas como conseguir no Second Life aquele efeito de iluminação? Usando uma textura? Usando luz? Não! A melhor saída é usar um Sistema de Partículas! Vai ficar aquela impressão de que a lâmina está constantemente se movendo, como no filme, e você pode torná-la iluminada, com a cor que quiser. Este é um tutorial avançado em termos de programação, e básico em termos de modelagem. O pré-requisito deste tutorial é saber fazer um Sistema de Partículas, assunto coberto por este tutorial. Material Necessário:
- Imagem de referência: usaremos a foto do Mestre Yoda. Você pode escolher seu mestre jedi favorito, o importante é ter uma foto com imagens do filme para poder comparar os efeitos.
Mãos à Obra:
- Construindo um cilíndro: Como nunca apresentei turoriais de cosntrução, vou detalhar bem essa parte. Comece procurando um lugar aonde você possa construir. Qualquer área de SandBox serve, a minha dica é a Ilha MLBR Area Livre, que é uma grande SandBox, da MainLand Brasil. Como muitas SandBox, a única restrição é quanto a llPushObject(), ou seja, nada de SuperPush! Então, pegue um teleporte para a Área Livre, e mãos à obra!

O meu cliente é o da LindenLabs, então está todo em inglês, sorry sorry! Comece clicando no chão com o botão direito do mouse. Aparecerá a pizza, e na pizza, escolha a opção “Create” (criar). Mude o tipo de primitiva para cilindro, clicando no ícone do cilíndro. Quando a janela de criação de objetos aparecer, clique o botão “more” (mais). Assim, podemos ver todos os detalhes do objeto. Você pode dar um nome ao objeto. Não é necessário, mas é um “best practice” de construção, e facilita muito a sua vida, principalmente depois de você ter construído várias coisas, e tentar achá-las no seu inventário… Não nos preocuparemos com as permissões agora. Clique na tab “Object”, para poder editar todos os aspectos do cilíndro.
Clique para ver a imagem em tamanho maior Na tab Object (Objeto), mudaremos os valores conforme abaixo:
Size X: 0.100
Size Y: 0.100
Size Z: 0.500Na tab Texture (Textura), mudaremos os valores conforme abaixo:
Texture: Blank
Color: Red (63) Green (63) Blue (63)
Shininess: High
Clique para ver a imagem em tamanho maiorO cabo do nosso sabre de luz está pronto!
Agora vem a parte realmente interessante: a configuração do Sistema de Partículas! - Criando nossa lâmina de luz com Sistema de Patículas: O nosso cilíndro, o cabo do sabre de luz, será configurado para ser o emitter (emissor) do nosso Sistema de Partículas.
O que isso significa? Significa que será de uma das faces do cilíndro que as partículas serão disparadas, e atiradas para fora. É interessante que as pasrtículas sejam emitidas na face do topo do cilíndro, para que este se pareça com um sabre de luz, certo? Por isso, tomamos o cuidado de editar as dimensões do cilíndro sem rotacioná-lo.Como não existem partículas sem um script, criaremos um script neste objeto. Clique na tab “Content” (Conteúdo) e clique no botão “New Script…” (Novo Script). Repare que apareceu um arquivo dentro do nosso cabo de sabre, com nome “new script”. É muito útil renomear o script, para que saibamos de que se trata depois… Clique com o botão direito no arquivo, e escolha “Rename” (Renomear). Eu darei o nome “sabre-luz” ao script.O único propósito deste script será emitir partículas, portanto, podemos simplificá-lo ao máximo fazendo com que este tenha apenas um estado, e usando apenas o evento “state_entry()” para toda a nossa configuração. Dentro do state_entry() colocaremos o comando llParticleSystem(). Agora, tudo que resta fazer é acertar os parâmetros do comando. Muito simples, certo? - Configurando nossas partículas para se parecer com a lâmina: Aqui começa realmente o tutorial. Como montaremos o sistema de partículas? Precisamos fazer algumas considerações importantes.
- Queremos que a lâmina seja algo parecido com um cilíndro iluminado: então, usaremos uma pattern que se ajuste a isto, como ANGLE_CONE, limitando uma secção de lançamento das partículas, e usaremos a opção que torna as partículas “full bright”, para que brilhem no escuro, tornando a lâmina iluminda de fato.
- Queremos que a cor do centro seja aproximada ao branco e que a cor da periferia seja aproximada a um verde brilhante: o melhor jeito de fazer isso é utilizando uma textura.
- Queremos que a lâmina seja longa: portanto será preciso um tempo de vida das partículas suficiente para que elas percorram visualmente mais ou menos 3 vezes o comprimento vertical do cabo.
- Queremos que o tamanho da lâmina seja visualmente o tamnho (diâmetro) do cabo: para isso, precisaremos controlar o tamanho da partícula.
- Queremos que a lâmina aparente grande intensidade luminosa: então usaremos alta densidade de partículas. Isso não significa que o número de partículas por emissão será alto, mas que as partículas precisam parecer muito próximas. É possível obter esse efeito usando uma velocidade alta de emissão.
Sabendo disso, já podemos começar a montar as configurações dos parâmetros, agora que temos uma idéia mais clara do que queremos fazer. Nós não precisamos configurar todos os parâmetros disponíveis, podemos usar apenas aqueles ncessários à aparência esperada.
Começaremos pelos flags…
PSYS_PART_FLAGS:
PSYS_PART_EMISSIVE_MASK: (brilho das partículas ligado)
PSYS_PART_INTERP_SCALE_MASK (variação de tamanho das partículas)Pattern: Usaremos PSYS_SRC_PATTERN_ANGLE_CONE para definirmos uma área limitada, de modo que as partículas sejam lançadas para cima.
Burst (Emissão): Usaremos baixa contagem de partículas e alta velocidade de emissão.
PSYS_SRC_BURST_PART_COUNT: 1
PSYS_SRC_BURST_PART_RATE: 0.0 (este parâmetro precisa ser float, defina sempre usando casas decimais)
Quanto mais próximo de zero for o valor do PSYS_SRC_BURST_PART_RATE, mais rápido as partículas serão emitidas.Ângulo de Emissão: Estes parâmetros definem onde as partículas são criadas, e acompanham o pattern, ou seja, só funcionam para o pattern que escolhemos
PSYS_SRC_ANGLE_BEGIN: PI/64 (valor angular sempre em radianos)
PSYS_SRC_ANGLE_END: 0.0 (este parâmetro precisa ser float, defina sempre usando casas decimais)
Estes valores definem um “cilindro de luz”, ou feixe de luz. o diâmetro do cilíndro será definido pelos parâmetros abaixo:PSYS_PART_START_SCALE: <0.2,0.2,0.2> (vetor definindo tamanho inicial)
SYS_PART_END_SCALE: <0.2,0.2,0.2> (vetor definindo tamanho final)
Os tamanhos para as partículas são iguais no início e final, portanto não há variação de tamanho, mas é preciso definir que existe variação de tamanho nos flags para que estes parâmetros consigam alterar o tamnho da partícula.Distância de Emissão: as partículas são emitiodas sempre no centro do objeto emissor (emitter). Como nosso emissor é um cilíndro e queremos que as partículas sejam emitidas na ponta dele, definimos esse valor como metade da altura do cilíndro, ou seja, as partículas são emitidas a meia altura do centro do cilíndro, no sentido de z positivo.
PSYS_SRC_BURST_RADIUS: 0.25 (este parâmetro precisa ser float, defina sempre usando casas decimais)Duração das partículas: é aqui que definidos o comprimento do feixe de luz.
PSYS_PART_MAX_AGE: 1.3 (este parâmetro precisa ser float, defina sempre usando casas decimais)
Este valor é sempre definido em segundos. Se a duração for menor, o feixe encurta, se for maior, se alonga.Com os parâmetros definidos desta maneira, teremos o sabre de luz com essa aparência:

Fica faltando só a cor do sabre de luz se parecer com um sabre de luz. Eu tinha dito lá em cima que faríamos isso usando uma textura, certo?
- Finalizando o feixe do sabre de luz com uma textura: Não entrarei nos detalhes aqui de como fazer a textura, mas revelarei alguns truques… A imagem tem um alpha channel, que conta com um gradiente, indo de “opaco” a “transparente”, do centro às bordas da textura, e é isso que define a aparência “etérea” da borda da textura. Como o feixe nunca ocupará uma porcentagem da tela grande, mesmo quando o zoom estiver bem próximo dele, a qualidade não precisa ser tão boa, o tamanho da minha imagem é 128×64 pixels.
Feita a textura, definimos o parâmetro que aplicará a textura às partículas:
PSYS_SRC_TEXTURE: “nome da textura vai aqui”
Você pode utilizar tanto o nome da textura no inventário do objeto quanto uma key de uma textura existente in-world.Também não podemos esquecer de adicionar a textura ao conteúdo do nosso emissor.A aparência final do sabre de luz:

- E o script? Como fica?
Eu não gosto de dar as coisas prontas não, mas no caso de ter ficado alguma dúvida de como montar o script, aí vai:default
{state_entry()
{llParticleSystem([
PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK | PSYS_PART_INTERP_SCALE_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RATE, 0.0,
PSYS_SRC_ANGLE_BEGIN, PI/64,
PSYS_SRC_ANGLE_END, 0.0,
PSYS_PART_START_SCALE, <0.2,0.2,0.2>,
PSYS_PART_END_SCALE, <0.2,0.2,0.2>,
PSYS_SRC_BURST_RADIUS, 0.25,
PSYS_PART_MAX_AGE, 1.3,
PSYS_SRC_TEXTURE, "sabre-luz2"
]);
}
}
nossa cara…
vc´SB tudo q agente ker ver MSM neah?
mto legal mano …
todo dia vo nesse site
XD
parabéns por criar um site assim
ixi naum sbia q vc era mulher dskupa …
nem desconfiava…
muito bom esse site
precisa só de uma coisa: ensinar passo a passo de script
tirando isso está perfeito
parabens pelo site
espero q faça susseço
Eu entendi bem mais como eu faço pra adicionar a textura eu naun entendi alguém me explica?
Nota 10000, só pq eu naun entendi aquela parte me expliquem ai.
Obrigado.
se vc olhar ali no finzinhu, na parte que eu coloquei o script como fica pronto, tem essa linha:
PSYS_SRC_TEXTURE, “sabre-luz2″
é essa linha que define a textura ^^ basta que o objeto emiter tenha a textura e o script dentro dele…
o nome da textura pode ser qualquer um ^^ se salvou com nome diferente de sabre-luz2, substitua nessa linha pelo nome que vc deu para o arquivo ^^
Mais quero saber como se fais a textura????
para botar?
assim oh: tem q fazer uma textura o renomear certo?
mais como se fais a textura.
Obrigado.