Recherche

Recherche personnalisée

dimanche 29 mars 2009

Tutorial 10 Les Particles

Je me suis intéressé aux Particles ces derniers jours. Je me suis demandé comment on créait tous ces effets particulièrement réalistes comme la fumée ou les feux d'artifice. Je suis tombé dans la documentation sur une seule fonction disponible avec un paramètre unique :



http://wiki.secondlife.com/wiki/LlParticleSystem



A la lecture de cette page on se dit que l'affaire n'est pas simple et qu'on est parti pour quelques heures de prise de tête, encore plus si l'anglais n'est pas vraiment une seconde nature, ce qui est mon cas. J'ai fait quelques essais, j'ai cherché des exemples. J'ai trouvé un peu de tout, avec deux axes principaux : soit une fonction à rallonge avec des variables à n'en plus finir qui alourdissent le script, ce qui est plutôt à éviter dans ce genre :



http://lslwiki.net/lslwiki/wakka.php?wakka=ExampleParticleScript



Soit une approche plus "à la demande" pour ceux qui savent déjà bien ce qu'ils veulent :



http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryKeknehvParticles



Aucune de ces deux approches ne m'ont vraiment satisfait et je ne pense pas vraiment être le seul dans ce cas quand je lis les questions sur les particles dans les forums. Le problème vient de l'abondance des éléments constitutifs du paramètre de la fonction llParticleSystem. On a un peu du mal à s'y retrouver et certaine explication sont un peu "ésotériques" au premier abord. A part ça le reste est simple, on peut avoir qu'un seul système de particules par prim, il est aligné sur l'axe Z dans le sens positif et il est constitué de sprites en 2D orientés vers la caméra. Il faut aussi savoir que les particles sont générées côté client, autrement dit sur votre PC.

A force de tourner cette histoire dans tous les sens et de mettre au point du code qui ne me satisfaisait toujours pas j'ai changé complètement d'optique. J'ai créé un logiciel qui génère automatiquement la fonction avec son paramètre. Je pense que pratiquement tous les scipteurs sur SL codent dans un éditeur externe. Bien sûr il y a toujours des masos qui aiment s'esquinter les yeux et user leur patience avec l'éditeur intégré mais bon... Comme la plupart d'entre vous je code en externe avec l'éditeur de Alphons van der Heijden dont je vous rappelle l'adresse de téléchargement :



http://www.lsleditor.org/



Alors la solution que je vous propose est aussi un programme externe qui présente les éléments du paramètre de la fonction d'une façon conviviale et génère le code qu'il suffit de copier et coller dans votre éditeur. Comme ce blog ne permet pas le téléchargement de fichiers j'ai créé un petit site complémentaire ou je présente sommairement le logiciel et où vous pouvez vous le procurer :



http://script.lsl.free.fr



Donc pour les détails concernant ce programme et ses fonctionnalités je vous renvoie à cette adresse. Ici je me contente de vous proposer un script de test tout simple :



default
{
state_entry()
{
llParticleSystem([
PSYS_PART_FLAGS, 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_EMISSIVE_MASK,
PSYS_SRC_PATTERN,
PSYS_SRC_PATTERN_ANGLE,
PSYS_PART_START_ALPHA, 0.9,
PSYS_PART_END_ALPHA, 0.5,
PSYS_PART_START_SCALE, <0.1,0.1,0.0>,
PSYS_PART_END_SCALE, <0.6,0.6,0.0>,
PSYS_PART_START_COLOR, <0.7529412,0,0>,
PSYS_PART_END_COLOR, <1,0.627451,0.4784314>,
PSYS_PART_MAX_AGE, 10.0,
PSYS_SRC_MAX_AGE, 100.0,
PSYS_SRC_BURST_RATE, 0.1,
PSYS_SRC_BURST_PART_COUNT, 1000,
PSYS_SRC_ANGLE_END, 0.5,
PSYS_SRC_ANGLE_BEGIN, 0.0,
PSYS_SRC_BURST_RADIUS, 0.2,
PSYS_SRC_OMEGA, <0,0,0.2>,
PSYS_SRC_ACCEL, <0,0,0>,
PSYS_SRC_BURST_SPEED_MIN, 0.2,
PSYS_SRC_BURST_SPEED_MAX, 0.5]);
}

touch_start( integer num )
{
state off;
}
}

state off
{
state_entry()
{
llParticleSystem([]);
}

touch_start( integer num )
{
state default;
}
}



Vous pouvez l'utiliser pour vos essais. Il suffit de le poser dans un objet. Quand vous le touchez ça démarre, la fois suivante ça s'arrête. Il vous suffit de copier la partie de code générée par le programme Particles et de le coller dans ce script au bon endroit.

4 commentaires:

  1. Je vous remercie énormément pour toutes vos propositions sur ce site. Vos partages sont très intéressants et fort enrichissants. Félicitations à vous.

    voyance gratuite mail : voyance gratuite serieuse

    RépondreSupprimer
  2. Génial ! Merci pour cet article, comme d’habitude très complet et vraiment pertinent !
    voyance gratuite par email

    RépondreSupprimer
  3. Un excellent bravo pour un excellent sujet et un excellent blog !!!

    voyance gratuite par mail

    RépondreSupprimer
  4. Merci pour ces conseils forts intéressants, cela fait vraiment plaisir de tomber sur des articles aussi intéressants que les votre ! Je vous souhaite santé, longévité, succès, bonheur et la paix du cœur.

    voyance discount gratuite

    RépondreSupprimer