Last updated: 06/10/2024, 02:17

Current Project: Easing hk.fr into its new life.

SparkEmitter

Le SparkEmitter est un système de particules qui peut être utilisé dans un Emitter. Il se distingue des autres systèmes par son effet très simplifié : au lieu de projeter des sprites ou des static-meshes, il projette des "sparks", ou étincelles, formées de lignes sans épaisseur qui peuvent être divisées en segments articulés les uns aux autres pour former des courbes. Il est d'un intérêt moindre et se trouve donc limité aux étincelles ou aux petites gouttes d'eau, ce qui explique qu'il soit très rarement utilisé.

Création et activation

Comme tous les autres systèmes de particules, le SparkEmitter doit être ajouté à un Emitter.

Ajout d'un SparkEmitter à un Emitter

Il possède la même liste de propriétés, mais l'onglet Sprite est remplacé par l'onglet Spark. De plus, lorsqu'un SparkEmitter est créé, il n'est pas instantanément actif car son paramétrage par défaut n'engendre pas d'effet visible, à l'inverse du SpriteEmiter qui émet par défaut des particules portant la texture de l'actor Emitter lui-même. En effet, les étincelles n'ont aucune longueur par défaut. De plus, les particules ne peuvent pas se déployer si elles ne se déplacent pas.

Après avoir ajouté un mouvement grâce aux onglets Velocity ou Acceleration du SparkEmitter, il faut se rendre dans l'onglet Spark et mettre une valeur supérieure à 0 dans TimeBetweenSegmentsRange, par exemple 0.5. L'Emitter commence alors à émettre des lignes multicolores.

Effet par défaut

L'aspect multicolore est dû à la texture par défaut, composée de cinq étoiles de couleurs différentes sur fond transparent. Les étincelles tirent en effet leur couleur de la texture utilisée dans l'onglet Texture du système de particules, mais ramenée à une ligne unique. Avec une autre texture, de couleur plus unie, on peut modifier l'aspect des étincelles.

Influence de la couleur de la texture utilisée sur les étincelles

L'onglet Spark gère la composition des étincelles. Il ne comprend que trois paramètres qui sont tous exprimés comme des intervalles (avec un minimum et un maximum, pour donner une variation aléatoire) dont l'un, TimeBeforeVisibleRange, n'a aucun effet et est décrit comme non fonctionnel même dans la documentation de l'UDN.

Pour chaque segment, une extrémité "avant" est propulsée selon les paramètres de mouvement choisis et le segment s'étire entre ce point et le point de départ de la particule. Une fois le temps paramétré dans TimeBetweenSegmentsRange écoulé, l'Emitter ajoute son extrémité "arrière" et le segment se détache de son point de départ. Si LineSegmentsRange est supérieur à 1, le segment suivant est immédiatement commencé à son tour et suit la même logique.

Structure d'une étincelle

La longueur de l'étincelle complète dépend de ces deux paramètres qui, ensemble, définissent sa structure : combien de sous-parties et de quelle longueur. Il ne s'agit cependant pas d'une simple multiplication, car la vitesse des particules a également une influence : plus une étincelle est rapide, plus elle sera longue (à TimeBetweenSegmentsRange égal) car son extrémité "avant" aura parcouru une plus grande distance avant que son extrémité "arrière" ne soit générée. De même, si la particule est soumise à une accélération, les segments peuvent s'allonger ou se contracter au fur et à mesure de la vie de l'étincelle et sa longueur peut donc changer.

Dans tous les cas, le produit de TimeBetweenSegmentsRange x LineSegmentsRange doit être inférieur à la durée de vie totale de la particule (Time → LifeTimeRange), sans quoi celle-ci n'aura pas le temps de se détacher de son point de départ, la particule expirant avant que la dernière extrémité du dernier segment ait pu être générée.

Lorsque les particules ont des trajectoires relativement rectilignes, utiliser un nombre réduit de segments de grande longueur permet de réduire le nombre de particules utilisées et donc d'éviter un ralentissemement du jeu. À l'inverse, si les particules décrivent des courbes marquées, multiplier le nombre de segments et réduire leur longueur permet d'augmenter la définition de la courbe.

Différence dans les courbes selon le paramétrage

En dehors du mouvement et de la taille des étincelles, la couleur est le principal élément affectant l'effet final. On peut par exemple simuler des étincelles de soudure avec des couleurs chaudes, une vitesse élevée et une forte accélération vers le bas (en mettant une valeur négative sur Z ; -520 est proche de la pensanteur terrestre réelle).

Étincelles

Limitations

Plusieurs onglets des propriétés de l'Emitter ne sont pas utilisables avec le SparkEmitter. Il s'agit des onglets Collision, Force, Mass, Revolution et Size, ainsi que de Texture, à l'exception du champ Texture lui-même, qui influence la couleur globale des particules.

Les autres onglets fonctionnent normalement, mais il est à noter que certains paramètres sont malgré tout sans effet :

À ces quelques exceptions près, le SparkEmitter se comporte comme un SpriteEmitter très simplifié et beaucoup moins versatile. En plus des étincelles, son usage principal, d'où son nom, il peut servir pour simuler de la pluie ou des jets d'eau, mais il est concurrencé dans le premier cas par le xWeatherEffect, et dans l'autre par le SpriteEmitter qui peut utiliser des particules plus grandes ou avec des textures prévues pour un effet plus convaincant.

Pluie basique obtenue avec un SparkEmitter

Le choix de la texture n'a presque aucune incidence sur l'effet final car l'onglet Color peut servir à donner la couleur désirée aux particules. Une exception cependant : si la texture possède des parties transparentes (comme la texture par défaut des cinq étoiles de couleur), il peut y avoir des "trous" dans chaque segment.

Notez enfin que l'article sur les SparkEmitters sur l'UDN décrit une version du SparkEmitter qui n'est pas exactement la même que celle d'UT2004. Ainsi, il y est dit que les paramètres de couleur et de fading agissent sur chaque segment et non pas sur l'étincelle de manière globale, ce qui n'est pas le cas dans le jeu final, où les paramètres des onglets Fading et Color marchent comme attendu. De la même façon, UT2004 considère comme "particule" une étincelle complète, quel que soit le nombre de segments qui la composent. UDN explique que le moteur traite chaque segment comme une particule distincte, ce qui nécessite d'augmenter fortement MaxParticles (dans l'onglet General), ce qui n'est plus le cas dans le jeu.

© 2005-2026, by Hellkeeper.

Valid XHTML 1.1 & CSS 3