1. Wiki
  2. /Particules
  3. /Composants d'émetteur

Composants d'émetteur

Tous les composants d'émetteur de particules de Minecraft Bedrock au même endroit : préparation, débit, durée de vie et forme, avec leurs champs et de courts exemples.

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.

ComposantCe qu'il faitChamps clés
minecraft:emitter_initializationExécute du Molang sur l'émetteur, surtout pour définir tes propres variables que d'autres champs liront ensuitecreation_expression : s'exécute une fois au démarrage de l'émetteur. per_update_expression : s'exécute à chaque mise à jour
minecraft:emitter_local_spacePour les effets attachés à une créature : choisis si les particules suivent la créature ou restent là où elles sont néesposition, 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 :

RP/particles/ruby_sparkle.json (dans components)
"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: true fait bouger les particules avec la créature. Utilise-le pour une lueur qui doit rester enroulée autour d'elle.
  • rotation: true les fait aussi tourner avec la créature. Ça ne marche qu'avec position: true.
  • velocity: true ajoute 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.
RP/particles/ruby_aura.json (dans components)
"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.

ComposantCe qu'il faitChamps clés
minecraft:emitter_rate_instantFait apparaître un groupe de particules toutes au même moment, comme une explosionnum_particles (10 par défaut, par boucle)
minecraft:emitter_rate_steadyFait apparaître les particules l'une après l'autre, à un rythme régulierspawn_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_manualNe fait rien apparaître tout seul. Le jeu fait apparaître les particules une par une quand il en a besoinmax_particles (50 par défaut)

Instantané : une explosion

Dans components
"minecraft:emitter_rate_instant": {
  "num_particles": 12
}

Si l'émetteur boucle, il explose à nouveau au début de chaque boucle.

Régulier : un flux

Dans components
"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.

ComposantCe qu'il faitChamps clés
minecraft:emitter_lifetime_onceTourne une fois, puis se supprimeactive_time : secondes pendant lesquelles il émet (10 par défaut)
minecraft:emitter_lifetime_loopingTourne, fait une pause, recommence, jusqu'à ce que quelque chose le supprimeactive_time : secondes allumé (10 par défaut). sleep_time : secondes éteint entre deux boucles (0 par défaut)
minecraft:emitter_lifetime_expressionS'allume et s'éteint selon du Molang, vérifié à chaque imageactivation_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_eventsDéclenche tes événements à certains moments de la vie de l'émetteurcreation_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 :

Dans components
"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

Dans components
"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 :

Dans components
"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.

Dans components
"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"] }
  ]
}
ChampSe déclenche
creation_eventQuand l'émetteur démarre
expiration_eventQuand l'émetteur s'arrête. Il n'attend pas que ses particules disparaissent
timelineÀ ces moments, en secondes. Il recommence à chaque boucle
travel_distance_eventsUne fois, quand l'émetteur a parcouru ce nombre de blocs au total
looping_travel_distance_eventsEncore 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.

ComposantLes particules partentChamps clés
minecraft:emitter_shape_pointToutes d'un même pointoffset, direction
minecraft:emitter_shape_sphereDe l'intérieur d'une boule, ou de sa surfaceradius (1 par défaut), offset, surface_only, direction
minecraft:emitter_shape_boxDe l'intérieur d'une boîte, ou de sa surfacehalf_dimensions, offset, surface_only, direction
minecraft:emitter_shape_discD'un cercle plat, ou de son bordradius (1 par défaut), plane_normal, offset, surface_only, direction
minecraft:emitter_shape_customLà où ton Molang le ditoffset, direction
minecraft:emitter_shape_entity_aabbDe l'intérieur de la boîte autour de la créature à laquelle il est attachésurface_only, direction

Champs communs aux formes

ChampCe qu'il fait
offsetDé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
directionLa direction des nouvelles particules. "outwards" (en s'éloignant du centre, par défaut), "inwards" (vers lui), ou ton propre [x, y, z]
surface_onlytrue 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

Dans components
"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

Dans components
"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

Dans components
"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

Dans components
"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

Dans components
"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é

Dans components
"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 :

RP/particles/ruby_aura.json (dans components)
"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.

We use cookies to improve your experience and analyse site traffic. Learn more