ParticleEmitter
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Bir ParticleEmitter özel bir nesne, dünyaya özelleştirilebilir 2D parçaları emittir. To emitt ve render parçalar, bir BasePart ve
Particiler, emitter ile Enabled , veya manuel olarak Rate ile çağrıldığında otomatik olarak emittir. ile Class.Part
Varsayılan olarak, parçacıklar kamerayla karşılaşır, ancak Orientation değiştirilebilir ve parçacık hızını yerine getirerek sayılabilir.
Parçacıkların Class.ParticleEmitter.Lifetime|Lifetime</
Parçacık emitterlerinin oluşturulması ve özelleştirilmesi hakkında daha fazla bilgi için, Parçacık Emitterleri bakın.
Kod Örnekleri
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
Özet
Özellikler
Tüm aktif parçaların global eksen hızlandırmasını, her saniye dakikada bir olarak ölçen birimlerle belirler.
Emitter'ın ışınlanmasını Class.ParticleEmitter.LightInfluence olarak ayarlar.
Onların bireysel ömürlerinde tüm aktif parçacıkların rengini belirler.
Parçacıkların kaybettiği hızın yüzdesini belirler.
Parçacıkların yaydığı nesnenin yüzünü belirler.
Parçacıkların emittenden ışındığını belirler.
Flipbook'un görsel animasyonunu her saniyede kaç karede sergileyeceğini belirler.
Class.ParticleEmitter.Texture|Texture bir flippedbook için uyumsuzsa gösterilecek hata mesajı.
Flipbook'un tasarımını belirler. Bir olmalıdır, Grid2x2, Grid4x4 veya Grid8x8.
Flipbook animasyonunun türünü belirler. Loop, OneShot, PingPong veya Rastgele olmalıdır.
Animasyonun her zaman frame zero'da başlaması gerektiği yerleşik bir kare seçilmiş olup olmadığını belirler.
Yeni emitselenen parçalar için rastgele bir yaş aralığı tanımlar.
Particilerin rengiyle arkasındaki renklerin karıştığını belirler.
Çevresel ışığın etkisi olan parçaların miktarını belirler.
Parçaların emittiği parçayla sabit olarak hareket ettiğini belirler.
Parçaları nasıl yönlendireceğinizi belirtir.
Saniyede emiten parçacık sayısını belirler.
Emitselenen parçaların açı hızlarının ölçeğini belirler, bunlar saniye başına derece olarak ölçülür.
Yeni emisyonlu parçalar için derecelerinde dönme menzilini belirler.
Emittinin şeklini kutu, küre, silindir veya diske ayarlar.
Particilerin sadece dışarıya, yalnızca içeriye veya her iki yöne de açık açık olup olmadığını ayarlar.
Silindir, diski, küreyi ve kutu şekillerinden parçacık emisyonunu etkiler.
Partikül emisyonunu hacimsel veya yüzey emisyonuna ayarlar.
Belirli parçacıkların ömürleri boyunca dünya büyüklüğünü belirler.
Yeni parçacıkların emittiği rastgele bir menzili belirler (dakikada bir) ve bu menzil STUDS'a (saniye başına) göre ölçülür.
Parçacıkların rastgele emittiği açıları dereceler olarak belirler.
Partilerin üniforma olmayan skalamasını, ömürleri boyunca kontrol edilmiş kıvrımlarını sağlar.
Parçalarda oluşturulan görüntüyü belirler.
Parçacık efektinin hızını kontrol eden 0 ile 1 arasındaki değer.
Parçaların bireysel ömürleri boyunca parçaların görünürlüğünü belirler.
Ebeveynin hızının parçalar tarafından verilen sırasız yüklenmesine izin verir.
Emitselenen parçacıklar Workspace.GlobalWind vektörüne mi takip ediyor.
Particilerin ileri/geri render pozisyonunu belirler; parçaların üst/altında renderlenmesini kontrol etmek için kullanılır.
Yöntemler
Yayılan tüm parçacıkları temizler.
Belirli bir sayıda parçayı emits.
Özellikler
Acceleration
Hızlandırma özelliği, parçacıkların hayat boyu hız değişimini nasıl belirlediğini Class.ParticleEmitter.Speed|Speed ile belirlemektedir. Bu özellik, Datatype.Vector3 kullanılar
Hızlanma, emittelerinin yayıldığı EmissionDirection içindeki parçaları yavaşlatır. Aksi takdirde, onları hızlandırır.
Color
Renk özelliği, tüm aktif parçacıklarının toplam ömürleri boyunca rengini belirler. Renk, render'da Class.ParticleEmitter.Texture|Texture ile birlikte kullanılır ve emitterinin Class.ParticleEmitter.Transparency|
Bu özellik, emittörün tüm parçacıklarını etkiler, hem mevcut hem de gelecekte.
Bu özellik bir gradyен kullanır ColorSequence, bir parçanın mevcut rengi seri olarak belirlenir kullanırın küresel olarak kullanırın küresel olarak kullanırın küresel olarak kullanırın küresel olarak kullanırın küresel oların küresel oların k
Drag
Sürükleme özelliği, bireysel parçacıkların hızlarının yarısını kaybettikleri saniyedeki oranı belirler. Sürükleme, Speed ve ebeveyninden miras alınan herhangi bir hızı artırır. Bu özelliğ
EmissionDirection
EmissionDirection özelliği, parçacıkların yayılanınan yüzü ( Class.ParticleEmitter.Speed|Speed ) belirleyen ebeveyn objeyi belirler. Bir olumsuz Enum.NormalId , parçacıkların yayılanınan yönünü değiştirir. Class.ParticleEmitter.SpreadAngle|SpreadAngle
Eğer bir ParticleEmitter 'i bir Attachment 'e eklerse, eğilimi kullanarak bağlantıyı kendi başına döndürebilirsiniz ( Attachment.Orientation ) bu özelliği kullanmak yerine.
Enabled
Etkinleştirilmiş özelliği, parçacıkları emitterden ışınanıp ışınlanmadığını belirler. Bu değeri false olarak ayarlarsanız, parçacıkların yeniden doğmasını önler, ancak mevcut parçacıklar etkin kalır. Bu özellik, parçacıkları etkinleştirmeyi gerektiğinde devre dışı b
Bir devre kartının tüm parçacıklarını temizlemek istiyorsanız, Clear() diyorsunuz. Sonra, istediğinizde, Emit() emitterinde çıkartır ve görüntüleri gösterir.
FlipbookFramerate
FlipbookFramerate özelliği, kaç kare per saniye içinde kaç kare per saniye içinde kaç kare per saniye içinde kaç kare per saniye içinde kaç kare prosedürü belirler. İşte Lifetime gibi, bir minimum ve maksimum menzili ayarlayabilirsiniz kaç kare prosedürü, kaç kare per saniye içinde kaç kare prosedürü
FlipbookIncompatible
Eğer Texture bir dizi kitap için uyumsuzsa gösterilecek hata mesajı. Dizi kitaplarının dokunulanabilirliği 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512 veya 10
FlipbookLayout
FlipbookLayout özelliği, dokununun üstünlüğünü belirler. Enum.ParticleFlipbookLayout uzanındaki herhangi bir değer olabilir:
- Hiçbiri – Flipbook özelliklerini devre dışı bırak ve tek bir statik metni parçanın ömrü boyunca kullan.
- Grid2x2 – 4-Frame animasyon için 2×2 kareler.
- Grid4x4 – 16 kare animasyon için 4×4 kareler.
- Grid8x8 – 64 kare animasyon için 8×8 kareler.
FlipbookMode
FlipbookMode özelliği, flipbook animasyonunun türünü belirler. Enum.ParticleFlipbookMode kütüphanesinin herhangi bir değer olabilir:
- Loop – Oyunu son oynadıktan sonra oyunu oynarken her kareyi sürekli olarak oynar.
- BirOyunTanımlayıcı – Animasyonun oynatımı sadece bir kez tüm parçacık ömrü boyunca yapılır. Bu ayar ile, Class.ParticleEmitter.Flipbook
- PingPong – Oyunu ilk çerçeveden son çerçeveye kadar oynayın, sonra ilk çerçeveden son çerçeveye tekrar oynayın, parçacığın Lifetime boyunca tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar tekrar
- Rastgele – Çerçevelerin bir rastgele sırayla oynatılması, bir çerçeveden diğerine karıştırılması. Bu, yavaş yan yana giderek hareket eden yıldızlar gibi düşük kare hızlarında organik parçacık türleri için yararlı olabilir.
FlipbookStartRandom
The FlipbookStartRandom özelliği, her parçanın her zaman ilk karede başlamasını sağlamak yerine rastgele bir animasyon karesinde başladığını belirler. Bir kullanım durumu, bu özelliği etkinleştirmek ve ayrıca FlipbookFramerate ı rastgele ol
Lifetime
Ömür Ömür özelliği, yeni olarak emisyon edilen parçacıklar için maksimum ve minimum yaşları tanımlar. Ömürler rastgele seçilmiş yaşlarının sona ermesine kadar varlığını korur. 0 ömür değeri, parçacıkların tümübirinde emisyon etmesini önler.
LightEmission
LightEmission özelliği, Class.ParticleEmitter.Texture|Texture renklerinin arkasındaki renklerle karıştığını belirler. Bir değer 0 normal karıştırma modunu kullanırken, bir değer 1 ekstra karıştırma modunu kullanır. Değiştirildiğinde, bu özellik emitterinin tüm parçacıklarını etkiler, mevcut ve gelecekteki.
Bu özellik LightInfluence ile karıştırılmamalıdır, bu da parçacıkların çevresel ışığa nasıl etkilendiğini belirler.
Bu özellik, parçacıkların çevresindeki çevreye ışık tutmak için neden parçacıkların etrafında ışık yanmasına neden olur. Bunu başarabilmek için, bir PointLight kullanmayı düşünün.
LightInfluence
LightInfluence özelliği, render olduğunda bireysel parçaların rengini etkileyen çevresel ışığın miktarını belirler. Bu değer 0-1 arasında olmalıdır; 0-1'in ötesindeki değerlerin davranışı yoktur. 0'da, parçalar ışığa hiç etkilenmez (tüm parlaklığı korur); 1'de,
Varsayılan olarak, bu değer Studio araçlarıyla giriştirildiğinde 1'dir. Instance.new() kullanılarak giriştirildiğinde, 0'dır.
LocalTransparencyModifier
LockedToPart
The LockedToPart özelliği, parçacıkların emisyon kaynağına "yapıştığını" belirler (Attachment veya BasePart 'e bağlı olarak) 1> Class.ParticleEmitter1> 'in yerine geçenleri). Eğer 4> true4>
Alternatif olarak, bazı efektler için VelocityInheritance özelliğini 1 değerinde kullanmayı düşünün.
Orientation
Yönlendirme özelliği, bir emitter'ın parçacık geometrisi için hangi yönlendirme modunu kullanacağını belirler.
<tbody><tr><td><b>Kamerayla YüzleştirmeKayıdı</b></td><td>Standart kamera yüzü billboard quad; varsayılan davranış.</td></tr><tr><td><b>FacingCameraWorldUp</b></td><td>Kameraya bakıyor, ancak yalnızca yükseliş ekseninde döndürülüyor. <b>Y</b> ekseninde.</td></tr><tr><td><b>Hız Paralellemesi</b></td><td>Hareket yönlerine paralel olarak hizalanmış.</td></tr><tr><td><b>HızPerpendiculari</b></td><td>Onların yön hareketine paralel olarak hizalanmıştır.</td></tr></tbody>
Yönlendirme | Partic Behaviour |
---|
Rate
Oran özelliği, emitter'ın Enabled olduğu saniyede kaç parçacık emittiğini belirler. Bu, frekansın tersi yani bir 5 emits bir parçacık her 0.2 saniyede bir. Değiştirildiğinde, bu özellik etkisi yok.
RotSpeed
The RotSpeed özelliği, yeni emisyonlu parçalar için rastgele bir hız açısı belirler, ölçekte saniyede belirlenir. Bir rastgele hız açısı, emisyon sırasında seçilir, bu yüzden bu özelliği değiştirmek aktif parçaları etkilemez. Bu özellik, Rotation ile birl
Çok yüksek açı hızlarına sahip parçalar daha yavaş döndüğü veya hiç döndüğü gibi görünebilir, çünkü dönme açısı yazılım renderleme hızıyla eşzamanlıdır. Örneğin, parçalar her kareyi 360 derece döndürseydi dönme açısında hiçbir görünür değişiklik olmazdı.
Rotation
Döndürme özelliği, yeni emisyonlu parçacıklar için derecelerinde döndürme menzilini belirler. Olumlu değerler saat yönünde bulunur. Bu özellik genellikle [0, 360] ile yeni parçacıklar için tümüyle rastgele bir döndürme sağlamak için ayarlanır. <
Bu değerin değiştirilmesi sadece yeni parçalara etki eder; mevcut parçalar, onların orijinal olarak yayınlandığı döndürmeyi korur.
Şekil özelliği, emitter'ın şeklini bir kutu, küre, silindir veya disk olarak ayarlar. Seçim yaptıktan sonra, şekli ShapeStyle , Class.ParticleEmitter.ShapeIn
ShapeInOut
Particilerin yalnızca dışarıya, yalnızca içeriye veya her iki yöne de açık açık olup olmadığını ayarlar. Görsel örnekler için, Buraya bakın.
ShapePartial
Class.ParticleEmitter.Shape|Shape değerine bağlı olarak, bu özellik farklı bir aksiyonyapar:
Silindirler için üst kısma oranı belirtir. Bir değer 0, üst kısmının radius'unun 0 olduğunu gösterir, böylece bir küre olur. Bir değer 1, üst kısmının deformasyonu olmadığını gösterir.
Disçerler için iç çevre çevirimi oranını belirtir. Bir değer 0, diskin tamamen kapalı olduğunu gösterir (çember/ellipse), bir değer 1, sadece dış kenarın üstünde emisyon oluşur. 0 ve 1 arasındaki değerler belli bir kalınlıkta bir annül ile gösterilir.
Küreler için, parçacıkların yayılan yarım küreli açıyı belirtir. Bir değer 1, parçacıklar tüm küre üzerinden yayılır; bir değer 0,5, parçacıklar yarım küreden yayılır; bir değer 0, sadece kuzey kutbu üzerinden tek bir noktadan yayılır.
Görsel örnekler için, Buraya bakın.
ShapeStyle
Partikül emisyonunu hacimsel veya yüzey emisyonuna ayarlar. Görsel örnekler için, Buraya bakın.
Size
Boyut özelliği, tüm aktif parçaların hayatları boyunca tüm dünya boyutunu belirler. Bu özellik, her parçacık için Class.ParticleEmitter.Texture|Texture boyutunu temsil eder. Bu, Texture ile aynı şekilde çalışır.
Bir parçanın mevcut büyüklüğü, parçanın yaşı ve toplam ömrü kullanılarak lineer olarak işaretlenen bu sırayla belirlenir. Örneğin, bir parçanın 2 saniye önce oluşturulduğu ve 4 saniye ömrü olduğ
Speed
Hız özelliği, yeni parçacıkların yayılan hız aralığını (dakika başına minimum/maksimum) belirler ( stud ). Her parçacığın hızını seçer ve bu, yayılan ve EmissionDirection . Olumsuz değerler, parçacıkların ters yönünde seyahat etmeye neden olur.
Not değiştirme Speed aktif parçaları etkilemez ve onlar kendi hızlarını korur. Ancak, Acceleration , Drag ve 1> Class.
SpreadAngle
SpreadAngle özelliği, bir parçanın yayılan rastgele açılarını belirler. Örneğin, EmissionDirection ile, bu Datatype.Vector2 parçanın X / Z eksenlerindeki r
Bir eksenini 360 olarak ayarlamak parçaların tüm yönlerde bir çevre içinde göndermesine neden olur. Her ikisini de 360 olarak ayarlamak parçaların tüm yönlerinde bir küre içinde göndermesine neden olur.
Squash
Parçaların üniforme olmayan skalamasını, hayatları boyunca kontrollü bir şekilde kurve ile kontrol edilir. 0'den büyük değerler, parçaların her iki yönlü de küçültmesine ve yükselişine neden olur, 0'den daha düşük değerler, her iki yönlü de küçültmesine ve yükselişine neden olur.
Texture
Metinür özelliği, parçacıklarda görüntülenen görüntüyü belirler. Bu görüntü Color , Transparency , 1> Class.ParticleEmitter.LightInfluence|LightIn
TimeScale
Parçacık efektinin hızını kontrol eden bir değer. 1'de normal hızda çalışır; 0.5'te yarım hızda çalışır; 0'da dondurur.
Transparency
Şeffaflık özelliği, tüm aktif parçacıklarının toplam özelliklerini belirler. Bu, parçacıkların zamanla nasıl etkilendiğini Size ile aynı şekilde işaret eder. Görselleştirme açısından, bir 0 değeri (opake) ve bir 1 değeri (rendering edilme
Bir parçanın mevcut görünümü, parçanın yaşı ve toplam ömrü kullanılarak lineer olarak işaretlenir. Örneğiniz, bir parçanın 2 saniye önce oluşturulduğu ve 4 saniye ömrü olduğu durumda, görün
VelocityInheritance
VelocityInheritance özelliği, Velocity ın çekirdek parçasından iletildiğinde parçacıklar tarafından miras alınan ebeveyn parçasının % ile kadar kendi hızını almasını sağlar. Bir değer 0, hiçbir hız miras alınmazken, bir değer
Class.ParticleEmitter.Drag|Drag ile bir parçayı bir hareketli parçadan parçaları "shed" etmek gibi görünebilir.
WindAffectsDrag
Eğer doğrudur, yayılan parçacıklar Workspace.GlobalWind vektörüne izlenir. Sadece Drag özelliğinin 0'den daha büyük olduğu durumda geçerlidir.
ZOffset
The ZOffset özelliği, parçaların ekranda boyutlarını değiştirmeden üst-geri görüntü pozisyonunu belirler, in studs, ortaklarını etkilemez. Değiştirildiğinde, bu özellik tüm mevcut ve gelecekteki parçaları etkiler. Not that this property accepts fractional values; it's not like GuiObject.ZIndex (bir sayı).
Olumlu değerler parçaları kamera yakınına taşır ve olumsuz değerler parçaları uzaklaştırır. Yeterince olumsuz değerler, parçaları ebeveyn parçasının içinde veya arkasında renderlemek için yeterlidir.
Yöntemler
Clear
The Temizleme method instantly clears all existing particles that have been emitted by the ParticleEmitter through its natural emission (non-zero Rate on an 1> Class.ParticleEmitter.Enabled|Enabled1> emitter) or via the 4> Class.ParticleEmitter:Emit()|Emit()4> .
Dönüşler
Kod Örnekleri
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end
Emit
Emit yöntemi, Class.ParticleEmitter 'in anında verilen sayıda parçacık emittiğini sağlar.
Parametreler
Yayılan parçacık sayısı.
Dönüşler
Kod Örnekleri
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