ParticleEmitter
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un ParticleEmitter è un oggetto speciale che emette 2D particelle personalizzate nel Mondo. Per emettere e rendere le parti, deve essere parented a BasePart o un Attachment all'interno
Le particelle emettono automaticamente quando l'emittente è Enabled con un non zero Rate , o manualmente quando il metodo Class.ParticleEmitter:Emit()|Em
Per impostazione predefinita, le partiettule si trovano di fronte alla Telecamera, ma la Orientation può essere modificata per rispettare la velocità delle particelle invece.
Durante il Lifetime delle particelle,
Per saperne di più sulla creazione e personalizzazione degli emitteri di particelle, vedi emitteri di particelle .
Campioni di codice
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
Sommario
Proprietà
Determina l'accelerazione globale di tutte le parti attive, misurate in studs per secondo quadrato.
Scala la luce emessa dall'emittente quando ParticleEmitter.LightInfluence è 0.
Determina il colore di tutte le parti attive per il loro tempo di vita individuale.
Determina il tasso con cui le parti perderanno la metà della loro velocità attraverso il decadimento esponenziale.
Determina il volto dell'oggetto che emette le parti.
Determina se le parti emettono dall'emittente.
Determina la velocità con cui la texture del flipbook si anima in frame per secondo.
Il messaggio di errore a visualizzare se il Texture è incompatibile con un flipbook.
Determina la disposizione della Strutturadel flipbook. Deve essere None, Grid2x2, Grid4x4, o Grid8x8.
Determina il tipo di animazionidel libro diapositiva. Deve essere Loop, OneShot, PingPong o Random.
Determina se l'animazione inizia in un frame casuale scelto per partecipare invece di iniziare sempre al frame zero.
Define un intervallo casuale di età per le nuove particelle emesse.
Determina il modo in cui i colori delle parti sono mescolati con i colori dietro di loro.
Determina il modo in cui le parti sono influenzate dalla luce ambientale.
Determina se le parti si muovono in modo rigido con la parte che stanno emettendo.
Specifica come orientare le parti.
Determina il numero di particelle emesse al secondo.
Determina la gamma di velocità angolari delle particelle emesse, misurate in gradi al secondo.
Determina la gamma di rotazioni in gradi per le nuove particelle emesse.
Imposta la forma dell'emittente su una Quadro di selezione, una sfera, un cilindro o un disco.
Imposta se le parti emettono solo in avanti, in avanti solo, o in entrambe le direzioni.
Influenza l' emissione di particelle dal cilindro, dal disco, dalla sfera e dalla scatola.
Imposta l'emissione di particelle su volume o superficie.
Determina la dimensione del mondo per i singoli particolari.
Determina una gamma di velocità casuali (minimo a massimo) in cui nuove particelle emetteranno, misurate in studs al secondo.
Determina gli angoli in cui le parti possono essere emesse casualmente, misurati in gradi.
Consente la non uniforme escaling delle particelle, curva controllata per tutta la loro vita.
Determina l'immagine renduta sulle parti.
Valore tra 0 e 1 che controlla la velocità dell'effetto di partecipazione.
Determina la trasparenza delle parti per il loro tempo di vita individuale.
Determina quanta della velocità della parte parentè ereditata dalle parti quando vengono emesse.
Indipendentemente dal fatto che le particelle emesse seguano il Workspace.GlobalWind vettoriale.
Determina la posizione di rendering delle parti avanti e indietro; usato per controllare cosa le parti rendering sul top / bottom.
Metodi
Rimuove tutte le parti che sono state emesse.
Emette un determinato numero di particelle.
Proprietà
Acceleration
La Accelerazione proprietà determina il modo in cui la Speed delle particelle cambia nel corso della loro vita. È definito utilizzando un Vector3 per determinare l'accelerazione sull'asse globale 2>X2> / 5>
L'accelerazione rallenterà le particelle se il veicolo punta nel EmissionDirection in cui sono emesse. Altrimenti, li velocizzerà.
Color
La proprietà Colore determinano il colore di tutte le parti attive sopra il loro tempo di vita individuale. Il colore si applica al Texture quando si rende e utilizza il colore alpha insieme con la trasparenza Transparency .
Cambiare questa proprietà influenza tutte le particelle emesse dall'emittente, sia attuali che future.
Quando questa proprietà usa un gradiente ColorSequence, il colore presente di una particella viene determinato interpolando lineolarmente sulla sequenza usando l'età della parte e il suo tempo di vita totale. Ad esempio, se una parte è stata generata 2 secondi ago e ha una vita di 4 secondi, il colore sarà qualsiasi sia il 50% del modo attraverso il ColorSequence .
Drag
La proprietà Trascina determinia il tasso in secondi in cui le singole particelle perdono la metà della loro velocità tramite decadimento esponenziale. La trascina viene applicata scalando la velocità prevista da Speed e qualsiasi velocità ereditata dal padre da VelocityInheritance . Impost
EmissionDirection
La proprietà EmissionDirection determinare la faccia ( Enum.NormalId ) dell'oggetto padre che emette le parti. Un negativo Speed significa che le parti emettono nella direzione opposta. 1> Class.ParticleEmitter.SpreadAngle|SpreadAngle1> ulteriormente varia la direzione di emissione.
Se aggiungi un ParticleEmitter a un Attachment che ha una direzione, puoi ruotare l'accessorio stesso ( Attachment.Orientation ) invece di utilizzare questa Proprietà.
Enabled
La proprietà Abilitata determinare se le parti emettono dall'emittente. Impostando questo su false impedisce ulteriori parti di apparire, ma qualsiasi parte esistente rimane attivo fino a quando non esse espirare. Questa proprietà è utile quando hai un effetto di parte pre-fatto che vuoi rimanere disabilitato finché non ne hai bisogno per emettere parti.
Se vuoi eliminare tutte le parti da un emittente disabilitato, chiama Clear() . Quindi, se lo desideri, chiama Emit() sull'emittente per emettere e rendere le parti.
FlipbookFramerate
La proprietà FlipbookFramerate determina la velocità con cui la texture del flipbook si animisce in frame per secondo. Come Lifetime, puoi impostare un intervallo minimo e massimo per casualizzare la framerate del flashbook, con un massimo di 30 frame per secondo.
FlipbookIncompatible
Il messaggio di errore per visualizzare se il Texture è incompatibile con un flipbook. La texture del flipbook deve essere di pixel dimensioni 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, o 1024×1024.
FlipbookLayout
La proprietà FlipbookLayout determina la disposizione della Struttura. Può essere qualsiasi valore dell'Enum.ParticleFlipbookLayout枚:
- Nessuno – Disabilita le funzionalità del libro elettronico e usa la texture come singola texture statica sulla vita del particolare.
- Grid2x2 – 2×2 frame per un'animazionia 4 frame.
- Grid4x4 – Quadri 4×4 per un'animazionia 16 frame.
- Grid8x8 – 8×8 frame per un'animazionia 64 frame.
FlipbookMode
La proprietà FlipbookMode determinare il tipo di animazionidel flipbook. Può essere qualsiasi valore dell'Enum.ParticleFlipbookMode enum:
- Loop – Gioca continuamente attraverso tutti i frame, facendo clic di nuovo sul primo frame dopo aver giocato l'ultimo.
- OneShot – Gioca attraverso l'animazione solo una volta nel corso della vita di una partícula. Con questa Configurazione, la proprietà FlipbookFramerate non si applica; invece
- PingPong – Gioca dal primo alultimo frame, quindi in reverse dal ultimo al primo, ripetendo per tutto il Lifetime della parte.
- Casuale – Gioca i frame in un ordine casuale, mescolando / sovrapponendo da un frame all'altro. Questo può essere utile per le texture di particelle organiche a bassa velocità di fotoritocco, come le stelle lentamente scintillanti tra forme subliminali diverse.
FlipbookStartRandom
La proprietà FlipbookStartRandom determina se ogni parte inizia in un frame casuale dell'animazione invece di iniziare sempre al primo frame. Un caso d'uso è abilitare questa proprietà e anche impostare FlipbookFramerate su zero, causando ogni parte emessa a essere un frame statico scelta casualmente dalla Strutturadel flipbook.
Lifetime
La proprietà Lifetime definisce l'età massima e minima per le particelle appena emesse. GliLifetimes vengono memorizzati su una base per parte, quindi se questo valore viene cambiato, le parti esistenti rimarranno attive fino alla loro scadenza casuale. UnLifetimes 0 impedirà alle parti di emettere in tutti/tuttecaso.
LightEmission
La proprietà LightEmission determina il mescolamento dei colori Texture con i colori dietro di loro. Un valore di 0 usa il metodo di mescolamento normale mentre un valore di 1 usa il metodo di mescolamento additivo. Quando cambia, questa proprietà influisce istantaneamente su tutte le parti di proprietà dell'emittente, sia attuali che future.
Questa proprietà non dovrebbe essere confusa con LightInfluence che determina il modo in cui le particelle sono influenzate dalla luce ambientale.
Questa proprietà non fa in modo che le particelle luccano l'ambiente intorno a loro. Per raggiungerlo, considera l'uso di un PointLight .
LightInfluence
La proprietà LightInfluence determina quanto la luce ambientale influenza il colore delle singole particelle quando vengono Renderizzare. Deve essere nella gamma di 0-1; il comportamento dei valori al di fuori di questa gamma non sono definiti. Alla 0, le parti non sono influenzate dalla luce affatto (rimangono completamente chiare); alla 1, le parti sono completamente influenzate dalla luce (in completa oscurità, le parti saranno nere).
Per impostazione predefinita, questo valore è 1 se inserito con gli strumenti di Studio. Se inserito usando Instance.new(), è 0.
LocalTransparencyModifier
LockedToPart
La proprietà LockedToPart determinare se le particelle "stick" alla fonte di emissione (il Attachment o il BasePart a cui il 1> Class.ParticleEmitter1> è parented). Se 4> true4> , le parti attive si muoveranno in step di blocco se l'oggetto padre si muove.
In alternativa, considera l'uso della proprietà VelocityInheritance con un valore di 1 che potrebbe essere più appropriato per alcuni effetti.
Orientation
La Orientazione proprietà determina quale modo di orientamento usare per la geometria delle particelle di un emittente.
<tbody><tr><td><b>FacingCamera</b></td><td>Quadruplo di cartello con faccia di telecamera standard; comportamento predefinito.</td></tr><tr><td><b>FacingCameraWorldUp</b></td><td>Ottenere lo sguardo dalla Telecamera, ma ruotare solo sull'asse verticale in alto <b>Y</b>.</td></tr><tr><td><b>Velocità parallela</b></td><td>Allineato parallelo alla loro direzione di movimento.</td></tr><tr><td><b>Velocità perpendicolare</b></td><td>Allineato perpendicolare alla loro direzione di movimento.</td></tr></tbody>
Orientamento | Comportamento delle parti |
---|
Rate
La proprietà Tasso determinare il numero di particelle emesse per secondo mentre l'emittente è Enabled . È il contrario della frequenza, il che significa che un tasso di 5 emette una parte ogni 0,2 secondi. Quando cambia, questa proprietà non ha alcun effetto su qualsiasi parte attiva.
RotSpeed
La proprietà RotSpeed determinata un'angolare gamma di velocità casuali per le nuove particelle emesse, misurate in gradi al secondo. Una velocità angolare casuale viene scelta all'emissione, quindi la modifica di questa proprietà non influisce sulle parti attive. Questa Proprietà, insieme a Rotation , influisce sull'angolo della parte rendersi.
Le particelle con velocità angolare molto alta possono sembrare in rotazione più lenta o non in tutti/tutte, poiché l'angolo di rotazione è sincronizzato con la velocità di rendering del software. Ad esempio, se le parti ruotano esattamente a 360 gradi ogni frame, non ci sarà alcun cambiamento di rotazione.
Rotation
La proprietà Rotazione determinare la gamma di rotazioni in gradi per le nuove particelle emesse, misurate in gradi. I valori positivi sono nella direzione oraria. Questa proprietà è comunemente impostata su [0, 360] per fornire una rotazione completamente casuale a nuove parti. RotSpeed influisce anche sulla rotazione di una parte durante la sua vita.
Le modifiche a questo valore riguardano solo le nuove particelle; le parti esistenti mantengono la rotazione a cui sono state emesse originariamente.
La forma proprietà imposta la forma dell'emittente in una Quadro di selezione, una sfera, un cilindro o un disco. Dopo aver fatto una selezione, puoi regolare la ShapeStyle , ShapeInOut e
ShapeInOut
Imposta se le parti emettono solo in avanti, in avanti solo, o in entrambe le direzioni. Per esempi visivi, vedi qui .
ShapePartial
A seconda del valore Shape, questa proprietà esegue un'azione diversa:
Per i cilindri, specifica la proporzione di raggio superiore. Un valore di 0 significa che l'intero top del cilindro ha un raggio zero, rendendolo un cono. Un valore di 1 significa che il cilindro non ha deformazioni.
Per i dischi, specifica il raggio interno proporzionale. Un valore di 0 significa che il disco è completamente chiuso (cerchio/ellisse), mentre un valore di 1 significa che l'emissione avviene solo sulla cima esterna del disco. I valori tra 0 e 1 vengono emessi da un annello con una certa dimensione.
Per le sfere, specifica l'angolo emisferico in cui le particelle emettono. Un valore di 1 significa che le particelle emettono dall'intera sfida; un valore di 0,5 significa che le particelle emettono da un cuneo di mezza; un valore di 0 significa che le parti emettono solo da un punto soltanto al polo nord.
For visual examples, see here .
ShapeStyle
Imposta l'emissione di particelle su volume o solo sulla superficie. Per esempi visivi, vedi qui .
Size
La proprietà Dimensione determinare la dimensione del mondo di tutte le parti attive durante il loro tempo di vita individuale. Questa proprietà rappresenta le dimensioni del quadrato Texture per ciascuna parte. È un NumberSequence che funziona in modo simile a 1> Class.ParticleEmitter.Transparency|Transparency1> .
La dimensione presente di una parte è determinata dall'interpolazione lineare su questa sequenza utilizzando l'età della parte e il suo tempo di vita totale. Ad esempio, se una parte è stata generata 2 secondi fa e ha una vita di 4 secondi, la dimensione sarà qualsiasi sia il 50% del modo attraverso il Datatype.NumberSequ
Speed
La Velocità proprietà determinata un intervallo di velocità casuale (minimo a massimo) in cui nuove particelle emetteranno, misurate in studs per secondo. Ogni velocità di una particella viene scelta durante l'emissione e si applica nel EmissionDirection . I valori negativi causano le particelle a viaggiare in modo inversario.
Nota che la modifica di Speed non influisce sui particolari attivi e questi mantengono la velocità che hanno già. Tuttavia, Acceleration , Drag e 1> Class.ParticleEmitter.Velocity
SpreadAngle
La proprietà SpreadAngle determinia gli angoli casuali in cui una particella può essere emessa. Ad esempio, se la EmissionDirection è Top (+ 1>Y1>), questa 4> Datatype.Vector24> descrive la dimensione dell'
Impostare un asse su 360 farà in modo che le particelle emettano in tutte le direzioni in un cerchio . Impostare entrambi su 360 farà in modo che le particelle emettano in tutte le direzioni in una sfera .
Squash
Consente l'aggiustamento non uniforme delle particelle, controllato con curva, nel corso della loro vita. I valori più grandi di 0 fanno si che le parti si riducono orizzontalmente e crescono verticalmente, mentre i valori più piccoli fanno si che le parti si riducono orizzontalmente e crescono verticalmente.
Texture
La proprietà Texture determinano il modo in cui viene visualizzata l'immagine sui particolari. Questa immagine è influenzata da Color, Transparency, 2> Class.ParticleEmitter.LightInfluence|LightEmission2> e <
TimeScale
Un valore tra 0 e 1 che controlla la velocità dell'effetto di partecipazione. A 1, esegue la velocità normale; A 0,5 esegue la velocità della metà; A 0, congela nel tempo.
Transparency
La trasparenza proprietà determina la trasparenza di tutte le parti attive nel loro tempo di vita individuale. Funziona in modo simile a Size in quanto influisce sulle parti nel tempo. In termini di rendering, un valore di 0 è completamente visibile (opaco) e un valore di 1 è completamente invisibile (non renderizzato tutti/tutte).
La trasparenza di una particella è determinata dall'interpolazione lineare su questa sequenza utilizzando l'età della parte e il suo tempo di vita totale. Ad esempio, se una parte è stata generata 2 secondi fa e ha una vita di 4 secondi, la trasparenza sarà qualsiasi sia il 50% del modo attraverso il Datatype.NumberSequ
VelocityInheritance
La proprietà VelocityInheritance determina quanto della velocità della parte padre Velocity è ereditata dalle particelle quando vengono emesse. Un valore di 0 significa che nessuna velocità viene ereditata, mentre un valore di 1 significa che la particella avrà la velocità esattamente della parte padre BasePart .
Quando viene utilizzato in combinazione con Drag, un emittente di particelle può apparire per "shed" le parti dalle parti in movimento.
WindAffectsDrag
Se vero, le parti emesse seguono il Workspace.GlobalWind vettoriale. Si applica solo se la proprietà Drag è maggiore di 0.
ZOffset
La proprietà ZOffset determinare la posizione di rendering in avanti-torna rendere le parti, in studs, senza cambiare la loro dimensione sullo schermo. Quando cambia, questa proprietà influenza sia le parti attuali che future. Nota che questa proprietà accetta valori frazionali; non è come GuiObject.ZIndex (un Integro).
I valori positivi spostano le parti più vicino alla fotocamera e i valori negativi spostano le parti lontano. I valori negativi sufficientemente possono causare parti a rendere all'interno o dietro la parte padre.
Metodi
Clear
Il metodo Svuota rimuove istantaneamente tutte le particelle esistenti che sono state emesse dal ParticleEmitter attraverso la sua emissione naturale (non zero Rate su un emittente 1> Class.ParticleEmitter.Enabled|Enabled1> o tramite 4> Class.ParticleEmitter:Emit()
Restituzioni
Campioni di codice
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end
Emit
Il metodo Emit farà in modo che il ParticleEmitter emetta istantaneamente il numero di particelle specificato.
Parametri
Il numero di particelle da emettere.
Restituzioni
Campioni di codice
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
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end