FLOP est un éditeur de systèmes de particules écrit en Java et utilisant l'extension OpenGL GL4Java. Le but n'était pas de concevoir un logiciel compliqué où l'on se perd dans des méandres de menus et où on met plus de temps à rechercher « l'option qui va bien » qu'à créer vraiment quelque chose de satisfaisant. De plus, cet éditeur est particulièrement destiné au créateurs de jeux vidéos désireux d'avoir rapidement une explosion ou une chute d'eau à inclure dans leur programme.



Fiche technique :

- génération automatique des équations horaires de chaque particule.

- réglages du cône de projection ( ouverture, orientation ).

- réglages des propriétés de base d'une particule : vitesse, durée de vie...

- réglage du nombre de particules présentes dans le système.

- réglage de la force gravitationnelle s'appliquant au système.

- chargement dynamique de classes permettant de rajouter des types de particules avec leurs réglages, leurs formes...

- choix du type de système : régénération ou non des particules ( explosion vs fontaine ).



Mode d'emploi :

La philosophie de Flop est on ne peut plus simple : on choisit un nombre de particules, leur vitesse maximale, l'intensité de la force gravitationelle... puis on règle le cône de projection, ainsi que les paramètres propres au plugin. Il suffit ensuite d'appuyer sur le bouton « compute » qui s'occupera de générer un système correspondant aux données voulues, et pour visualiser il faudra appuyer sur le bouton « play ».



Exemple :

Il n'y a à ma connaissance qu'un seul moyen de bien comprendre un concept : le mettre en application. C'est pourquoi nous allons ensemble faire votre premier système de particules avec Flop. Je vous propose une éruption volcanique, ça vous va ?

- réglez le nombre de particules au maximum.

- réglez la durée de vie également au maximum.

- réglez la vitesse à environ 4.

- ajoutez un peu de gravité : 1 fera l'affaire.

- cochez l'option « Recycle particles » pour indiquer qu'il faut un refabriquer des particules quand d'autres sont mortes.

- comme type de particules le plugin standard ( Point3d ) sera un choix excellent.

- réglez la taille du point à son maximum.

- la couleur de départ doit être jaune ( le foyer d'une éruption est très chaud ).

- la couleur de fin doit être orange ( vers la fin de sa vie, la particule s'est refroidi un petit peu ).

- l'ouverture du cône de projection doit être de 20° environ et son orientation verticale.

Et voilà : il ne reste plus qu'à cliquer sur le bouton de génération du système ( une petite calculatrice, en bas à gauche de la fenêtre OpenGL ) puis sur le bouton « play » ( je ne vous ferai pas l'affront de le décrire ) pour visualiser le résultat. Facile, non ???



L'interface :

Comme vous avez peut-être pu le constater, tout est très intuitif : l'usage des sliders qui semble à prime abord un peu abusif se révèle en pratique très efficace : le concept WYSIWYG ( what you see is what you'll get ) est poussé à son paroxysme. De plus, de nos jour, on ne peut plus perdre de temps, et passer de la souris au clavier, du clavier à la souris, de la souris au clavier et ainsi de suite n'est pas pratique : c'est pourquoi avec Flop tout se fait à la souris. C'est un choix, et je pense qu'il est justifié.



Les Plugins :

Flop est basé sur une architecture à base de plugins. Ainsi, chaque utilisateur pourra récupérer de nouveaux types de particules via Internet, ou les programmer eux mêmes. Un plugin n'est autre qu'une classe Java dérivant de la classe abstraite « Particle » et qui ajoute à une particule différents paramètres. Par exemple, le plugin « Point3d » ajoute une taille, une couleur de départ et une couleur d'arrivée à la particule standard qui n'a même pas de forme. Le plugin « Sphere3d », lui, n'ajoute que la représentation graphique de la particule : c'est une sphère. On pourrait imaginer un plugin « ChauveSouris » qui aurait pour but de simuler un vol de petites bêtes noires sortant d'un trou dans un mur...



Et après ?

Vous allez me dire : « C'est bien joli tout ça, mais comment je peux intégrer le système de particules que je viens de créer dans mon TurboPacMan3D à interpolation quadrique différentielle à flux ionique ??? ». Eh bien là aussi c'est très simple : il suffit d'exporter le système au format ASCII dans un fichier, et d'écrire un petit parser afin de récupérer les information calculées. Si vous êtes programmeur, ça devrait vous prendre 30 minutes au maximum. De même, pour l'affichage du système dans votre programme, si vous connaissez l'OpenGL ( ou toute autre API 3D ), ça devrait vous prendre là encore 30 minutes grand maximum ( plutôt 10 que 30... ) pour une représentation aussi simple que dans la fenêtre « Preview » de Flop. Mon conseil est, pour un rendu de bonne qualité, d'assigner à chaque particule un bitmap qui sera orienté parallèlement à l'écran puis projeté. Sa taille sera fonction de l'âge de la particule. En ajoutant un peu d'aplha-blending ce sera parfait. Ces conseils ne s'appliquent qu'à des systèmes du type feu, explosion... mais bien entendu pas à des types comme chauve-souris ou tout autre « Objet 3D ». Si vous avez des problèmes, écrivez moi.



Installation :

Flop nécessite Java dans sa version 1.2 au minimum, car il utilise Swing. Il faut aussi avoir l'extension GL4Java ainsi que les librairies OpenGL installées. Le mieux est d'avoir également une carte accélératrice. Flop a été testé sous Linux avec une RedHat 6.0, et devrait marcher sous Window$ 95/98/2000/NT. Pour les possesseurs de Mac, il vous faudra acheter un PC ( l'extension GL4Java n'est pas supportée ).

Après avoir récupéré l'archive « Flop.jar », décompressez la dans de répertoire de votre choix ( jar xvf Flop.jar ) et lancez l'exécutable « go.bat ». Si rien ne se passe, vérifiez que Java et les librairies requises sont bien installés.



Captures d'écran :



Liens :

Java : machine virtuelle et langage développé par Sun.

OpenGL : librairie graphique développée par Silicon Graphics.

Mesa3d : clone d'OpenGL, pour les utilisateurs de Linux.

GL4Java : extension OpenGL pour Java.

Flow : un magnifique éditeur de particules pour Linux destiné à l'animation précalculée.