Smoke
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Rauch ist eine von mehreren Partikel-emittierenden Klassen.Wie andere Partikelstrahler seiner Art emittieren Rauchobjekte Partikel, wenn sie einem BasePart (z. B. einem Part ) oder einem Attachment innerhalb eines solchen BasePart zugewiesen werden.Im Vergleich zur ParticleEmitter -Klasse fehlt Rauch viele verschiedene Anpassungseigenschaften und spezielle Methoden, wie ParticleEmitter.Lifetime oder ParticleEmitter:Emit().Es ist nützlich, einen schnellen Spezialeffekt in einem Augenzwinkern zu erstellen; für detailliertere Arbeit ist es vorzuziehen, stattdessen einen ParticleEmitter zu verwenden.
Wenn Smoke.Enabled deaktiviert ist, emittieren Partikel, die von diesem Objekt ausgehen, weiterhin, bis ihre Lebensdauer abläuft.Wenn das Instance.Parent eines Rauchobjekts auf nil gesetzt wird (und/oder Instance:Destroy() bearbeitet), verschwinden alle Partikel sofort.Wenn dieser Effekt nicht gewünscht ist, versuche, das zugeordnete Objekt an einer weit entfernten Position auszublenden, dann entferne den Rauch nach einigen Sekunden mit Debris, um den letzten Partikeln eine Chance zum Aussterben zu geben.Dieses Objekt hat keine Methode ParticleEmitter:Clear(), aber es ist möglich, die Instance.Parent auf nil zu setzen und zurück zum genau gleichen Objekt für den gleichen Effekt.
Rauchpartikel werden nur aus dem Zentrum von BasePart emittiert, zu dem sie als Eltern zurückgehören.Die Elternschaft eines Rauchobjekts an ein Attachment ermöglicht es stattdessen, die Startposition der Partikel anzupassen.
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Zusammenfassung
Eigenschaften
Bestimmt die Farbe der Rauchpartikel.
Bestimmt, ob Rauchpartikel emittiert werden.
Bestimmt, wie undurchsichtige Rauchpartikel rendernwerden.
Bestimmt die Geschwindigkeit der Rauchpartikel.
Bestimmt die Größe der neu emittierten Rauchpartikel.
Wert zwischen 0-1, der die Geschwindigkeit des Partikeleffekts steuert.
Eigenschaften
Color
Die Farbeigenschaft bestimmt die Farbe aller von einem Smoke Objekt emittierten Partikel (sowohl bestehende als auch zukünftige Partikel).Es verhält sich ähnlich wie ParticleEmitter.Color, außer dass es nur eine Farbe ist und keine ColorSequence.Eine Farbe von Weiß mit einigen Smoke.Opacity macht für einen schönen Nebeneffekt, und eine sehr opake schwarze Farbe kann ein Fire Objekt schön ergänzen.
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Enabled
Die Eigenschaftenaktiviert bestimmt, wie ParticleEmitter.Enabled, ob Rauchpartikel emittiert werden.Alle Partikel, die bereits emittiert werden, werden weiterhin gerendert, bis ihre Lebensdauer abläuft.Diese Eigenschaft ist nützlich, um vorherige Raucheffekte auszublenden, bis sie später benötigt werden.Da Rauchpartikel zerstört werden, wenn das Objekt auf gesetzt wird, ist diese Eigenschaft nützlich, um es bestehenden Partikeln die Möglichkeit zu geben, auszulaufen, bevor das Feuerobjekt vollständig zerstört wird.Siehe die Funktion unten.
local Debris = game:GetService("Debris")
local part = script.Parent
function stopSmoke(smoke)
smoke.Enabled = false -- No more new particles
Debris:AddItem(smoke, 10) -- Remove the object after a delay (after existing particles have expired)
end
stopSmoke(part.Smoke)
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
LocalTransparencyModifier
Opacity
Opazität bestimmt die Opazität der Rauchpartikel.Es muss sich in dem Bereich [0, 1] befinden.Diese Eigenschaft funktioniert umgekehrt im Vergleich zu einem Teil's BasePart.Transparency oder PartikelEmitter's ParticleEmitter.Transparency : ein Wert von 0 ist vollständig unsichtbar, 1 ist vollständig sichtbar.
Die Textur, die Roblox für Smoke Partikel verwendet, ist teilweise durchsichtig, so dass das Festlegen dieser Eigenschaft auf 1 immer noch Transparenz in gerendeter Rauch gibt
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
RiseVelocity
RiseVelocity verhält sich ähnlich wie ParticleEmitter.Speed und Fire.Heat : Es bestimmt, wie schnell die Rauchpartikel während ihrer Lebensdauer bewegen.Es muss sich in dem Bereich [-25, 25] befinden.Negative Werte verursachen, dass Partikel in die Richtung der Unterseite (-Y) des Eltern BasePart emittieren.
Wenn du einen Smoke-Effekt verwendest, um Nebel zu erzeugen, lege diese Eigenschaft auf 0 fest.Für große Raucheffekte mache den Anstieg subtil (2 bis 8).Für Schornsteine und Rauchstapel sind höhere Werte angemessen.
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Size
Die Größe-Eigenschaft von Smoke bestimmt die Größe der neu emittierten Rauchpartikel.Im Gegensatz zu Smoke.Color ändert diese Eigenschaft nicht die Größe bestehender Partikel.Es muss sich in dem Bereich [0.1, 100] befinden.Im Gegensatz zu ParticleEmitter.Size ist diese Eigenschaft nur eine Zahl (keine NumberSequence ).Beachten Sie auch, dass die Größe der Partikel nicht 1 zu 1 mit Stollen ist; tatsächlich ist die Größe der Rauchpartikel mehr als doppelt so groß.Bei der größten Größe können Rauchpartikel breiter als 200 Stollen sein!
Code-Beispiele
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
TimeScale
Ein Wert zwischen 0-1 kontrolliert die Geschwindigkeit des Partikeleffekts.Bei 1 läuft es mit normaler Geschwindigkeit, bei 0.5 läuft es mit halber Geschwindigkeit und bei 0 wird die Zeit eingefroren.