ParticleEmitter

Artık kullanılmayanları göster

*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

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

Özet

Özellikler

  • Tüm aktif parçaların global eksen hızlandırmasını, her saniye dakikada bir olarak ölçen birimlerle belirler.

  • Paralel oku

    Emitter'ın ışınlanmasını Class.ParticleEmitter.LightInfluence olarak ayarlar.

  • Paralel oku

    Onların bireysel ömürlerinde tüm aktif parçacıkların rengini belirler.

  • Paralel oku

    Parçacıkların kaybettiği hızın yüzdesini belirler.

  • Parçacıkların yaydığı nesnenin yüzünü belirler.

  • Paralel oku

    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.

  • Gizli
    Çoğaltılmamış
    Paralel oku
  • Paralel oku

    Parçaların emittiği parçayla sabit olarak hareket ettiğini belirler.

  • Parçaları nasıl yönlendireceğinizi belirtir.

  • Paralel oku

    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.

  • Paralel oku

    Silindir, diski, küreyi ve kutu şekillerinden parçacık emisyonunu etkiler.

  • Partikül emisyonunu hacimsel veya yüzey emisyonuna ayarlar.

  • Paralel oku

    Belirli parçacıkların ömürleri boyunca dünya büyüklüğünü belirler.

  • Paralel oku

    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.

  • Paralel oku

    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.

  • Texture:ContentId
    Paralel oku

    Parçalarda oluşturulan görüntüyü belirler.

  • Paralel oku

    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.

  • Paralel oku

    Particilerin ileri/geri render pozisyonunu belirler; parçaların üst/altında renderlenmesini kontrol etmek için kullanılır.

Yöntemler

  • Clear():void

    Yayılan tüm parçacıkları temizler.

  • Emit(particleCount : number):void

    Belirli bir sayıda parçayı emits.

Özellikler

Acceleration

Paralel oku

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.

Brightness

Paralel oku

Emitter'ın ışınlanmasını Class.ParticleEmitter.LightInfluence olarak ayarlar.

Paralel oku

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

Paralel oku

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

Paralel oku

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

Paralel oku

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

Paralel oku

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

Paralel oku

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

Paralel oku

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.
Paralel oku

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

Paralel oku

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

Paralel oku

Ö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

Paralel oku

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

Paralel oku

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

Gizli
Çoğaltılmamış
Paralel oku

LockedToPart

Paralel oku

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.

Paralel oku

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önlendirmePartic Behaviour

Rate

Paralel oku

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

Paralel oku

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

Paralel oku

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.

Paralel oku

Ş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

Paralel oku

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

Paralel oku

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.

Paralel oku

Partikül emisyonunu hacimsel veya yüzey emisyonuna ayarlar. Görsel örnekler için, Buraya bakın.

Paralel oku

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ğ

Paralel oku

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

Paralel oku

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.

Paralel oku

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

ContentId
Paralel oku

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

Paralel oku

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

Paralel oku

Ş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

Paralel oku

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

Paralel oku

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

Paralel oku

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

void

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

void

Kod Örnekleri

ParticleEmitter Burst

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

Emit

void

Emit yöntemi, Class.ParticleEmitter 'in anında verilen sayıda parçacık emittiğini sağlar.

Parametreler

particleCount: number

Yayılan parçacık sayısı.

Varsayılan değer: 16

Dönüşler

void

Kod Örnekleri

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

Etkinlikler