ParticleEmitter
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
A ParticleEmitter jest specjalnym obiektem, który emituje dostosowywalne cząsteczki 2D w świat. Aby wydać i zeskanować cząsteczki, musi być związany z BasePart lub
Cząsteczki emitują automatycznie, gdy emitter jest Enabled z non-zerowym Rate , lub ręcznie, gdy metoda Class.ParticleEmitter:Emit()|Em
Domyślnie cząsteczki stoją przed kamerą, ale Orientation można zmodyfikować, aby zachować prędkość cząsteczek zamiast tego.
Podczas Lifetime cząsteczek mogą
Aby dowiedzieć się więcej o tworzeniu i dostosowywaniu emisji cząsteczek, zobacz Emisja cząsteczek.
Przykłady kodu
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
Podsumowanie
Właściwości
Określa globalną akcelerację wszystkich aktywnych cząsteczek, mierzonych w studsach na sekundę kwadratową.
Skaluje światło emitowane przez emittera, gdy ParticleEmitter.LightInfluence ma 0.
Określa kolor wszystkich aktywnych cząsteczek w ciągu ich życia.
Określa stopień, w którym cząsteczki będą tracić połowę swojej prędkości poprzez eksponencjalne upadki.
Określa twarz obiektu, z którego pochodzą cząsteczki.
Określa, czy cząsteczki emitowane są z emittera.
Określa, jak szybko animuje się tekstura flipbooka w klatkach na sekundę.
Nastąpi błąd, jeśli Texture jest niezgodny z książką przeglądarkową.
Określa układ tekstury flipbooka. Musi być None, Grid2x2, Grid4x4 lub Grid8x8.
Określa rodzaj animacjaflipbooka. Musi być Loop, OneShot, PingPong lub Random.
Określa, czy animacja zacznie się w losowym klatce, zamiast zawsze zaczynać od klatki zero.
Definiuje losowy zasięg wieków dla nowo emituowanych cząsteczek.
Określa, jak wiele kolorów kulek jest mieszanych z kolorami za nimi.
Określa, ile cząsteczek jest wpływanych przez światło środowiskowe.
Określa, czy cząsteczki ruchają rygorystycznie z części, z której są one emitowane.
Określa sposób orientacji cząsteczek.
Określa liczbę emituowanych cząsteczek na sekundę.
Określa zasięg prędkości kątowej emitowanych cząsteczek, mierzonych w stopniach na sekundę.
Określa zasięg rotacji w stopniach dla nowo emituowanych cząsteczek.
Ustawia kształt emitera na pudełko, kulę, cylinder lub dysk.
Określa, czy cząsteczki emitują tylko na zewnątrz, wewnątrz lub w obu kierunkach.
Influences emisja cząsteczek zylindra, dysk, kula i skrzynia form.
Ustawia emisję cząsteczek na emisję wolumenmiczną lub powierzchniową.
Określa rozmiar świata nad życia poszczególnych cząsteczek.
Określa losową gamę prędkości (od minimum do maksimum), przy której nowe cząsteczki będą emitować, mierzonych w studs/s.
Określa kąty, w których cząsteczki mogą być losowo emitowane, mierzonych w stopniach.
Umożliwia niespotywne skalowanie cząsteczek, kształtowanie zakrętu przez cały ich żywot.
Określa obraz renderowany na częściach.
Wartość pomiędzy 0 i 1, która kontroluje prędkość efektu cząsteczek.
Określa przejrzystość cząsteczek w ciągu ich życia.
Określa, ile prędkości rodzica dziedziczy prąd, gdy emituje.
Czy emituowane cząsteczki podążają za Workspace.GlobalWind wektorem.
Określa pozycję renderowania przodem/na tyłem cząsteczek; używany do kontroli tego, co cząsteczki renderują na górze/dół.
Metody
Usuwa wszystkie cząsteczki, które zostały emituje.
Emituje określoną liczbę cząsteczek.
Właściwości
Acceleration
Właściwość Przyśpieszenia określa, jak przyspieszenie Speed cząsteczek zmienia się przez całe ich życie. Jest ono zdefiniowane za pomocą Vector3 do określenia przyspieszenia
Przyśpieszenie spowalnia cząsteczki, jeśli wektor kieruje się w przeciwnym EmissionDirection w którym są one emitowane. W przeciwnym wypadku będzie je przyspieszać.
Color
Właściwość Kolor określa kolor wszystkich aktywnych cząsteczek przez ich życia. Kolor stosuje się do Texture podczas renderowania i używa tekstury alpha wraz z Transparency emitter
Zmiana tego właściwości wpływa na wszystkie cząsteczki emitowane przez emittera, zarówno obecne, jak i przyszłe.
Gdy właściwość używa gradientu ColorSequence, kolor prezentowany na piksel jest określany przez liniowe interpolowanie na sequencji używając koloru piksela i jego całkowitego czasu życia. Na przykład, jeśli piksel powstał 2 sekundy temu i ma 4-sekundowy czas życia, kolor będzie wynosił 50% w ciągu
Drag
Właściwość Przeciągnij określa stopień, w którym poszczególne cząsteczki będą tracić połowę swojej prędkości poprzez eksponencjalne upadk. Przeciąganie jest zastosowane poprzez skalowanie oczekiwanej prędkości z Speed i każ
EmissionDirection
Właściwość EmissionDirection określa twarz ( Enum.NormalId ) rodziciela obiektu, z którego pochodzą cząsteczki. Ujemny Speed oznacza, że cząsteczki emitują się w kierunku przeciwnym. 1> Class.ParticleEmitter.SpreadAngle|SpreadAngle1> dalej zmienia k
Jeśli dodasz ParticleEmitter do Attachment, który ma kierunek, możesz obrócić samą właściwość ( Attachment.Orientation ) zamiast używać tej właściwości.
Enabled
Właściwość Włączone określa, czy cząsteczki emitują się z emittera. Ustawiając to na false , możesz zapobiec pojawieniu się dalszych cząsteczek, ale istniejące cząsteczki pozostaną aktywne do czasu ich wygaszenia. Ta właściwość jest przydatna, gdy masz gotowy efekt cząsteczek, który chcesz utrzymać wyłączony, aż do czasu wysł
Jeśli chcesz usunąć wszystkie cząsteczki z wyłączonego emittera, wezwij Clear(). Następnie, jeśli chcesz, wezwij Emit() na emiterze, aby emitować i renderować cząsteczki.
FlipbookFramerate
Właściwość FlipbookFramerate określa, jak szybko animuje się tekstura flipbooka w klatkach na sekundę. Podobnie jak Lifetime, możesz ustawić minimalny i maksymalny zakres do losowania animacji ramy w klatce, z maksymalnie 30 ramami na sekundę.
FlipbookIncompatible
Nastąpi błąd, jeśli Texture jest niezgodny z flipbookiem. Flipbook musi mieć wymiary pikselowe 8 × 8, 16 × 16, 32 × 32, 64 × 64, 128 × 128, 256 × 256, 512 × 512 lub 1024 × 102
FlipbookLayout
Właściwość FlipbookLayout określa układ tekstury. Może to być dowolna wartość z Enum.ParticleFlipbookLayout zapisu:
- Żaden – Wyłącz funkcje flipbook i użyj tekstury jako jednej statycznej tekstury nad całym życiem cząsteczki.
- Grid2x2 – 2×2 ramy dla animacja4-ramkowej.
- Grid4x4 – 4×4 ramy dla animacja16-ramkowej.
- Grid8x8 – 8×8 ram dla animacja64-ramkowej.
FlipbookMode
Właściwość FlipbookMode określa typ animacjaflipbooka. Może to być dowolna wartość z Enum.ParticleFlipbookMode zapisu:
- Pętla – Grraj ciągle poprzez wszystkie klatki, zaczynając od pierwszej klatki po zakończeniu ostatniej.
- OneShot – Graj przez animację tylko raz w życiu cząsteczki. Ze zmianą tego ustawieniewartość FlipbookFramerate nie zostanie z
- PingPong – Graj od pierwszej do ostatniej ramy, a następnie odwróć od ostatniej do pierwszej, powtarzając to przez cały Lifetime czas trwania cząsteczki.
- Losowe – Odtwarza ramy w losowej kolejności, mieszając/nanie przejść między ramą a następną. To może być użyteczne dla tekstur cząsteczek organicznych o niskich klatkach klatki, takich jak gwiazdy powoli migoczące między subtelnie różnymi kształtami.
FlipbookStartRandom
Właściwość FlipbookStartRandom określa, czy każda cząstka zaczyna się w losowym ramie animacji zamiast zawsze zaczynać od pierwszej cząstki. Jeden przykład użycia to włączenie tej właściwości i ustawienie FlipbookFramerate na zero, co powoduje, że każda emituje się cząstka jest statycz
Lifetime
Właściwość Czas życia określa maksymalne i minimalne wieki dla nowo emituowanych cząsteczek. Czasy życia są zapisywane na bazie per-cząsteczowej, więc jeśli ta wartość zostanie zmieniona, istniejące cząsteczki będą aktywne do ich losowo wybranego wieku. Czas życia 0 zapobiega emisji cząsteczek w wszystko.
LightEmission
Właściwość LightEmission określa mieszanie kolorów Texture z kolorami za nimi. Wartość 0 używa trybu mieszania normalnego, a wartość 1 używa trybu mieszania dodawkowego. Gdy to jest zmienione, ta właściwość natychmiastowo wpływa na wszystkie cząsteczki posiadane przez emitera, zarówno obecne, jak i przyszłe.
Ta właściwość nie powinna być mylona z LightInfluence, który określa, jak cząsteczki są wpływane przez środowiskowe światło.
Ta właściwość powoduje, że cząsteczki nie zapalają środowisko wokół nich. Aby to osiągnąć, rozważaj użycie PointLight.
LightInfluence
Właściwość LightInfluence określa, ile światła środowiskowego wpływa na kolor pojedynczych cząsteczek, gdy renderują się. Musi być w zakresie 0–1; zachowanie wartości poza tym zakresem nie jest zdefiniowane. W 0, cząsteczki nie są wpływane przez światło wcale (zachowują pełną jasność); w 1, cząsteczki są w pełni wpły
Domyślnie wartość ta wynosi 1, jeśli wpisano przy użyciu narzędzi Studio. Jeśli wpisano przy użyciu Instance.new(), to wynosi 0.
LocalTransparencyModifier
LockedToPart
Właściwość LockedToPart określa, czy cząsteczki "przykleją" się do źródła emisji (Attachment lub BasePart, do którego jest przypisowany 1> Class.ParticleEmitter1>). Jeśli 4> true4>, aktywne cząsteczki poruszą się w kroku lock
Alternatywnie rozważ VelocityInheritance wartością 1, która może być bardziej odpowiednia dla niektórych efektów.
Orientation
Właściwość Oriенacja określa tryb orientacji do użycia dla geometrii cząsteczek emitera.
<tbody><tr><td><b>Kamera Przyjazdu</b></td><td>Standardowy bilboard z kamerą; domyślne zachowanie.</td></tr><tr><td><b>Świat kamery dziewczyna</b></td><td>Spójrz na kamerę, ale będąc obracającym się tylko na pionowym w górę świat <b>Y</b> osi.</td></tr><tr><td><b>Prędkość równoległa</b></td><td>Pozwala to na równoległe skierowanie się w kierunku ich ruchu.</td></tr><tr><td><b>PrędkośćPoziomowa</b></td><td>Pozwala to na skoordynowanie ruchu w kierunku przeciwnym do ich kierunku.</td></tr></tbody>
Orientacja | Zachowanie cząsteczek |
---|
Rate
Właściwość Stawka określa liczbę emituowanych cząsteczek na sekundę, gdy emiter jest Enabled . Jest to przeciwieństwo częstotliwości, co oznacza, że stawka 5 emituje cząsteczkę co 0,2 sekundy. Gdy to się zmienia, ta właściwość nie ma wpływu na jakiekolwiek aktywne cząsteczki.
RotSpeed
Właściwość RotSpeed określa losową gamę prędkości kątowej dla nowo emituowanych cząsteczek, mierzonych w stopniach na sekundę. Losowa prędkość kątowa jest wybierana przy emisji, więc zmiana tego parametru nie wpływa na aktywne cząsteczki. Ta właściwość, wraz z Rotation , wpływa na kąt kamerowania renderowanej g
Cząsteczki z bardzo dużymi prędkościami obrotowymi mogą wydawać się kręcić wolniej lub wszystko, ponieważ prędkość obrotu jest zsynchronizowana z prędkością renderowania oprogramowania. Na przykład, jeśli cząsteczki kręcą się dokładnie o 360 stopni, nie będzie widocznego zmiany rotacji.
Rotation
Właściwość Rotacja określa zasięg rotacji w stopniach dla nowo emituowanych cząsteczek, mierzonych w stopniach. Pozytywne wartości są w kierunku zegarowym. Ta właściwość jest ustawiona przez [0, 360] , aby zapewnić całkowicie losową rotację dla nowych cząsteczek. Class
Zmiany w tej wartości dotykają tylko nowych cząsteczek; istniejące cząsteczki utrzymują rotację, w której zostały pierwotnie emituowane.
Właściwość Kształt ustawia kształt emitera na pudełko, kulę, cylinder lub dysk. Po wykonaniu wyboru można dostosować właściwość ShapeStyle, Class.ParticleEmitter.ShapeInOut|ShapeInOut
ShapeInOut
Określa, czy cząsteczki emitują tylko na zewnątrz, wewnątrz lub w obu kierunkach. Dla przykładów wizualnych, zobacz tutaj .
ShapePartial
W zależności od wartości Shape ta właściwość wykonuje inną akcji:
Dla cylindrów określa proporcjonalny promień góry. Wartość 0 oznacza, że góra cylindru ma promień 0, co czyni go kształtem kuli. Wartość 1 oznacza, że cylinder nie ma deformacji.
Dla dysków określa proporcjonalny promień wewnętrzny. Wartość 0 oznacza, że dysk jest całkowicie zamknięty (krąg/ellipsa), a wartość 1 oznacza tylko emisję na zewnętrznym końcu felgi dyskowej. Werte pomiędzy 0 a 1 pochodzą z anulusa z określoną grubością.
Dla kulek określa kąt półkolisty, w którym emitują się cząsteczki. Wartość 1 oznacza, że cząsteczki emitują się z całej kuli; wartość 0,5 oznacza, że cząsteczki emitują się z półkolistego półkola; wartość 0 oznacza, że cząsteczki emitują się tylko z jednego punktu na północnym polu.
Dla przykładów wizualnych, zobacz tutaj.
ShapeStyle
Ustawia emisję cząsteczek na emisję wolumenmiczną lub na powierzchni. Dla przykładów wizualnych, zobacz tutaj .
Size
Właściwość rozmiar określa rozmiar świata wszystkich aktywnych cząsteczek na ich indywidualnym czasie życia. Ta właściwość представia wymiary kwadratowego Texture dla każdej cząsteczki. Jest to NumberSequence, który działa podobnie do 1> Class.Part
Rozmiar cząsteczki jest determinowany przez liniowe interpolowanie w tej kolejności używając wieku cząsteczki i jej całego życia. Na przykład, jeśli cząsteczka powstała 2 sekundy temu i ma 4-sekundowe życie, rozmiar będzie wynosić 2%. Dla każde
Speed
Właściwość prędkości określa losową gamę prędkości (od minimum do maksimum), przy której nowe cząsteczki będą emitować, mierzonych w studs na sekundę. Każda prędkość jest wybierana po emisji i stosuje się w EmissionDirection . Negaty wartości powodują, że cząsteczki podróżują w odwrotnym kierunku.
Uwaga, że zmiana Speed nie wpływa na aktywne cząsteczki i one utrzymują wszelką prędkość, którą już mają. Jednak Acceleration , Drag
SpreadAngle
Właściwość kąt rozprzestrzeni określa kąty losowe, w których można emituować cząsteczkę. Na przykład, jeśli EmissionDirection jest Góra (+ 2>Y2>), to 5>
Ustawienie jednego osi na 360 spowoduje, że cząsteczki będą emitować w wszystkich kierunkach w kręgu . Ustawienie obu na 360 spowoduje, że cząsteczki będą emitować w wszystkich kierunkach w kuli .
Squash
Umożliwia nieunięuaną skalę czasową dla cząsteczek, możliwość korektowania ich w czasie. Wartości większe niż 0 powodują, że cząsteczki zwiększają swoją poziomą poziomą poziomem poziomem poziomem poziomem poziomem poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom poziom pozi
Texture
Właściwość tekstury określa renderowaną obraz na cząsteczkach. Ten obraz jest wpływany przez Color, Transparency , 2> Class.ParticleEmitter.LightInfluence|LightEmission2> i
TimeScale
Wartość pomiędzy 0 i 1, która kontroluje prędkość efektu cząsteczek. W 1 wychodzi na normalną prędkość; w 0,5 wychodzi na półną prędkość; w 0 zamraża się na czas.
Transparency
Właściwość Przezroczystości określa przejrzystość wszystkich aktywnych cząsteczek w ich życiu. Działa podobnie do Size w tym, jak wpływa na cząsteczki w ciągu czasu. W kategoriach renderowania wartość 0 jest całkowicie widoczna (nieprzezroczysta) i wartość 1 jest całkowicie n
Przezroczystość kropki jest determinowana przez liniowe interpolowanie w tej kolejności używając wieku kropki i jej całego życia. Na przykład, jeśli kropka pojawiła się 2 sekundy temu i ma 4-sekundowe życie, to przejrzystość będzie wynosić 2%. D
VelocityInheritance
Właściwość VelocityInheritance określa, ile kawałków Velocity jest dziedziczonych przez cząsteczki, gdy są one emitowane. Wartość 0 oznacza, że żadna prędkość nie jest dziedziczona, a wartość 1 oznacza, że cząsteczka będzie miała dokładną tę samą prędkość co rodz
Gdy używany jest w połączeniu z Drag , emitter cząsteczek może wydawać się "wyrzucić" cząsteczki z ruchomej części.
WindAffectsDrag
Jeśli prawda, emituowane cząsteczki podążają za Workspace.GlobalWind wektorem. Ma to zastosowanie tylko w przypadku, gdy właściwość Drag jest większa niż 0.
ZOffset
Właściwość ZOffset określa pozycję renderowania przestrzeni przodu i tyłu w studsach bez zmiany rozmiarów na ekranie. Gdy to jest zmienione, ta właściwość wpływa na obecne i przyszłe właściwości. Uwaga, że ta właściwość akceptuje wartości frakcyjne; nie jest to GuiObject.ZIndex (liczba).
Pozytywne wartości przyciągają cząsteczki bliżej kamery, a negatywne wartości oddalają cząsteczki. Wystarczająco ujemne wartości mogą powodować, że cząsteczki renderują się wewnątrz lub za pośladką rodzicielską.
Metody
Clear
Methode Oczyść natychmiastowo usuwa wszystkie istniejące cząsteczki, które zostały emituowane przez ParticleEmitter poprzez jego naturalną emisję (nie zero Rate na emiterze) lub poprzez 1> Class.ParticleEmitter:Emit()1> .
Zwroty
Przykłady kodu
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end
Emit
Metoda Emituj spowoduje, że ParticleEmitter natychmiastowo uwalnia dany liczby cząsteczek.
Parametry
Liczba cząsteczek do emisji.
Zwroty
Przykłady kodu
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