ParticleEmitter

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Un ParticleEmitter es un objeto especial que emite partículas 2D personalizadas en el mundo. Para emitar y renderizar partículas, debe estar vinculado a un BasePart o un Attachment dentro de tal

Las partículas emiten automáticamente cuando el emisor es Enabled con un emisor no nulo Rate , o manualmente cuando se llama el método Class.ParticleEmitter:Emit()

Por defecto, las partículas se enfrentan a la cámara, pero la Orientation se puede modificar para respetar la velocidad de las partículas en su lugar.

Durante el Lifetime de las partículas

Para obtener más información sobre la creación y personalización de los emisores de partículas, see emisores de partículas .

Amostras de código

Creating a Particle Emitter from Scratch

local emitter = Instance.new("ParticleEmitter")
-- Number of particles = Rate * Lifetime
emitter.Rate = 5 -- Particles per second
emitter.Lifetime = NumberRange.new(1, 1) -- How long the particles should be alive (min, max)
emitter.Enabled = true
-- Visual properties
emitter.Texture = "rbxassetid://1266170131" -- A transparent image of a white ring
-- For Color, build a ColorSequence using ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- At t=0, White
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- At t=.5, Orange
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- At t=1, Red
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- At t=0, fully transparent
NumberSequenceKeypoint.new(0.1, 0), -- At t=.1, fully opaque
NumberSequenceKeypoint.new(0.5, 0.25), -- At t=.5, mostly opaque
NumberSequenceKeypoint.new(1, 1), -- At t=1, fully transparent
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- When particles overlap, multiply their color to be brighter
emitter.LightInfluence = 0 -- Don't be affected by world lighting
-- Speed properties
emitter.EmissionDirection = Enum.NormalId.Front -- Emit forwards
emitter.Speed = NumberRange.new(0, 0) -- Speed of zero
emitter.Drag = 0 -- Apply no drag to particle motion
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Don't inherit parent velocity
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Don't lock the particles to the parent
emitter.SpreadAngle = Vector2.new(0, 0) -- No spread angle on either axis
-- Simulation properties
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- At t=0, size of 0
NumberSequenceKeypoint.new(1, 10), -- At t=1, size of 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Render slightly behind the actual position
emitter.Rotation = NumberRange.new(0, 360) -- Start at random rotation
emitter.RotSpeed = NumberRange.new(0) -- Do not rotate during simulation
-- Create an attachment so particles emit from the exact same spot (concentric rings)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Move the attachment upwards a little
attachment.Parent = script.Parent
emitter.Parent = attachment

Resumo

Propriedades

  • Ler Parallel

    Determina la aceleración global de todas las partículas activas, medida en studs por segundo cuadrado.

  • Ler Parallel

    Escala la luz emitida por el emisor cuando ParticleEmitter.LightInfluence es 0.

  • Ler Parallel

    Determina el color de todas las partículas activas sobre sus individuales períodos de vida.

  • Ler Parallel

    Determina la tasa a la que se pierde la mitad de la velocidad de las partículas a través de la decadencia exponencial.

  • Determina la cara del objeto que emite partículas.

  • Ler Parallel

    Determina si las partículas emiten del emisor.

  • Determina la animación de la interfaz de usuario de Flipbook en marcos por segundo.

  • El mensaje de error para mostrar si el Texture es incompatible para un libro de flips.

  • Determina el diseño de la texturadel libro de cabecera. Debe ser Ninguno, Grid2x2, Grid4x4, o Grid8x8.

  • Determina el tipo de la animacionesdel libro de flips. Debe ser Loop, OneShot, PingPong o Random.

  • Determina si la animación comienza en un marco aleatorio elegido por partícula en lugar de comenzar siempre en el marco cero.

  • Ler Parallel

    Define un rango aleatorio de edades para las partículas recién emitidas.

  • Ler Parallel

    Determina el color de las partículas que se mezclan con los colores detrás de ellas.

  • Determina la cantidad de partículas que se ven afectadas por la luz ambiental.

  • Oculto
    Não replicado
    Ler Parallel
  • Ler Parallel

    Determina si las partículas se mueven con rigor con la parte de la que están emitiendo.

  • Especifica cómo orientar las partículas.

  • Ler Parallel

    Determina el número de partículas emitidas por segundo.

  • Ler Parallel

    Determina el rango de velocidades angulares de las partículas emitidas, medido en grados por segundo.

  • Ler Parallel

    Determina el rango de rotaciones en grados para las partículas recién emitidas.

  • Establece la forma del emisor a una caja delimitadora, esfera, cilindro o disco.

  • Establece si las partículas se emiten solo hacia afuera, hacia adentro o en ambas direcciones.

  • Ler Parallel

    Influye la emisión de partículas de los cilindros, discos, esferas y cajas.

  • Establece la emisión de partículas en cualquier emisión volumétrica o de la superficie.

  • Ler Parallel

    Determina el tamaño del mundo sobre la vida de las partículas individuales.

  • Ler Parallel

    Determina un rango aleatorio de velocidades (desde el mínimo al máximo) en las que se emiten nuevas partículas, medido en studs por segundo.

  • Ler Parallel

    Determina los ángulos en los que se pueden emitir aleatoriamente las partículas, medido en grados.

  • Permite escalado de partículas no uniforme, controlado por su vida útil.

  • Texture:ContentId
    Ler Parallel

    Determina la imagen renderizada en las partículas.

  • Ler Parallel

    Valor entre 0 y 1 que controla la velocidad del efecto de partículas.

  • Determina la transparencia de las partículas a lo largo de su vida útil individual.

  • Determina la cantidad de velocidad de los padres que se heredan por las partículas cuando se emiten.

  • Ler Parallel

    Si las partículas emitidas siguen el vértice Workspace.GlobalWind

  • Ler Parallel

    Determina la posición de renderizado de avance/retroceso de las partículas; Se usa para controlar qué partículas renderizan en la parte superior/ inferior.

Métodos

  • Clear():void

    Elimina todas las partículas que se hayan emitido.

  • Emit(particleCount : number):void

    Emite un número dado de partículas.

Propriedades

Acceleration

Ler Parallel

La propiedad Aceleración determina cómo el Speed de las partículas cambia a lo largo de su vida útil. Se define utilizando un Vector3 para determinar la aceleración en los ejes globales 1>X1> / 4>

La aceleración ralentizará las partículas si el vértice apunta en la dirección opuesta EmissionDirection en la que se emiten. De lo contrario, acelerará las partículas.

Brightness

Ler Parallel

Escala la luz emitida por el emisor cuando ParticleEmitter.LightInfluence es 0.

Ler Parallel

La propiedad Color determina el color de todas las partículas activas sobre su vida individual. El color se aplica a la Texture cuando se renderiza y se usa la textura alpha junto con la emisión y el uso de la textura del emisor. Si un emisor tiene un valor de Class.Part

Cambiar esta propiedad afecta a todas las partículas emitidas por el emisor, tanto las actuales como las futuras.

Cuando esta propiedad usa un gradiente ColorSequence, el color de un partículas se determina por interpolación lineal en la secuencia usando la edad de la partícula y su tiempo de vida total. Por ejemplo, si una partícula se generó hace 2 segundos y tiene un tiempo de vida de 4 segundos, el color será cualquier cosa que sea el 50% del camino a través del ColorSequence .

Drag

Ler Parallel

La propiedad Agarrar determina la tasa en segundos en que individualmente las partículas pierden la mitad de su velocidad a través de la decadencia exponencial. El agarrar se aplica escalando la velocidad esperada desde Speed y cualquier velocidad heredada de los padres desde Class.ParticleEmitter.VelocityInheritance|VelocityInheritance

EmissionDirection

Ler Parallel

La propiedad EmissionDirection determina la cara ( Enum.NormalId ) del objeto padre que emite partículas. Un negativo Speed significa que las partículas emiten en la dirección opuesta. 1> Class.ParticleEmitter.SpreadAngle|SpreadAngle1> más varía la dirección de emisión.

Si agrega un ParticleEmitter a un Attachment que tiene una dirección, puede rotar el propio accesorio ( Attachment.Orientation ) en lugar de usar esta propiedad.

Enabled

Ler Parallel

La propiedad Habilitado determina si se emiten partículas del emisor. Establecer esto en false detiene que se generen partículas más, pero cualquier partícula existente permanece activa hasta que caduque. Esta propiedad es útil cuando tienes un efecto de partículas pre-creado que quieres mantener desactivado hasta que lo necesites para emitir partículas.

Si desea eliminar todas las partículas de un emisor desactivado, llame a Clear() . Luego, si lo desea, llame a Emit() en el emisor para eliminar y renderizar partículas.

FlipbookFramerate

Ler Parallel

La propiedad FlipbookFramerate determina la rapidez con que se animan los gráficos del libro de imágenes en marcos por segundo. Como Lifetime, puedes establecer un rango mínimo y máximo para aleatorizar la tasa de fotogramas del libro de imágenes, con un máximo de 30 fotogramas por segundo.

FlipbookIncompatible

Ler Parallel

El mensaje de error para mostrar si el Texture es incompatible para un libro de flips. La textura del libro de flips debe ser de dimensiones de píxeles 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, o 1024×1024.

Ler Parallel

La propiedad FlipbookLayout determina el diseño de la textura. Puede ser cualquier valor del Enum.ParticleFlipbookLayout enum:

  • Ninguno – Desactivar las características de la galería de imágenes y usar la textura como una sola textura estática sobre la vida útil del partículas.
  • Grid2x2 – 2 marcos para una animacionesde 4 marcos.
  • Grid4x4 – 4 marcos para una animacionesde 16 marcos.
  • Grid8x8 – 8 marcos para una animacionesde 64 marcos.
Ler Parallel

La propiedad FlipbookMode determina el tipo de la animacionesde la revista. Puede ser cualquier valor del Enum.ParticleFlipbookMode enum:

  • Loop – Juega continuamente a través de todos los marcos, comenzando con el primer marco después de jugar el último.
  • OneShot – Juega a través de la animacionessolo una vez a lo largo de la vida de la partícula. Con esta configuración, la propiedad FlipbookFramerate no se aplica; en
  • PingPong – Juega desde el marco primero hasta el último, luego al revés desde el último al primero, repitiendo a lo largo del Lifetime de la partícula.
  • Aleatorio – Juega los marcos en un orden aleatorio, mezclando / desapariciendo uno de los marcos hasta el siguiente. Esto puede ser útil para texturas de partículas orgánicas en marcos de baja tasa de fotogramas, como las estrellas brillan lentamente entre formas sutilmente diferentes.

FlipbookStartRandom

Ler Parallel

La propiedad FlipbookStartRandom determina si cada partícula comienza en un marco aleatorio de la animación en lugar de comenzar siempre en el marco primero. Un caso de uso es habilitar esta propiedad y también establecer FlipbookFramerate a cero, lo que hace que cada partícula emita sea un marco estático elegido aleatoriamente de la textura del libro de páginas.

Lifetime

Ler Parallel

La propiedad de por vida define la edad máxima y mínima para las partículas recién emitidas. Las vidas de por vida se almacenan en una base por partícula, por lo que si se cambia este valor, las partículas existentes se mantendrán activas hasta que finalice su vida aleatoria. Una vida de 0 eliminará las partículas de emisión.

LightEmission

Ler Parallel

La propiedad Emisión de Luz determina la mezcla de los colores de Texture con los colores detrás de ellos. Un valor de 0 usa el modo de mezcla normal mientras que un valor de 1 usa el modo de mezcla aditiva. Cuando se cambia, esta propiedad afecta instantáneamente a todas las partículas propiedad del emisor, tanto las actuales como las futuras.

Esta propiedad no debe confundirse con LightInfluence que determina cómo las partículas están afectadas por la luz ambiental.

Esta propiedad no hace que las partículas brillen el entorno. Para lograr eso, considere usar un PointLight .

LightInfluence

Ler Parallel

La propiedad LightInfluence determina la cantidad de luz ambiental que afecta el color de las partículas individuales cuando se Renderizar. Debe estar en el rango de 0-1; el comportamiento de los valores fuera de este rango no está definido. En 0, las partículas no se ven afectadas por la luz (solo con brillo completo); en 1, las partículas están completamente afectadas por la luz (en la oscuridad completa, las partículas se mantienen completamente negr

Por defecto, este valor es 1 si se insertó con herramientas de Studio. Si se insertó usando Instance.new() , es 0.

LocalTransparencyModifier

Oculto
Não replicado
Ler Parallel

LockedToPart

Ler Parallel

La propiedad LockedToPart determina si las partículas "se pegan" a la fuente de emisión (la Attachment o BasePart a la que el 1> Class.ParticleEmitter1> está asociado). Si 4> true4> , las partículas activas se moverán en paso de bloqueo si el objeto padre se mueve.

Alternativamente, considere utilizar la propiedad VelocityInheritance con un valor de 1 que puede ser más apropiado para algunos efectos.

Ler Parallel

La propiedad Orientación determina qué modo de orientación usar para la geometría de partículas de un emisor.


<tbody>
<tr>
<td><b>Cámara de Fazamiento</b></td>
<td>Cartelera de cara a la cámara estándar; comportamiento predeterminado.</td>
</tr>
<tr>
<td><b>FacingCameraWorldUp</b></td>
<td>Mirando hacia la cámara, pero girando solo en el eje vertical hacia arriba.</td>
</tr>
<tr>
<td><b>Velocidad Paralela</b></td>
<td>Alineado paralelo a su dirección de movimiento.</td>
</tr>
<tr>
<td><b>VelocidadPerpendicular</b></td>
<td>Alineado perpendicular a su movimiento de dirección.</td>
</tr>
</tbody>
OrientaciónComportamiento de partículas

Rate

Ler Parallel

La propiedad Tasa determina la cantidad de partículas emitidas por segundo mientras el emisor está Enabled . Es el inverso de la frecuencia, lo que significa que una tasa de 5 emite una partícula cada 0.2 segundos. Cuando se cambia, esta propiedad no afecta a ninguna partícula activa.

RotSpeed

Ler Parallel

La propiedad RotSpeed determina un rango aleatorio de velocidades de ángulo para las partículas recién emitidas, medido en grados por segundo. Una velocidad de ángulo aleatoria se elige al emitir, por lo que cambiar esta propiedad no afecta a las partículas activas. Esta propiedad, junto con Rotation , afecta el ángulo de la imagen de rendimiento de la parte.

Las partículas con velocidades de rotación muy rápidas pueden parecer girar más lentas o no en todos/todas, ya que la velocidad de rotación se sincroniza con la velocidad de renderizado del software. Por ejemplo, si las partículas giran exactamente a 360 grados cada marco, no habrá cambio aparente en la rotación.

Rotation

Ler Parallel

La propiedad Rotación determina el rango de rotaciones en grados para las partículas recién emitidas, medido en grados. Los valores positivos están en la dirección de la hora. Esta propiedad se establece comúnmente en [0, 360] para proporcionar una rotación completamente aleatoria a las nuevas partículas. RotSpeed también afecta la

Los cambios en este valor solo afectan a las nuevas partículas; las partículas existentes mantienen la rotación en la que se emiten originalmente.

Ler Parallel

La propiedad Shape establece la forma del emisor a una caja delimitadora, una esfera, un cilindro o una discapacidad. Después de hacer una selección, puede ajustar la forma del ShapeStyle , ShapeInOut

Ler Parallel

Establece si las partículas se emiten hacia afuera, hacia adentro o en ambas direcciones. Para obtener ejemplos visuales, see aquí .

ShapePartial

Ler Parallel

Dependiendo del valor de Shape, esta propiedad realiza una acción diferente:

  • Para los cilindros, especifica la proporción de radio superior. Un valor de 0 significa que la parte superior del cilindro tiene un radio cero, lo que lo hace un cono. Un valor de 1 significa que el cilindro no tiene deformación.

  • Para los discos, especifica la proporción del radio interior. Un valor de 0 significa que el disco está completamente cerrado (círculo/elíptida), mientras que un valor de 1 significa que la emisión solo ocurre en el borde más exterior del disco. Los valores entre 0 y 1 se emiten desde un anillo con una cierta longitud.

  • Para las esferas, especifica el ángulo hemisférico en el que se emiten las partículas. Un valor de 1 significa que las partículas emiten desde toda la esfera; un valor de 0,5 significa que las partículas emiten desde una mitad de dome; un valor de 0 significa que solo se emiten partículas desde un punto único en el polo norte.

Para ejemplos visuales, see aquí .

Ler Parallel

Establece la emisión de partículas a volumen o emisión de superficie. Para obtener ejemplos visuales, see aquí .

Ler Parallel

La propiedad Tamaño determina el tamaño del mundo de todas las partículas activas a lo largo de su vida útil individual. Esta propiedad representa las dimensiones del cuadrado Texture para cada partícula. Es un NumberSequence que funciona similarmente a 1> Class.ParticleEmitter.Transparency|Transparencia1> .

El tamaño de la partícula se determina por la interpolación lineal utilizando la edad de la partícula y su tiempo de vida total. Por ejemplo, si se generó una partícula hace 2 segundos y tiene un tiempo de vida de 4 segundos, el tamaño se elegirá según sea el 50% del camino a través del NumberSequence . Para cual

Ler Parallel

La propiedad Velocidad determina un rango aleatorio de velocidades (mínimo a máximo) en las que se emiten nuevas partículas, medido en studs por segundo. Cada velocidad de partículas se elige al emitir y se aplica en el EmissionDirection . Los valores negativos hacen que las partículas viajen en reversa.

Nota que cambiar Speed no afecta a las partículas activas y mantienen la velocidad que ya tienen. Sin embargo, Acceleration , Drag y 1> Class.ParticleEmitter.Velocity

SpreadAngle

Ler Parallel

La propiedad Ángulo de distribución determina los ángulos aleatorios en los que se puede emitir una partícula. Por ejemplo, si la EmissionDirection está en la parte superior (+ Y ), esta 1> Datatype.Vector21> describe el tamaño de

Establecer un eje a 360 causará que las partículas emitan en todas las direcciones en un circulo . Establecer ambos a 360 causará que las partículas emitan en todas las direcciones en una esfera .

Ler Parallel

Permite la escala no uniforme de las partículas, la curva controlada durante toda su vida útil. Los valores mayores que 0 hacen que las partículas se encogyan horizontalmente y se expandan verticalmente, mientras que los valores menores que 0 hacen que las partículas se expandan horizontalmente y se encogen verticalmente.

Texture

ContentId
Ler Parallel

La propiedad Textura determina la imagen renderizada en las partículas. Esta imagen se ve afectada por Color, Transparency , 1> Class.ParticleEmitter.LightInfluence|LightInfluence1> y 4> Class

TimeScale

Ler Parallel

Un valor entre 0 y 1 que controla la velocidad del efecto de partículas. En 1, se ejecuta a una velocidad normal; en 0.5 se ejecuta a mitad de velocidad; en 0 se congela en el tiempo.

Transparency

Ler Parallel

La propiedad Transparencia determina la transparencia de todas las partículas activas a lo largo de su vida útil individual. Funciona similar a Size en cómo afecta a las partículas a lo largo del tiempo. En términos de renderizado, un valor de 0 es completamente visible (opaco) y un valor de 1 es completamente invisible (no renderizado en todos/todas).

La transparencia de una partícula se determina por la interpolación lineal de esta secuencia utilizando la edad de la partícula y su tiempo de vida total. Por ejemplo, si una partícula se generó hace 2 segundos y tiene un tiempo de vida de 4 segundos, la transparencia será la que sea el 50% del camino a través de la Datatype.NumberSequ

VelocityInheritance

Ler Parallel

La propiedad VelocityInheritance determina la cantidad de la parte padre Velocity que se hereda por las partículas cuando se emiten. Un valor de 0 significa que no se hereda ninguna velocidad, mientras que un valor de 1 significa que la partícula tendrá la velocidad exacta que la padre BasePart tiene.

Cuando se usa en conjunción con Drag, un emisor de partículas puede parecer "shed" partículas de una parte en movimiento.

WindAffectsDrag

Ler Parallel

Si es así, las partículas emitidas siguen el fuerza vectorialWorkspace.GlobalWind . Solo se aplica si la propiedad Drag es mayor que 0.

ZOffset

Ler Parallel

La propiedad ZOffset determina la posición de renderizado de avance-retroceso de las partículas, en studs, sin cambiar su tamaño en la pantalla. Cuando se cambia, esta propiedad afecta tanto a las partículas actuales como futuras. Nota que esta propiedad acepta valores fraccionales; no es como GuiObject.ZIndex (un número entero).

Los valores positivos hacen que las partículas se acerquen a la cámara y los valores negativos hacen que las partículas se alejen. Los valores negativos lo suficiente pueden hacer que las partículas se renderen dentro o detrás de la parte padre.

Métodos

Clear

void

El método Borrar limpia instantáneamente todas las partículas existentes que hayan sido emitidas por el ParticleEmitter a través de su emisión natural (no cero Rate en un 1> Class.ParticleEmitter.Enabled|Enabled1> emitter) o a través de 4> Class.ParticleEmitter:Emit


Devolução

void

Amostras de código

ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

Emit

void

El método emitir causará que el ParticleEmitter emita instantáneamente el número de partículas dadas.

Parâmetros

particleCount: number

El número de partículas para emitir.

Valor Padrão: 16

Devolução

void

Amostras de código

Emit Particles Over Distance

local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = false
ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

Eventos