Ir al contenido

Part

El ParticleEmitter integrado de Roblox dibuja cada partícula como un quad texturizado plano: una imagen 2D extendida entre dos triángulos. Su propiedad Orientation te ofrece cuatro formas de orientar ese quad (mirar a la cámara, mirar a la cámara con el eje vertical del mundo bloqueado, alinearse con la velocidad o correr perpendicular a la velocidad), pero la forma renderizada sigue siendo una superficie plana sin grosor. Esto es adecuado para chispas, humo, destellos y la mayoría de los efectos de estilo sprite, que se leen de forma convincente como imágenes planas.

Part es el tipo para partículas que necesitan geometría 3D real.

Cuando transformas un Part, cada partícula emitida es una malla 3D: profundidad, volumen real, total libertad de rotación en tres ejes. Una moneda modelada a medida que gira de canto. Un fragmento de vidrio con un material refractivo. Una hoja que puedes ver por detrás mientras se retuerce. Ninguno de estos se lee correctamente como sprites planos; necesitan volumen.

Este capítulo cubre todas las propiedades que Part expone: las compartidas que hereda de los capítulos de comportamientos compartidos, más sus muchas propiedades específicas del tipo para apariencia, forma y flipbooks.

Cualquier parte visible de Roblox:

  • Un Part regular con una de las formas primitivas de Roblox: Block, Sphere, Cylinder, Wedge, CornerWedge.
  • Un MeshPart con una malla personalizada.
  • Un Part con un hijo SpecialMesh para el formato de malla más antiguo.
  • Un Part con un SpecialMesh y un Decal para partículas de malla texturizada.

El plugin gestiona cada uno de estos tipos internamente, pero la experiencia es la misma para ti: selecciona, haz clic en Transform, edita en el panel.

La superficie completa, agrupada por sección del panel. Las filas compartidas enlazan a los capítulos compartidos; las filas específicas del tipo enlazan a anclas más abajo en esta página.

Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
RateRatenumber10Partículas por segundo
LifetimeLifetimeNumberRange1Segundos que vive cada partícula, con variación aleatoria
SpreadAngleSpreadAngleVector2(0, 0)Cono de desviación aleatoria, en grados
DirectionEmissionDirectionenumTopQué cara usan las partículas para salir
PositionPosX, PosY, PosZtres NumberRange0Desplazamiento aleatorio desde el centro al nacer
Pos. ModePosModeenumLocalMarco en el que se aplican los desplazamientos de posición
OrientationOrientationenumNoneCómo las partículas miran a la cámara o a la velocidad
Z-OffsetZOffsetnumber0Sesgo de profundidad de renderizado para capas
EmitCountEmitCountnumber0Cantidad de ráfaga de un solo disparo
EmitDelayEmitDelaynumber0Espera antes de la primera partícula
EmitDurationEmitDurationnumber0Segundos de bucle continuo tras las ráfagas iniciales. 0 omite el bucle
Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
ColorColorColorSequenceblancoRGB a lo largo de la vida de cada partícula
TransparencyTransparencyNumberSequence0Opacidad a lo largo de la vida de cada partícula
BrightnessBrightnessNumberSequence1Intensidad de brillo a lo largo de la vida
SizeSizeX, SizeY, SizeZtres NumberSequence1Escala por eje a lo largo de la vida
MaterialMaterialenumdel origenMaterial de superficie de Roblox
Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
SpeedSpeedNumberSequence0Magnitud de velocidad a lo largo de la vida
AccelerationAccelerationVector3(0,0,0)Vector de fuerza constante cada fotograma
DragDragnumber0Decaimiento exponencial de la velocidad
Dir. ModeDirModeenumRigidLocalMarco en el que se encuentra la dirección
Reverse MotionInvertMotionbooleanfalseReproduce la trayectoria en sentido inverso
RotationRotX, RotY, RotZtres NumberRange0Rotación inicial aleatoria por eje al nacer
Rotation ModeRotModeenumOverLifeSi RotSpeed es por vida o por segundo
Rotation SpeedRotSpeedX, Y, Ztres NumberSequence0Velocidad de rotación por eje
Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
Use shapeUseShapebooleanfalseInterruptor maestro para todo el sistema de Shape
ShapeShapeenumBoxLa primitiva 3D desde la que nacen las partículas
DirectionShapeInOutenumOutwardHacia afuera, hacia adentro o ambas: cómo se relaciona la dirección de lanzamiento con la forma
HollowShapePartialnumber0Factor de hueco: 0 sólido, 1 cáscara hueca
Look at initiallyLookAtInitiallybooleanfalseHace que cada partícula nazca mirando hacia la dirección exterior de la forma
Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
ModeFlipbookModeenumOneShotCómo se reproducen los fotogramas
FramerateFlipbookFramerateNumberRange1, 1Fotogramas por segundo
StartRandomFlipbookStartRandombooleanfalseFotograma de inicio aleatorio por partícula
ReverseFlipbookReversebooleanfalseReproduce hacia atrás
Etiqueta del panelAtributo de datosTipoPredeterminadoQué hace
Anim. StepsTotalKeyFramesnumber100Pasos de muestreo de simulación por partícula
LingerPartLifenumber0Segundos que la partícula permanece tras Lifetime

Una ColorSequence: un gráfico cuyo valor en cada punto del tiempo es un color. El tinte de la partícula cambia de un color a otro a medida que envejece.

Una chispa cuyo color comienza blanco intenso y se desvanece pasando por el naranja hasta el rojo es un ejemplo clásico. En el tiempo 0, la partícula nace blanca. Hacia el tiempo 0.5, a mitad de su vida, es naranja. Hacia el tiempo 1, justo antes de morir, es roja.

Gráfico de Color para una chispa caliente
0 particle age 1
Una secuencia Color típica para una chispa: blanco intenso al nacer, naranja a mitad de vida, rojo oscuro al morir.

El color se aplica a la partícula renderizada en combinación con el color existente de la malla de origen: ambos se multiplican. Una partícula roja sobre una malla base cuyo color es blanco se muestra roja. La misma partícula sobre una malla base que ya tiene color azul se muestra como la multiplicación de colores de los dos, lo cual rara vez es lo que quieres. Para tintes predecibles, mantén la malla de origen blanca y deja que Color controle la apariencia por completo.

El valor predeterminado es blanco sólido durante toda la vida: sin tinte.

Una NumberSequence para la opacidad a lo largo de la vida de la partícula. 0 es completamente opaco; 1 es completamente transparente.

La forma más común es un desvanecimiento: opaco al nacer, completamente transparente al morir. Un gráfico de 0 en el tiempo 0 a 1 en el tiempo 1.

Transparency particle age 0 1
Un desvanecimiento: opaco la mayor parte del recorrido, luego un rápido fundido a invisible al final.

También puedes desvanecer hacia adentro: un gráfico que comienza en 1 y desciende. Las partículas “aparecen” gradualmente en lugar de surgir de golpe. Útil para efectos neblinosos.

Un gráfico que va de un lado a otro (opaco, transparente, opaco, transparente) produce partículas que pulsan entre visible e invisible. Combinado con una Speed lenta, esto es un efecto estroboscópico.

El valor predeterminado es 0: completamente opaco durante toda la vida.

Una NumberSequence que multiplica el valor Color de la partícula para producir su color renderizado.

Importante: esto solo tiene efecto visual en Parts que llevan un hijo Decal (es decir: un Part con un SpecialMesh y un Decal, un MeshPart con un Decal, una combinación de malla texturizada). En Parts simples sin un decal, el multiplicador no tiene nada sobre lo que aplicarse (no hay color de píxel de decal que escalar) y no verás ningún cambio visual al aumentarlo.

Así funciona el mecanismo. Cuando el plugin transforma un Part con un decal, los gráficos de Color y Transparency por fotograma se escriben en las propiedades Color3 / Transparency del decal, no en el BasePart en sí. El gráfico Brightness luego multiplica los canales Color3 del decal: un Color de (1, 0.4, 0.1) (un naranja cálido) multiplicado por un Brightness de 3 produce un Color3 de decal de (3, 1.2, 0.3).

El renderizador de Roblox no recorta esos valores en silencio. Cuando los canales Color3 de un decal superan 1 (el límite normalizado de 0–255 / 255), los píxeles renderizados comienzan a brillar: superan el blanco hacia un bloom de estilo HDR que interactúa fuertemente con BloomEffect y la iluminación de material Neon. Ese es el “brillo” que se obtiene al aumentar Brightness. Es una peculiaridad de renderizado de cómo Roblox maneja valores de color fuera de rango en los decals, y el plugin la usa deliberadamente para dar a los Parts con decal un canal de brillo controlable sin un cambio de material adicional.

Valores útiles:

  • 1 (el predeterminado): sin multiplicación; el decal se renderiza a su valor de Color.
  • 0.5: media intensidad; el decal se ve tenue, útil para brasas que se desvanecen.
  • 2 a 4: lleva los canales más brillantes del decal por encima de 1, produciendo un brillo visible en esos canales. Los decals blancos brillan de forma uniforme; los decals de colores brillan en los canales que ya eran altos (un decal rojo con Brightness 3 brilla en rojo, no en blanco).
  • >4: se satura rápidamente; el brillo tiende a leerse como blanco sólido pasado cierto umbral y se pierde la identidad del color.

Un gráfico típico de “chispa de energía”: lanzar con brillo 2.5 (brillo intenso), desvanecer a 0.5 (brasa tenue) al morir. Combinado con un gráfico Color que se desvanece de blanco a rojo y un gráfico Transparency que se desvanece de opaco a invisible, obtienes el aspecto clásico de estela de brasas, pero solo porque la malla de origen usa un decal como superficie visible.

Para Parts sin decals (Parts Block simples, formas primitivas sencillas, MeshParts cuyo color de material se establece directamente sin un hijo decal), opta por el Material = Neon de Roblox más un emisor Bloom para el mismo efecto de brillo: esa ruta no depende del mecanismo del multiplicador de decal.

El valor predeterminado es 1: sin multiplicación.

Etiqueta en la interfaz: Size. Atributos de datos: SizeX, SizeY, SizeZ.

Tres gráficos NumberSequence independientes para la escala por eje a lo largo de la vida de la partícula. El panel de propiedades los muestra como una sola fila etiquetada “Size” con selectores de gráfico X/Y/Z.

Esta es una de las ventajas de Part sobre ParticleEmitter, cuyo propio Size es un único Vector2 (ancho y alto del quad plano, sin eje de profundidad que escalar). Con tres ejes, puedes estirar una partícula en una dirección sin cambiar las otras dos. Una llama que crece en altura mientras se mantiene estrecha usa SizeY creciente mientras SizeX y SizeZ permanecen constantes. Una chispa que se aplana en una estela al envejecer usa SizeY decreciente mientras SizeX crece.

Un valor de escala de 1 significa que la partícula tiene el mismo tamaño que la línea base del Part de origen. 0.5 es la mitad. 2 es el doble.

SizeY particle age 0 1
El tamaño vertical de una llama: crece en el primer tercio de su vida, luego colapsa a nada.

Los tres tienen un valor predeterminado de 1: tamaño uniforme e invariable. Recúrrelos cuando el efecto visual necesite una escala no uniforme.

Los valores se aplican multiplicativamente al tamaño del Part de origen. Una malla de origen de 0.5,0.5,0.5 que emite con SizeX = 2 produce partículas de 1.0 de ancho en el eje X (0.5 × 2).

El material de superficie de Roblox de cada partícula emitida. El panel del plugin expone un subconjunto seleccionado de Enum.Material: Plastic, SmoothPlastic, Neon, Glass, Metal, DiamondPlate, Foil, Brick, Concrete, Granite, Marble, Slate, Wood, WoodPlanks, Fabric, Ice, Sand, Grass, Pebble, Rock (los materiales de superficie visible). Los materiales exclusivos de terreno (Air, Water, Asphalt, Basalt, etc.) no son seleccionables porque no se aplican al renderizado de partículas.

Cuando transformas un Part, el Material del origen se convierte en el predeterminado para las partículas emitidas. Puedes anularlo por emisor si quieres que las partículas emitidas usen un material diferente al de la fuente de autoría.

Esta es una característica exclusiva de Part. ParticleEmitter no expone ninguna propiedad Material en absoluto: sus partículas son quads texturizados planos, alimentados por una imagen Texture en lugar de un material de superficie 3D. Los emisores Part conservan el pipeline de renderizado 3D completo, incluido el material, de modo que una partícula Neon brilla con el shader neon de Roblox, una partícula Glass refracta, y una partícula ForceField mantiene su patrón de desplazamiento.

Para partículas que necesitan un aspecto específico, establece primero el Material de la malla de origen; las partículas emitidas lo heredan. Para anularlo en el momento de la emisión sin cambiar el origen, usa el campo Material del panel.


El sistema Shape controla la región desde la que nacen las partículas y, para formas que no son Box, la dirección radial hacia la que se lanzan. La forma es independiente de la malla real del Part: Shape = Sphere no hace que la partícula visual sea una esfera; hace que la región de nacimiento sea esférica.

Etiqueta en la interfaz: Use shape. Atributo de datos: UseShape.

El interruptor maestro del sistema Shape. Desactivado (el predeterminado) emite cada partícula en el origen del Part sin desplazamiento espacial, sin dirección radial y sin orientación impulsada por la forma: solo los ajustes habituales PosX/PosY/PosZ, RotX/RotY/RotZ y EmissionDirection modelan la salida.

Activado expone el resto de la sección Shape (Shape, Direction, Hollow, Look at initially) y enruta la emisión a través de la primitiva de forma que elijas. Con Use shape desactivado, todos esos campos quedan inertes.

La primitiva 3D desde la que nacen las partículas. Un enum: Box, Sphere, Cylinder, Disc.

Las dimensiones de la forma provienen del propio Part de origen: el mismo Part que transformaste, que también es el padre de RenderTemplate. Redimensiona el Part de origen y la región de nacimiento se redimensiona con él. No hay un campo Size separado para la forma de nacimiento; siempre se deriva del .Size del Part de origen.

Box (el predeterminado): las partículas nacen en cualquier lugar dentro de una caja que coincide con la región de bounding local del Part.

Casos de uso: columnas de humo que ascienden desde una chimenea (una caja alta y estrecha), ráfagas de confeti desde una losa horizontal plana (una caja ancha y plana), campos de nacimiento donde la región visual coincide exactamente con la geometría del Part.

Sphere: las partículas nacen dentro de una región esférica. El radio es la mitad de la dimensión X del Part (Size.X / 2). Si el Part no es aproximadamente cúbico, solo la dimensión X determina la esfera: Y y Z se ignoran para el radio.

Casos de uso: ondas de choque de explosión que emanan hacia afuera desde un punto central, halos de lanzamiento de hechizos donde las partículas se materializan sobre una esfera delimitadora, núcleos atmosféricos llenando un volumen aproximadamente esférico alrededor de un artefacto mágico. Combina Sphere con Hollow = 1 para obtener solo la piel exterior de la esfera: partículas que se materializan en una burbuja invisible.

Cylinder: una región tubular. Su altura corre a lo largo del eje Y local del Part (Size.Y); su sección transversal circular usa el radio Size.X / 2. La orientación del cilindro está fijada a los propios ejes del Part.

Casos de uso: pilares de luz o niebla (cilindro alto y estrecho, partículas que nacen en todo el interior); columnas de escombros en caída; un haz de partículas con base plana que emana hacia arriba desde una base circular. Combina con Hollow = 1 para obtener una cáscara tubular: partículas solo en la superficie curva del cilindro, útil para conductos mágicos de tubo hueco.

Disc: una región circular plana en el plano X-Z local del Part, con radio Size.X / 2. Al igual que Cylinder, el plano del disco está fijado a los ejes locales del Part.

Casos de uso: agua de fuente que se extiende desde una cuenca circular, escombros que se levantan por el impacto circular de un aterrizaje, niebla a ras del suelo que nace en una zona plana. Combina con Hollow = 1 para obtener solo el anillo exterior del disco: partículas que se materializan en el borde del círculo, útil para efectos de halo o círculos de invocación.

Para la mayoría de las creaciones, Box es la opción correcta. Recurre a las otras cuando la forma de la región de nacimiento en sí misma impulsa el efecto visual: partículas de fuente que nacen desde un disco circular en el suelo, humo que nace desde un núcleo esférico.

Etiqueta en la interfaz: Direction. Atributo de datos: ShapeInOut.

Cómo se relaciona la dirección de lanzamiento de cada partícula con el eje radial natural de la forma. Un enum: Outward, Inward, InAndOut.

Outward (el predeterminado): cada partícula se lanza alejándose del centro de la forma a lo largo del eje radial. Una Sphere con Direction = Outward dispara cada partícula hacia afuera desde el centro: la clásica forma de explosión.

Inward: las partículas se lanzan hacia el centro. Una Sphere con Direction = Inward implosiona: las partículas convergen en el punto central. Útil para efectos de carga donde la energía colapsa hacia adentro antes de una liberación.

InAndOut: una moneda al aire 50/50 por partícula: la mitad va hacia afuera, la mitad hacia adentro. Produce un patrón bidireccional más denso útil para campos de escombros o nubes de chispas ambientales donde la dirección no debe ser uniforme.

El eje radial para cada forma: Sphere usa el punto de nacimiento de cada partícula relativo al centro; Cylinder y Disc usan el vector radial en el plano desde el eje del cilindro/disco hasta el punto de nacimiento.

Etiqueta en la interfaz: Hollow. Atributo de datos: ShapePartial.

Un número de 0 a 1 que controla qué parte del volumen de la forma está rellena. 0 (el predeterminado) es completamente sólido: las partículas pueden nacer en cualquier lugar dentro. 1 es una cáscara hueca: solo se usa el límite. Los valores intermedios producen cáscaras parciales.

Hollow = 0.7 en una esfera significa que las partículas nacen dentro del 30% exterior del volumen de la esfera: una cáscara hueca con grosor. Útil para efectos atmosféricos que deben tener profundidad sin estar completamente rellenos.

Hollow = 1 es la elección correcta para efectos «solo en el límite»: círculos de hechizo que se materializan en el borde del disco, partículas tipo pompa de jabón solo en la superficie de una esfera, tubos huecos de partículas formando la piel curva de un cilindro.

Para la mayoría de los usos, deja Hollow en 0.

Etiqueta en la interfaz: Look at initially. Atributo de datos: LookAtInitially.

Un booleano. Cuando está activado, la rotación inicial de cada partícula al nacer se establece de modo que mire hacia la dirección exterior de la forma en su punto de nacimiento: útil cuando quieres que las partículas irradien visiblemente desde el centro de la forma, con su eje frontal apuntando hacia donde viajarán.

Con el interruptor desactivado (el predeterminado), las partículas heredan la rotación del emisor como orientación base y luego aplican RotX/RotY/RotZ por encima.

Esto es más visible en formas Box donde la dirección «exterior» de la forma varía por punto de nacimiento: activar Look at initially le da a una explosión Box el aspecto de escombros irradiando desde el centro en lugar de cada fragmento mirando en la misma dirección. En Sphere/Cylinder/Disc se aplica el mismo principio: las partículas se alinean con el eje radial a lo largo del cual se lanzarán.

Look at initially solo se aplica cuando Use shape está activado.


Varias particularidades específicas de Part que vale la pena mencionar.

El duplicado hereda Anchored, CanCollide y otras marcas de física del Render Template. Transform establece Anchored = true y CanCollide = false en el Render Template de forma predeterminada, para que las partículas emitidas no caigan por la gravedad (bien: Acceleration lo gestiona explícitamente) y no colisionen con el mundo (bien: las partículas son visuales, no físicas).

Si necesitas física diferente (un efecto de “metralla” donde las partículas sí deben colisionar y caer), establece esos valores directamente en el RenderTemplate. El plugin no anula tus ediciones en la plantilla: copia lo que haya allí en cada emisión.

Las partículas de malla cuestan más que las partículas Block. Un emisor basado en MeshPart es más costoso por partícula que un emisor con forma de Part regular: el motor tiene que duplicar los datos de la malla (o contar referencias al asset de malla existente), configurar su renderizado, etc. Para emisores de alta frecuencia, prefiere formas primitivas simples.

Las partículas basadas en SpecialMesh pueden superponer texturas. Un Part con un hijo SpecialMesh más un Decal te proporciona una malla personalizada texturizada, útil cuando tienes una forma personalizada con una textura personalizada que no encaja del todo con el modelo de “una textura por malla” de MeshPart.

La región de nacimiento de forma es local al Part. Rotar el Part rota la región de nacimiento con él (ya que Pos. Mode tiene Local como predeterminado). Un emisor giratorio con una región de nacimiento en forma de disco produce automáticamente un efecto de remolino.

Attachment es el siguiente tipo. Funciona de forma casi idéntica a Part en cuanto al movimiento, pero tiene una relación diferente con su padre: su posición es local al padre, lo que te proporciona emisión en el marco del padre de forma gratuita sin ninguna configuración de vinculación.