L'émetteur est le générateur invisible derrière chaque effet de particules. Ses composants décident quand il tourne, combien de particules il crée et d'où elles partent. Ils vont tous dans le bloc components d'un fichier de particules, à côté des composants de particule.
Tu débutes avec les particules ? Commence par Ta première particule, qui construit pas à pas un scintillement de rubis complet.
Ce dont chaque émetteur a besoin
Un émetteur a besoin d'un composant de durée de vie et d'un composant de débit, sinon il ne fera rien apparaître. Une forme est facultative : sans elle, les particules partent du centre de l'émetteur. N'utilise qu'un seul composant de chacun de ces groupes.
La plupart des champs numériques de cette page acceptent soit un simple nombre, soit une chaîne Molang comme "math.random(1, 3)". Les tableaux indiquent quand un champ est calculé : une fois au démarrage de l'émetteur, à chaque boucle, ou par particule à chaque fois qu'une particule apparaît.
Préparation
Ces composants s'exécutent avant que quoi que ce soit apparaisse. Tu peux les utiliser avec n'importe quels autres composants.
| Composant | Ce qu'il fait | Champs clés |
|---|---|---|
minecraft:emitter_initialization | Exécute du Molang sur l'émetteur, surtout pour définir tes propres variables que d'autres champs liront ensuite | creation_expression : s'exécute une fois au démarrage de l'émetteur. per_update_expression : s'exécute à chaque mise à jour |
minecraft:emitter_local_space | Pour les effets attachés à une créature : choisis si les particules suivent la créature ou restent là où elles sont nées | position, rotation, velocity (tous vrai ou faux, faux par défaut) |
Définir des variables
emitter_initialization est l'endroit idéal pour tirer un nombre au hasard une seule fois et le partager avec toutes les particules :
"minecraft:emitter_initialization": {
"creation_expression": "variable.ruby_hue = math.random(0.2, 0.4);"
}Chaque particule de cet émetteur peut maintenant lire variable.ruby_hue, par exemple pour sa teinte.
Espace local
Par défaut, les particules partent de l'émetteur puis vivent leur vie dans le monde. Si une créature s'éloigne, ses anciennes particules restent derrière elle, comme une traînée.
position: truefait bouger les particules avec la créature. Utilise-le pour une lueur qui doit rester enroulée autour d'elle.rotation: trueles fait aussi tourner avec la créature. Ça ne marche qu'avecposition: true.velocity: trueajoute la vitesse de la créature à chaque nouvelle particule, pour que les étincelles lancées par une créature qui court filent vers l'avant.
"minecraft:emitter_local_space": {
"position": true,
"rotation": true
}Seulement pour les effets attachés
L'espace local ne fait rien pour les effets joués avec /particle ou un script à un endroit du monde. Il ne compte que quand une créature ou un attachable joue l'effet.
Débit
Le débit décide combien de particules apparaissent et à quelle vitesse. Choisis-en un.
| Composant | Ce qu'il fait | Champs clés |
|---|---|---|
minecraft:emitter_rate_instant | Fait apparaître un groupe de particules toutes au même moment, comme une explosion | num_particles (10 par défaut, par boucle) |
minecraft:emitter_rate_steady | Fait apparaître les particules l'une après l'autre, à un rythme régulier | spawn_rate : particules par seconde (1 par défaut). max_particles : le maximum en vie en même temps (50 par défaut) |
minecraft:emitter_rate_manual | Ne fait rien apparaître tout seul. Le jeu fait apparaître les particules une par une quand il en a besoin | max_particles (50 par défaut) |
Instantané : une explosion
"minecraft:emitter_rate_instant": {
"num_particles": 12
}Si l'émetteur boucle, il explose à nouveau au début de chaque boucle.
Régulier : un flux
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 40
}Ça crée 20 particules par seconde, mais arrête d'en ajouter tant que 40 sont en vie. max_particles est une limite de sécurité : garde-la basse, car des centaines de particules peuvent ralentir les téléphones moins puissants.
Manuel : pour les événements
emitter_rate_manual sert aux effets intégrés que le jeu fait apparaître une particule à la fois, comme les éclaboussures de pluie. Pour tes propres effets, tu t'en serviras surtout pour de petits effets que d'autres effets font apparaître avec un événement de type particle (voir les événements). Pour tout ce que tu joues toi-même, utilise instantané ou régulier.
Durée de vie
La durée de vie décide combien de temps l'émetteur continue de travailler. Choisis-en une, puis ajoute des événements de durée de vie si tu en as besoin.
| Composant | Ce qu'il fait | Champs clés |
|---|---|---|
minecraft:emitter_lifetime_once | Tourne une fois, puis se supprime | active_time : secondes pendant lesquelles il émet (10 par défaut) |
minecraft:emitter_lifetime_looping | Tourne, fait une pause, recommence, jusqu'à ce que quelque chose le supprime | active_time : secondes allumé (10 par défaut). sleep_time : secondes éteint entre deux boucles (0 par défaut) |
minecraft:emitter_lifetime_expression | S'allume et s'éteint selon du Molang, vérifié à chaque image | activation_expression : émet tant que cette valeur n'est pas 0 (1 par défaut). expiration_expression : supprime l'émetteur dès que cette valeur n'est pas 0 (0 par défaut) |
minecraft:emitter_lifetime_events | Déclenche tes événements à certains moments de la vie de l'émetteur | creation_event, expiration_event, timeline, travel_distance_events, looping_travel_distance_events |
Une fois
Le meilleur choix pour un effet unique lancé par une commande ou un script :
"minecraft:emitter_lifetime_once": {
"active_time": 1
}Avec emitter_rate_instant, l'explosion a lieu au début, donc active_time peut être court.
En boucle
"minecraft:emitter_lifetime_looping": {
"active_time": 2,
"sleep_time": 3
}Ça scintille pendant 2 secondes, se repose 3 secondes, et recommence. Utilise la boucle pour les effets attachés à une créature ou joués depuis un contrôleur d'animation, où le jeu supprime l'émetteur pour toi quand la créature ou l'état disparaît.
Expression
Idéal pour les effets qui suivent une créature et s'allument et s'éteignent tout seuls :
"minecraft:emitter_lifetime_expression": {
"activation_expression": "query.ground_speed > 0.1",
"expiration_expression": 0
}Ça ne scintille que quand la créature marche, et ne se supprime jamais. Les requêtes comme query.ground_speed lisent la créature à laquelle l'effet est attaché.
Événements
emitter_lifetime_events pointe vers des noms du bloc events du même fichier. Chaque champ prend un nom d'événement ou une liste de noms.
"minecraft:emitter_lifetime_events": {
"creation_event": "flash",
"expiration_event": "pop",
"timeline": {
"0.5": "twinkle",
"1.0": ["twinkle", "chime"]
},
"travel_distance_events": {
"4.0": "dust"
},
"looping_travel_distance_events": [
{ "distance": 1.0, "effects": ["dust"] }
]
}| Champ | Se déclenche |
|---|---|
creation_event | Quand l'émetteur démarre |
expiration_event | Quand l'émetteur s'arrête. Il n'attend pas que ses particules disparaissent |
timeline | À ces moments, en secondes. Il recommence à chaque boucle |
travel_distance_events | Une fois, quand l'émetteur a parcouru ce nombre de blocs au total |
looping_travel_distance_events | Encore et encore, chaque fois qu'il parcourt ce nombre de blocs. Parfait pour des empreintes ou une traînée derrière un projectile |
Forme
La forme décide où chaque particule démarre et dans quelle direction elle pointe. C'est dans cette direction que particle_initial_speed la pousse. Choisis-en une.
| Composant | Les particules partent | Champs clés |
|---|---|---|
minecraft:emitter_shape_point | Toutes d'un même point | offset, direction |
minecraft:emitter_shape_sphere | De l'intérieur d'une boule, ou de sa surface | radius (1 par défaut), offset, surface_only, direction |
minecraft:emitter_shape_box | De l'intérieur d'une boîte, ou de sa surface | half_dimensions, offset, surface_only, direction |
minecraft:emitter_shape_disc | D'un cercle plat, ou de son bord | radius (1 par défaut), plane_normal, offset, surface_only, direction |
minecraft:emitter_shape_custom | Là où ton Molang le dit | offset, direction |
minecraft:emitter_shape_entity_aabb | De l'intérieur de la boîte autour de la créature à laquelle il est attaché | surface_only, direction |
Champs communs aux formes
| Champ | Ce qu'il fait |
|---|---|
offset | Décale le point de départ par rapport à l'émetteur, en [x, y, z] en blocs. Calculé par particule, donc du Molang ici peut les éparpiller |
direction | La direction des nouvelles particules. "outwards" (en s'éloignant du centre, par défaut), "inwards" (vers lui), ou ton propre [x, y, z] |
surface_only | true les fait apparaître seulement à l'extérieur de la forme, pas à l'intérieur. false par défaut |
Les formes point et custom n'acceptent qu'une direction [x, y, z], car elles n'ont pas de centre duquel s'éloigner.
Point
"minecraft:emitter_shape_point": {
"offset": [0, 0.5, 0],
"direction": [0, 1, 0]
}Chaque particule part un demi-bloc au-dessus de l'émetteur et pointe droit vers le haut.
Sphère
"minecraft:emitter_shape_sphere": {
"radius": 0.5,
"surface_only": true,
"direction": "outwards"
}Une boule creuse d'étincelles qui s'éparpille. Essaie "inwards" avec une courte durée de vie pour un effet de « concentration de pouvoir ».
Boîte
"minecraft:emitter_shape_box": {
"offset": [0, 0.5, 0],
"half_dimensions": [0.5, 0.5, 0.5],
"direction": [0, 1, 0]
}half_dimensions se mesure depuis le centre, donc 0.5 de chaque côté remplit exactement un bloc. Bien pour un effet qui couvre tout un bloc, comme un minerai lumineux.
Disque
"minecraft:emitter_shape_disc": {
"radius": 1.5,
"plane_normal": "y",
"surface_only": true,
"direction": "outwards"
}plane_normal est l'axe vers lequel le disque est tourné. "y" (par défaut) le couche à plat comme un tapis, "x" et "z" le dressent comme un mur. Tu peux aussi donner ton propre [x, y, z]. Cet exemple crée un anneau au sol qui s'étend vers l'extérieur : un joli effet d'atterrissage.
Personnalisée
"minecraft:emitter_shape_custom": {
"offset": [
"math.random(-0.1, 0.1)",
"math.random(0, 2)",
"math.random(-0.1, 0.1)"
],
"direction": [0, 1, 0]
}Avec une forme personnalisée, tu calcules toi-même le point de départ, en [x, y, z]. Ici, chaque particule est placée à une hauteur aléatoire jusqu'à 2 blocs, mais reste près du milieu sur les côtés : un mince pilier d'étincelles, comme un rayon de lumière. Chaque valeur est recalculée pour chaque particule.
Boîte de l'entité
"minecraft:emitter_shape_entity_aabb": {
"surface_only": false,
"direction": [0, 0.2, 0]
}Ça utilise la hitbox de la créature elle-même (sa boîte de collision), donc le même effet s'adapte à un poulet et à un golem de rubis sans rien changer. Si l'effet n'est attaché à aucune créature, les particules sortent plutôt du point de l'émetteur.
Un émetteur complet
On assemble un composant de chaque groupe. Cette aura boucle tant qu'une créature est là et reste collée à elle :
"minecraft:emitter_local_space": {
"position": true,
"rotation": false
},
"minecraft:emitter_lifetime_looping": {
"active_time": 1
},
"minecraft:emitter_rate_steady": {
"spawn_rate": 8,
"max_particles": 20
},
"minecraft:emitter_shape_entity_aabb": {
"surface_only": true,
"direction": [0, 1, 0]
}Ajoute la partie particule (durée de vie, apparence et mouvement) depuis Composants de particule et joue-la depuis l'animation d'une créature, comme montré dans Ta première particule.