Systèmes de particules (2D)

Introduction

Un système de particules simple (mais suffisamment souple pour la plupart des utilisations) est fourni. Les systèmes de particules sont utilisés pour simuler des effets physiques complexes tels que des étincelles, un feu, des particules magiques, de la fumée, de la brume, de la magie, etc.

L’idée est qu’une « particule » soit émise à un intervalle fixe et avec une durée de vie fixe. Au cours de sa vie, chaque particule aura le même comportement de base. Ce qui rend chaque particule différente et donne un aspect plus organique, c’est le « caractère aléatoire » associé à chaque paramètre. En substance, créer un système de particules signifie définir les paramètres de base de la physique, puis leur ajouter un caractère aléatoire.

Particles2D

Les systèmes de particules sont ajoutés à la scène via le nœud Particles2D. Toutefois, après avoir créé ce nœud, vous remarquerez que seul un point blanc a été créé et qu’une icône d’avertissement se trouve en regard de votre nœud Particles2D dans l’inspecteur. En effet, le nœud a besoin d’un ParticlesMaterial pour fonctionner.

ParticlesMaterial

Pour ajouter un matériau de processus à votre nœud de particules, accédez à Process Material dans votre panneau d’inspecteur. Cliquez sur la case à côté de Material, puis sélectionnez New ParticlesMaterial dans le menu déroulant.

../../_images/particles_material.png

Votre nœud Particles2D devrait maintenant émettre des points blancs vers le bas.

../../_images/particles1.png

Texture

Un système de particules utilise une seule texture (à l’avenir, cela pourrait être étendu aux textures animées via spritesheet). La texture est définie via la propriété de texture appropriée :

../../_images/particles2.png

Paramètres de temps

Durée de vie

Le temps en secondes que chaque particule restera en vie. Lorsque la durée de vie est terminée, une nouvelle particule est créée pour la remplacer.

Durée de vie : 0.5

../../_images/paranim14.gif

Durée de vie : 4.0

../../_images/paranim15.gif

Un coup

Lorsqu’il est activé, un nœud Particles2D émettra toutes ses particules une fois, puis jamais plus.

Prétraitement

Les systèmes de particules commencent avec zéro particule émise, puis commencent à émettre. Cela peut être un inconvénient lors du chargement d’une scène et des systèmes comme une torche, une brume, etc. commencent à émettre dès que vous entrez. Le prétraitement est utilisé pour permettre au système de traiter un nombre donné de secondes avant qu’il ne soit réellement dessiné la première fois.

Échelle de vitesse

L’échelle de vitesse a une valeur par défaut de 1 et est utilisée pour ajuster la vitesse d’un système de particules. Réduire la valeur ralentira les particules tandis que l’augmenter les rendra beaucoup plus rapides.

Explosivité

Si la durée de vie est 1 et qu’il y a 10 particules, cela signifie qu’une particule sera émise toutes les 0,1 secondes. Le paramètre d’explosivité change cela et oblige les particules à être émises toutes ensemble. Les gammes sont :

  • 0: émettre des particules à intervalles réguliers (valeur par défaut).
  • 1: Émettre toutes les particules simultanément.

Les valeurs au milieu sont également autorisées. Cette fonctionnalité est utile pour créer des explosions ou des explosions soudaines de particules :

../../_images/paranim18.gif

Aléatoire

Tous les paramètres physiques peuvent être randomisés. Les valeurs aléatoires vont de 0 à 1. La formule pour randomiser un paramètre est la suivante :

initial_value = param_value + param_value * randomness

FPS donné

Ce paramètre peut être utilisé pour configurer le système de particules pour qu’il rende à un FPS donné. Par exemple, si vous modifiez la valeur en 2, les particules seront rendues à 2 images par seconde. Notez que cela ne ralentit pas le système de particules lui-même.

Fract Delta

Ceci peut être utilisé pour activer ou désactiver Fract Delta.

Paramètres de dessin

Rectangle de visibilité

Le rectangle de visibilité contrôle la visibilité des particules à l’écran. Si ce rectangle est à l’extérieur de la fenêtre, le moteur ne rendra pas les particules à l’écran.

Les propriétés W et H du rectangle contrôlent respectivement sa Largeur et sa Hauteur. Les propriétés X et Y contrôlent la position du coin supérieur gauche du rectangle par rapport à l’émetteur de particules.

Vous pouvez demander à Godot de générer un rectangle de visibilité automatiquement à l’aide de la barre d’outils au-dessus de la vue 2d. Pour ce faire, sélectionnez le nœud Particles2D et cliquez sur Particles > Generate Visibility Rect. Godot va simuler le nœud Particles2D émettant des particules pendant quelques secondes et réglera le rectangle pour s’adapter à la surface que prennent les particules.

Vous pouvez contrôler la durée d’émission avec l’option Generation Time (sec). La valeur maximale est de 25 secondes. Si vous avez besoin de plus de temps pour que vos particules se déplacent, vous pouvez changer temporairement la durée du ``preprocessus”” sur le noeud Particules2D.

Coordonnées locales

Par défaut, cette option est activée et cela signifie que l’espace dans lequel les particules sont émises est relatif au nœud. Si le nœud est déplacé, toutes les particules le sont également :

../../_images/paranim20.gif

Si cette option est désactivée, les particules seront émises vers l’espace global, ce qui signifie que si le nœud est déplacé, les particules déjà émises ne sont pas affectées :

../../_images/paranim21.gif

Ordre de dessin

Ceci contrôle l’ordre dans lequel les particules individuelles sont dessinées. Index signifie que les particules sont dessinées en fonction de leur ordre d’émission (valeur par défaut). Lifetime signifie qu’elles sont dessinées dans l’ordre de leur durée de vie restante.

Paramètres de ParticlesMaterial

Propagation

Ce paramètre est l’angle en degrés qui sera ajouté aléatoirement dans l’une ou l’autre direction à la base Direction. Une propagation de 180 émettra dans toutes les directions (+/- 180).

../../_images/paranim3.gif

Gravité

La gravité appliquée à chaque particule.

../../_images/paranim7.gif

Vélocité initiale

La vélocité linéaire est la vitesse à laquelle les particules seront émises (en pixels par secondes). La vitesse pourra être ultérieurement modifiée par la gravité ou d’autres accélérations (comme décrit ci-dessous).

../../_images/paranim4.gif

Vitesse angulaire

La vitesse angulaire est la vitesse angulaire initiale appliquée aux particules.

Vitesse de rotation

La vitesse de rotation est la vitesse à laquelle les particules tournent autour de leur centre (en degrés/s).

../../_images/paranim5.gif

Vitesse Orbitale

La vitesse orbitale est utilisée pour faire tourner les particules autour de leur centre.

../../_images/paranim6.gif

Accélération linéaire

L’accélération linéaire appliquée à chaque particule.

Accélération radiale

Si cette accélération est positive, les particules sont accélérées en s’éloignant du centre. Si négative, elles sont attirées vers lui.

../../_images/paranim8.gif

Accélération Tangentielle

Cette accélération utilisera le vecteur tangent au centre. La combinaison avec une accélération radiale peut produire de beaux effets.

../../_images/paranim9.gif

Amortissement

L’amortissement applique un frottement aux particules, les forçant à s’arrêter. Il est particulièrement utile pour les étincelles ou les explosions, qui commencent généralement avec une vitesse linéaire élevée et s’arrêtent ensuite lorsqu’elles s’estompent.

../../_images/paranim10.gif

Angle

Détermine l’angle initial de la particule (en degrés). Ce paramètre est surtout utile randomisé.

../../_images/paranim11.gif

Scale

Détermine l’échelle initiale des particules.

../../_images/paranim12.gif

Couleur

Utilisé pour changer la couleur des particules émises.

Variation de teinte

La valeur Variation définit la variation de teinte initiale appliquée à chaque particule. La valeur ``Variation Random``contrôle le ratio de la variation aléatoire de teinte.

Formes d’émission

ParticlesMaterials allow you to set an Emission Mask, which dictates the area and direction in which particles are emitted. These can be generated from textures in your project.

Ensure that a ParticlesMaterial is set, and the Particles2D node is selected. A « Particles » menu should appear in the Toolbar:

../../_images/emission_shapes1.png

Ouvrez-le et sélectionnez « Load Emission Mask » :

../../_images/emission_shapes2.png

Sélectionnez ensuite la texture que vous voulez utiliser comme masque :

../../_images/emission_shapes3.png

Une boîte de dialogue avec plusieurs paramètres apparaît.

Masque d’émission

Trois types de masques d’émission peuvent être générés à partir d’une texture :

  • Solid Pixels: Particles will spawn from any area of the texture, excluding transparent areas.
../../_images/emission_mask_solid.gif
  • Border Pixels: Particles will spawn from the outer edges of the texture.
../../_images/emission_mask_border.gif
  • Directed Border Pixels: Similar to Border Pixels, but adds extra information to the mask to give particles the ability to emit away from the borders. Note that an Initial Velocity will need to be set in order to utilize this.
../../_images/emission_mask_directed_border.gif

Couleurs d’émission

« Capture from Pixel » fera en sorte que les particules hériteront de la couleur du masque à leur point de naissance.

Once you click « OK », the mask will be generated and set to the ParticlesMaterial, under the Emission Shape section:

../../_images/emission_shapes4.png

All of the values within this section have been automatically generated by the « Load Emission Mask » menu, so they should generally be left alone.

Note

An image should not be added to Point Texture or Color Texture directly. The « Load Emission Mask » menu should always be used instead.