El emisor (emitter) es el generador invisible que hay detrás de cada efecto de partículas. Sus componentes deciden cuándo funciona, cuántas partículas crea y dónde empiezan. Todos van en el bloque components de un archivo de partículas, junto a los componentes de partícula.
¿Eres nuevo con las partículas? Empieza con Tu primera partícula, que construye paso a paso un destello de rubí completo.
Lo que necesita todo emisor
Un emisor necesita un componente de duración y un componente de ritmo, o no generará nada. La forma es opcional: sin ella, las partículas empiezan en el centro del emisor. Usa solo un componente de cada uno de estos grupos.
La mayoría de los campos numéricos de esta página aceptan un número simple o un texto de Molang como "math.random(1, 3)". Las tablas indican cuándo se calcula un campo: una vez al arrancar el emisor, en cada bucle o por partícula cada vez que aparece una.
Preparación
Se ejecutan antes de que aparezca nada. Puedes usarlos junto con cualquier otro componente.
| Componente | Qué hace | Campos clave |
|---|---|---|
minecraft:emitter_initialization | Ejecuta Molang en el emisor, sobre todo para dar valor a tus propias variables que luego leen otros campos | creation_expression: se ejecuta una vez al arrancar el emisor. per_update_expression: se ejecuta en cada actualización |
minecraft:emitter_local_space | Para efectos unidos a una criatura: elige si las partículas se mueven con la criatura o se quedan donde nacieron | position, rotation, velocity (todos true o false, por defecto false) |
Dar valor a variables
emitter_initialization es el sitio para sacar un número al azar una sola vez y compartirlo con todas las partículas:
"minecraft:emitter_initialization": {
"creation_expression": "variable.ruby_hue = math.random(0.2, 0.4);"
}Ahora todas las partículas de este emisor pueden leer variable.ruby_hue, por ejemplo en su tinte.
Espacio local
Por defecto, las partículas empiezan en el emisor y luego viven por su cuenta en el mundo. Si una criatura se aleja, sus partículas antiguas se quedan atrás, como un rastro.
position: truehace que las partículas se muevan con la criatura. Úsalo para un brillo que deba quedarse envolviéndola.rotation: trueademás las gira con la criatura. Solo funciona junto conposition: true.velocity: truesuma la velocidad de la criatura a cada partícula nueva, así que las chispas que lanza una criatura que corre salen volando hacia delante.
"minecraft:emitter_local_space": {
"position": true,
"rotation": true
}Solo para efectos unidos
El espacio local no hace nada en los efectos que se reproducen con /particle o con un script en un punto del mundo. Solo importa cuando una criatura o un attachable reproduce el efecto.
Ritmo
El ritmo (rate) decide cuántas partículas aparecen y a qué velocidad. Elige uno.
| Componente | Qué hace | Campos clave |
|---|---|---|
minecraft:emitter_rate_instant | Genera un grupo de partículas todas en el mismo instante, como una explosión | num_particles (por defecto 10, en cada bucle) |
minecraft:emitter_rate_steady | Genera partículas una tras otra, a un ritmo constante | spawn_rate: partículas por segundo (por defecto 1). max_particles: máximo de partículas vivas a la vez (por defecto 50) |
minecraft:emitter_rate_manual | No genera nada por sí solo. El juego genera las partículas una a una cuando las necesita | max_particles (por defecto 50) |
Instantáneo: una explosión
"minecraft:emitter_rate_instant": {
"num_particles": 12
}Si el emisor se repite en bucle, vuelve a explotar al principio de cada bucle.
Constante: un chorro
"minecraft:emitter_rate_steady": {
"spawn_rate": 20,
"max_particles": 40
}Esto crea 20 partículas por segundo, pero deja de añadir nuevas mientras haya 40 vivas. max_particles es un límite de seguridad: mantenlo bajo, porque cientos de partículas pueden ralentizar los móviles menos potentes.
Manual: para eventos
emitter_rate_manual lo usan efectos integrados que el juego genera de partícula en partícula, como las salpicaduras de la lluvia. En tus propios efectos, lo usarás sobre todo para efectos pequeños que otros efectos generan con un evento de tipo particle (consulta los eventos). Para todo lo que reproduzcas tú mismo, usa instantáneo o constante.
Duración
La duración (lifetime) decide cuánto tiempo sigue funcionando el emisor. Elige una y luego añade eventos de duración si los necesitas.
| Componente | Qué hace | Campos clave |
|---|---|---|
minecraft:emitter_lifetime_once | Funciona una vez y luego se elimina | active_time: segundos durante los que genera (por defecto 10) |
minecraft:emitter_lifetime_looping | Funciona, se detiene, vuelve a funcionar, hasta que algo lo elimina | active_time: segundos activo (por defecto 10). sleep_time: segundos en pausa entre bucles (por defecto 0) |
minecraft:emitter_lifetime_expression | Se enciende y se apaga con Molang, que se comprueba en cada fotograma | activation_expression: genera mientras esto no sea 0 (por defecto 1). expiration_expression: elimina el emisor en cuanto esto no sea 0 (por defecto 0) |
minecraft:emitter_lifetime_events | Dispara tus eventos en ciertos momentos de la vida del emisor | creation_event, expiration_event, timeline, travel_distance_events, looping_travel_distance_events |
Una vez
La mejor opción para un efecto de una sola vez lanzado desde un comando o un script:
"minecraft:emitter_lifetime_once": {
"active_time": 1
}Con emitter_rate_instant, la explosión ocurre al principio, así que active_time puede ser corto.
En bucle
"minecraft:emitter_lifetime_looping": {
"active_time": 2,
"sleep_time": 3
}Esto destella durante 2 segundos, descansa 3 y se repite. Usa el bucle para efectos unidos a una criatura o reproducidos desde un controlador de animación, donde el juego elimina el emisor por ti cuando la criatura o el estado desaparecen.
Expresión
Ideal para efectos que siguen a una criatura y se encienden y apagan solos:
"minecraft:emitter_lifetime_expression": {
"activation_expression": "query.ground_speed > 0.1",
"expiration_expression": 0
}Esto solo destella mientras la criatura camina, y nunca se elimina. Las consultas como query.ground_speed leen la criatura a la que está unido el efecto.
Eventos
emitter_lifetime_events apunta a nombres del bloque events del mismo archivo. Cada campo acepta un nombre de evento o una lista de nombres.
"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"] }
]
}| Campo | Se dispara |
|---|---|
creation_event | Cuando arranca el emisor |
expiration_event | Cuando termina el emisor. No espera a que desaparezcan sus partículas |
timeline | En estos momentos, en segundos. Se vuelve a ejecutar en cada bucle |
travel_distance_events | Una vez, cuando el emisor se ha movido esa cantidad de bloques en total |
looping_travel_distance_events | Una y otra vez, cada vez que se mueve esa cantidad de bloques. Perfecto para huellas o un rastro detrás de un proyectil |
Forma
La forma (shape) decide dónde empieza cada partícula y hacia dónde apunta. Esa dirección es la que sigue el empujón de particle_initial_speed. Elige una.
| Componente | Las partículas empiezan | Campos clave |
|---|---|---|
minecraft:emitter_shape_point | Todas en un mismo punto | offset, direction |
minecraft:emitter_shape_sphere | Dentro de una bola, o en su superficie | radius (por defecto 1), offset, surface_only, direction |
minecraft:emitter_shape_box | Dentro de una caja, o en su superficie | half_dimensions, offset, surface_only, direction |
minecraft:emitter_shape_disc | En un círculo plano, o en su borde | radius (por defecto 1), plane_normal, offset, surface_only, direction |
minecraft:emitter_shape_custom | Donde diga tu Molang | offset, direction |
minecraft:emitter_shape_entity_aabb | Dentro de la caja que rodea a la criatura a la que está unido | surface_only, direction |
Campos que comparten las formas
| Campo | Qué hace |
|---|---|
offset | Desplaza el punto de partida respecto al emisor, como [x, y, z] en bloques. Se calcula por partícula, así que con Molang aquí puedes esparcirlas |
direction | Hacia dónde apuntan las partículas nuevas. "outwards" (alejándose del centro, por defecto), "inwards" (hacia el centro) o tu propio [x, y, z] |
surface_only | true solo genera en el exterior de la forma, no dentro. Por defecto false |
Las formas de punto y personalizada solo aceptan una dirección [x, y, z], porque no tienen un centro del que alejarse.
Punto
"minecraft:emitter_shape_point": {
"offset": [0, 0.5, 0],
"direction": [0, 1, 0]
}Cada partícula empieza medio bloque por encima del emisor y apunta recto hacia arriba.
Esfera
"minecraft:emitter_shape_sphere": {
"radius": 0.5,
"surface_only": true,
"direction": "outwards"
}Una bola hueca de destellos que sale volando en todas direcciones. Prueba "inwards" con una duración corta para un efecto de "acumular poder".
Caja
"minecraft:emitter_shape_box": {
"offset": [0, 0.5, 0],
"half_dimensions": [0.5, 0.5, 0.5],
"direction": [0, 1, 0]
}half_dimensions se mide desde el centro, así que 0.5 en cada lado llena exactamente un bloque. Va bien para un efecto que cubre un bloque entero, como una mena brillante.
Disco
"minecraft:emitter_shape_disc": {
"radius": 1.5,
"plane_normal": "y",
"surface_only": true,
"direction": "outwards"
}plane_normal es el eje hacia el que mira el disco. "y" (por defecto) lo deja tumbado como una alfombra, y "x" y "z" lo ponen de pie como una pared. También puedes dar tu propio [x, y, z]. Este ejemplo crea un anillo en el suelo que se extiende hacia fuera: un buen efecto de aterrizaje.
Personalizada
"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]
}Con una forma personalizada, calculas tú mismo el punto, como [x, y, z]. Esto coloca cada partícula a una altura al azar de hasta 2 bloques, pero la mantiene cerca del centro a los lados: una columna fina de destellos, como un rayo de luz. Cada valor se vuelve a calcular para cada partícula.
Caja de la entidad
"minecraft:emitter_shape_entity_aabb": {
"surface_only": false,
"direction": [0, 0.2, 0]
}Esta usa la propia caja de impacto de la criatura (su caja de colisión), así que el mismo efecto sirve para una gallina y para un gólem de rubí sin cambios. Si el efecto no está unido a una criatura, las partículas salen del punto del emisor.
Un emisor completo
Juntando uno de cada grupo. Esta aura se repite en bucle mientras hay una criatura y se queda pegada a ella:
"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]
}Añade la parte de la partícula (duración, aspecto y movimiento) de Componentes de partícula y reprodúcela desde la animación de una criatura, como se muestra en Tu primera partícula.