TrailEmitter
Un Trail en Roblox es una estela de geometría entre dos Attachments. El tipo Trail simple del plugin ya gestiona eso: transformas un Trail, el plugin pulsa su bandera Enabled durante una duración analizada, y la estela se dibuja mientras los Attachments subyacentes se mueven. Un trail, encendido o apagado.
TrailEmitter es una forma distinta. Trata el Trail fuente como una plantilla y emite clones a partir de él en un ciclo de Rate / EmitCount, igual que el emisor Part emite clones de un Part. Cada Trail clonado es una partícula independiente con su propio Lifetime, su propio ancho y color dirigidos por gráficos durante esa vida, y su propia animación de flipbook si configuras una. Cinco clones a la vez producen cinco cintas concurrentes; cien por segundo producen un flujo denso y fluido.
Esa es la diferencia: Trail es una sola estela que conmutas. TrailEmitter son muchas estelas que generas.
Qué transforma
Sección titulada «Qué transforma»Una instancia nativa Trail — el mismo punto de partida que el tipo Trail normal. El plugin comprueba si quieres acceso directo (el comportamiento del Trail simple) o emisor (TrailEmitter) cuando haces Transform, mediante el selector de tipo de la herramienta Transform.
Después de Transform, el Trail fuente se convierte en un TrailEmitter: obtiene un hijo RenderTemplate (un clon oculto del Trail original, desactivado por defecto), un hijo Configuration con los gráficos de propiedades, y una carpeta GraphBlender para la animación multi-estado de ancho/color/transparencia. Cada emisión clona el RenderTemplate, lo emparenta bajo tu EmitParent, lo recorre durante el TrailLife de animación, y luego destruye (o pone en pool) el clon.
Cuándo recurrir a TrailEmitter
Sección titulada «Cuándo recurrir a TrailEmitter»El modelo de clon-por-emisión encaja en cualquier caso en el que quieras múltiples trails superpuestos animados de forma independiente:
- Estela de espadazo. Cada fotograma de un giro genera una estela brillante que se desvanece en medio segundo. Con Rate alrededor de 30, obtienes una franja densa y emplumada en la que cada cinta individual se atenúa de forma independiente — mucho más rica que un único trail.
- Aura de proyectil mágico. Un proyectil arrastra un trail primario (Trail simple, encendido desde el lanzamiento) más un montaje TrailEmitter que genera pequeños trails en espiral a lo largo del camino. Cada espiral se anima de brillante a tenue, de estrecho a ancho, y luego se desvanece.
- Efectos de formación de grupo. Una formación de partículas en la que cada partícula deja su propia cinta de vida breve. Las cintas se superponen, se cruzan y se atenúan de forma independiente.
- Autoría con GraphBlender. Animación multi-estado de Color y Transparency a lo largo de la vida de cada trail clonado — el mismo modelo de Blender que usa
Beam, pero sobre un Trail. Pulsa de blanco incandescente al nacer a desvanecimiento rojo a media vida, a fantasma azul profundo al morir. Cada clon recibe la animación completa.
Para una estela única de duración fija (el destello en reposo de una espada, una línea de láser fija), el Trail simple sigue siendo la herramienta correcta — la maquinaria de TrailEmitter se desperdicia en una única conmutación binaria.
Propiedades de un vistazo
Sección titulada «Propiedades de un vistazo»El panel tiene más filas que el Trail simple porque cada propiedad visual está dirigida por un gráfico a lo largo de la vida de cada partícula. Agrupadas por sección.
Emission
Sección titulada «Emission»| Etiqueta del panel | Atributo de datos | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
| Enabled | Enabled (atributo de Configuration) | boolean | false | Compuerta maestra para emisión continua |
| Rate | Rate | number | 10 | Partículas por segundo |
| Lifetime | Lifetime | NumberRange | 2 | Cuánto vive cada Trail-partícula emitida |
| TrailLife | TrailLife | NumberRange | 2 | Cuánto persisten los segmentos de cola de cada Trail clonado (independiente de Lifetime) |
| EmitCount | EmitCount | number | 0 | Conteo de ráfaga de una sola vez |
| EmitDelay | EmitDelay | number | 0 | Espera antes de la primera partícula |
| EmitDuration | EmitDuration | number | 0 | Segundos de bucle continuo tras las ráfagas iniciales |
Appearance (dirigida por gráficos a lo largo de la vida de la partícula)
Sección titulada «Appearance (dirigida por gráficos a lo largo de la vida de la partícula)»| Etiqueta del panel | Atributo de datos | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
| Brightness | Brightness | NumberSequence | 1 | Brillo a lo largo de la vida de cada partícula |
| LightEmission | LightEmission | NumberSequence | 0 | Intensidad de auto-iluminación a lo largo de la vida |
| LightInfluence | LightInfluence | NumberSequence | 1 | Cuánto afecta la iluminación de la escena al trail a lo largo de la vida |
| MinLength | MinLength | NumberSequence | 0.1 | Longitud mínima del segmento a lo largo de la vida |
| MaxLength | MaxLength | NumberSequence | 0 | Longitud máxima del trail a lo largo de la vida. 0 es ilimitada |
| TextureLength | TextureLength | NumberSequence | 1 | Cuánto cubre un tile de textura a lo largo del trail, durante la vida |
GraphBlender (Width / Color / Transparency multi-estado)
Sección titulada «GraphBlender (Width / Color / Transparency multi-estado)»Width, Color y Transparency no son gráficos únicos — viven en una carpeta GraphBlender de estados Configuration, exactamente como el GraphBlender de Beam (consulta también GraphBlender Math). Cada estado contiene un Time (0 a 1 a lo largo de la vida de la partícula), un gráfico Width, una secuencia Color y un gráfico Transparency. Añade estados mediante el botón + Add State del panel; el motor mezcla suavemente entre estados adyacentes a medida que cada partícula envejece.
Una forma típica de autoría: estado 0 en Time = 0 (Color cian, Width 1, Transparency 0), estado 1 en Time = 1 (Color púrpura, Width 0, Transparency 1). Cada trail emitido se desvanece de cian-y-ancho a púrpura-y-fino-y-desaparecido a lo largo de su propia vida.
Flipbook
Sección titulada «Flipbook»| Etiqueta del panel | Atributo de datos | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
| Mode | TrailFlipbookMode | enum | OneShot | Modo de reproducción de la secuencia de fotogramas — OneShot o Loop |
| Framerate | TrailFlipbookFramerate | NumberRange | 30 | Fotogramas por segundo |
| StartRandom | TrailFlipbookStartRandom | boolean | false | Empieza cada partícula en un fotograma aleatorio |
| Reverse | TrailFlipbookReverse | boolean | false | Reproduce la secuencia de fotogramas al revés |
Coloca hijos Decal numerados dentro del Trail fuente para poblar el flipbook (misma forma que los flipbooks de Beam/Part, solo que adjuntos a la instancia Trail). Consulta Mesh Flipbooks para el patrón de autoría.
Advanced
Sección titulada «Advanced»| Etiqueta del panel | Atributo de datos | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
| Timescale | Timescale | NumberSequence | 1 | Escalado de tiempo por fotograma sobre los gráficos de apariencia |
| Anim. Steps | TotalKeyFrames | number | 100 | Resolución de muestreo del gráfico por partícula |
| Linger | PartLife | number | 0 | Segundos que el trail persiste tras el final de Lifetime |
| Emit Into | EmitParent (ObjectValue) | instancia | (padre de la fuente) | Dónde se emparentan los Trails emitidos |
| Preload Texture | PreloadTexture | boolean | false | Fuerza la carga de la textura antes de emitir |
| Link | LinkSource | enum | None | Objetivo de enlace Camera / Object / None |
| Link Mode | LinkMode | enum | Follow | Cómo se compone el enlace con la posición de emisión |
| Link Dir. | Link (ObjectValue) | instancia | ninguna | El objetivo de enlace escogido |
Prosa por propiedad
Sección titulada «Prosa por propiedad»TrailLife
Sección titulada «TrailLife»Cuánto viven los segmentos de cada Trail emitido antes de desvanecerse. Un NumberRange, muestreado al emitir por cada clon. Diferente de Lifetime — Lifetime es cuánto tiempo existe la entidad partícula emitida (y anima sus gráficos); TrailLife es cuánto persiste cada segmento del trail.
Un Lifetime de 1 segundo con TrailLife de 0.5 significa que cada trail emitido anima sus gráficos de propiedades durante 1 segundo, pero los segmentos que va dejando solo persisten medio segundo antes de desvanecerse. La estela visible es corta; el ciclo de animación es largo.
Un Lifetime de 1 segundo con TrailLife de 3 segundos es lo opuesto: vida corta del emisor, estela que se desvanece lentamente. Útil para bocanadas que florecen brevemente y luego dejan una nube que se disuelve despacio.
Brightness
Sección titulada «Brightness»Un gráfico NumberSequence para el Brightness del Trail clonado a lo largo de la vida de cada partícula. Muestreado por fotograma, aplicado como multiplicador sobre la intensidad renderizada del Trail. Una rampa de 2 en age 0 a 0.3 en age 1 produce un trail que arde caliente al nacer y se atenúa al envejecer.
A diferencia del Trail simple (donde Brightness es un único número sin animación), TrailEmitter lo anima fotograma a fotograma en cada clon.
LightEmission
Sección titulada «LightEmission»Un gráfico NumberSequence para la intensidad de la mezcla aditiva. 0 es mezcla normal; 1 es completamente auto-iluminado. Animado a lo largo de la vida — útil para trails que deberían verse más calientes en el momento de la emisión y enfriarse hacia la muerte (empieza en 1, termina en 0).
LightInfluence
Sección titulada «LightInfluence»Un gráfico NumberSequence para cuánto afecta la iluminación de la escena al trail. 0 ignora la iluminación de la escena (el trail se autoilumina sin importar el entorno); 1 sigue la iluminación de la escena con normalidad. El valor por defecto de 1 es el aspecto realista; valores más bajos para trails que deben brillar de forma consistente en zonas oscuras o sombreadas.
MinLength
Sección titulada «MinLength»Longitud mínima del segmento, en studs, animada a lo largo de la vida. Roblox dibuja segmentos de Trail solo cuando los Attachments se han movido al menos MinLength desde que se colocó el último segmento. Valores más grandes implican geometría más dispersa — unos pocos segmentos largos en lugar de muchos cortos.
Un gráfico de MinLength que va de 0.5 a 0 te da un trail que empieza disperso y se rellena al envejecer. Útil sobre todo para emisores de baja tasa en los que quieres que la geometría de cada trail individual se sienta intencional en lugar de densa.
MaxLength
Sección titulada «MaxLength»Longitud total máxima del trail, en studs, animada a lo largo de la vida. 0 (el valor por defecto) es ilimitada — el trail dibuja toda la geometría que quiera basándose en el movimiento de los Attachments. Los valores positivos limitan la longitud visible; los segmentos más antiguos se descartan una vez que la longitud total supera el límite.
Una rampa de MaxLength de 5 a 0 produce un trail que se acorta visiblemente hacia la cabeza al envejecer — los segmentos viejos desaparecen por detrás. Útil para efectos “consumidores” en los que el trail se come su propia cola.
TextureLength
Sección titulada «TextureLength»Cuánto cubre un tile de textura a lo largo del trail, en studs, animado a lo largo de la vida. Valores más bajos producen repeticiones de textura más densas y comprimidas; valores más altos estiran la textura más largamente.
Animar este gráfico a lo largo de la vida te permite comprimir y estirar la textura a medida que cada partícula envejece — una forma rápida de producir movimiento ondulado o respiratorio en el patrón visible sin cambiar la geometría subyacente.
Timescale
Sección titulada «Timescale»Un gráfico NumberSequence que controla la velocidad a la que se muestrean los otros gráficos de cada partícula. Un 1 constante es la reproducción normal; 0.5 reproduce la animación de apariencia a media velocidad; 0 congela la animación en el fotograma actual de la partícula; los valores negativos la rebobinan.
Este es el mismo sistema Timescale usado por otros tipos (añadido en v37). Para la mayor parte de la autoría, déjalo en un 1 constante; recurre a él cuando quieras que una partícula de una ráfaga se reproduzca más rápido o más lento que otra, o cuando quieras que una animación se pause y se reanude en pleno vuelo.
Render Template
Sección titulada «Render Template»Cuando haces Transform sobre un Trail como emisor, el plugin crea un hijo RenderTemplate — un clon del Trail fuente con Enabled = false. En cada emisión, esa plantilla se duplica (o se obtiene del pool de objetos, si el pooling está activado), se establece Enabled = true, se conservan sus Attachment0 / Attachment1, y el duplicado se emparenta bajo tu EmitParent. El duplicado recorre su Lifetime mientras los gráficos de apariencia se animan fotograma a fotograma, y luego el duplicado se destruye (o se devuelve al pool) y el estado de GraphBlender / propiedades se reinicia.
Texture, Attachment0, Attachment1, FaceCamera y TextureMode de la plantilla pasan literalmente a cada clon; las propiedades dirigidas por gráficos (Brightness, LightEmission, etc.) se sobrescriben fotograma a fotograma durante la vida de la partícula.
Vale la pena saber
Sección titulada «Vale la pena saber»Algunas peculiaridades específicas de TrailEmitter.
Dos valores separados de “duración”. Lifetime es cuánto vive y anima cada partícula. TrailLife es cuánto persiste cada segmento del trail de esa partícula antes de desvanecerse. Son independientes — Lifetime corto + TrailLife largo produce una emisión breve seguida de una estela que se desvanece lentamente; viceversa para ráfagas cortas con colas cortas.
El pool está activado por defecto. Los clones de Trail emitidos se ponen en pool y se reutilizan en lugar de destruirlos y recrearlos. Mejor para emisores de alta tasa (evita la rotación del GC). Desactívalo solo si observas artefactos relacionados con el pool.
GraphBlender es el mismo que el de Beam. Width, Color y Transparency viven en una carpeta GraphBlender, mismo modelo de autoría que los Beams transformados. Interpolación multi-estado a lo largo de la vida de la partícula. Si has creado un GraphBlender de un Beam, los mismos patrones funcionan aquí.
Attachment0 / Attachment1 se heredan de la fuente. Cada Trail clonado usa los mismos Attachments que la fuente. Si esos Attachments se mueven (p. ej. están emparentados a un personaje en movimiento), cada clon concurrente los sigue. Si quieres geometría independiente por clon, eso está fuera del modelo de TrailEmitter — usa en su lugar un emisor Part con hijos Attachment por partícula.
Trail simple sigue existiendo. Este capítulo es para TrailEmitter. El tipo Trail simple sigue siendo la opción correcta para estelas estáticas que solo necesitas encender y apagar. La herramienta Transform ofrece ambas opciones cuando haces clic en Transform sobre un Trail; elige TrailEmitter cuando necesites la forma de sistema de partículas.
Qué sigue
Sección titulada «Qué sigue»TrailEmitter es uno de los tres nuevos tipos añadidos en v38. Los otros dos son Highlight (cubierto antes) y BeamNative — un hermano de Beam donde la fuente permanece como una instancia Beam nativa de Roblox en lugar de un emisor completamente transformado. La documentación de BeamNative llegará en una revisión futura; por ahora la referencia más cercana es el capítulo existente de Beam, que cubre tanto la forma del emisor Beam transformado como la ruta de acceso directo de Beam nativo con la que se solapa.