Unity üzerinde efekt yapak için “Visual Graphic Effect” ile birlikte en çok kullanılan sistem “Particle Effect” yani parçacık efekt sistemidir. Daha önceki derslerimizde belirttiğim gibi baştan bir patlama, yanma ya da aklınıza gelen herhangi bir efekt yapmak için tecrübeye yani dolayısıyla zamana ihtiyacımız var.
Tabi ki Asset Store üzerinde ücretsiz birçok efekt bulabilirsiniz ama en azından ayarların ne işe yaradığını ve değişiklik yapmak istediğinizde nasıl uygulayabileceğinizi öğrenmeniz faydalı olacaktır.
O yüzden bu dersimizde parçacık efekt sisteminde olan ayarların ne işe yaradığına değineceğiz ve bir kütüphane oluşturmaya çalışacağız.
Başlıyoruz.
Unity Particle System işlemlerine başlamak için önce sahnemize bileşeni eklememiz lazım. Sahneye bir küp ekleyerek “Add Component” kısmında “Particle System” diyerek ekleme gerçekleştirebilirsiniz. Ya da direk “Hierarchy” kısmından “Effect/Particle System” yolunu takip edebilirsiniz.
Ekleme işleminden sonra karşınıza göz korkutan bir panel gelecektir. Burada yüzlerce ayar var ama merak etmeyin en çok kullanılanlara ve işinize yarayanlara elimden geldiğince değinmeye çalışacağım.
Aşağıdaki görsele baktığınızda otomatik olarak aktif durumda gelen bölümler yer almaktadır. Bu kısımlar en çok kullanılan alanlar olup genelde bütün işlemler bu kısımlarda dönmektedir.

Not: İlk olarak “Renderer” bölümünün altında yer alan “Material” kısmından “Sprites-Default” seçeneğini işaretleyerek bir materyal ataması yapalım. Bu sayede varsayılan olarak gelen ve bize bir atama yapılmadığı gösteren pembe rengi değiştirmiş olacağız.
Unity Particle System Genel Ayarları
Particle System altında ilk kısımda bulunanlar genel ayarlar ve altında yer alan açılır kısımlar ise modüller olarak anılmaktadır. Genel ayarları ve modülerin ne işe yaradığını anlamanız ufak değişiklikler için müdahale etmenizi sağlayacaktır.
Genel ayarlar için ufak videolar hazırlayarak anlatmaya çalıştım fakat tüm bunları birleştirerek bir efekt oluşturmak ayrı bir süreç olacağı için şimdilik sadece mantığını anlamanızı öneriyorum.

İlk olarak karşımıza çıkan ve efektin ana ayarlarının olduğu kısımdır. Bu kısımdan bir çok genel ayarı yönetebilmekteyiz ve en iyi anlamamız gereken kısımlardan biridir.
Duration
Oluşturulan efekt sisteminin yaşam süresinin ayarlandığı kısımdır. Burada belirtilen ayarı bir efektin süresi olarak düşünmemeniz gerekiyor. Çünkü bu süreye etki eden bir çok farklı ayar var bulunmaktadır.
Aşağıdaki videoda oluşan değişikliğe göz atabilirsiniz. Not: “Looping” ayarındaki işaret kaldırılmış şekildedir.
Looping
Oluşturduğunuz efektin süresi dolduktan sonra yeniden başlayarak bir döngü oluşturması için kullanılan ayardır. Örneğin bir şelale efekti ya da alev efekti vermek istiyorsan “Looping” ayarının işaretli olması gerekiyor.
Prewarm
“Looping” ayarının seçildiği zaman aktif olan “Prewarm” ayarını seçerek efektin bir döngüsünü çalışmış gibi başlamasını sağlayabiliriz. Yani efekt yeniden başlamak yerine bir kere döngüyü tamamlamış gibi başlar.
Bu ayar döngü durumundaki efektlerde daha tutarlı sonuçlar almak için kullanılır.
Start Delay
Efektin başlamadan önce ne kadar süre bekleyeceğinin belirlendiği alandır. Burada belirtilen süre kadar bekledikten sonra efekt başlayacaktır. Ayrıca “Looping” yapılan sistemlerde de kullanılabilir fakat “Prewarm” etkin olursa direk bir kere döngü oluştuktan sonra başlayacağı için kullanılamaz.
Start Lifetime
Oluşan parçacıkların sahnedeki yaşam süresini yani ne zaman kaybolacağını belirlediğimiz ayardır.
Start Speed
Parçacıkların oluştuktan sonra hızını ayarlayabileceğimiz kısımdır. Parçacıklar oluştuktan sonra takip ettikleri yöne giderken ki süreleri ayarladığımız kısımdır.
3D Start Size
Oluşturulan her parçacığın eksenlerinin boyutlarını belirlemek için kullanılan ayardır. Kutucuğu işaretlediğinizde açılan X, Y ve Z eksenlerini belirterek istediğiniz boyutlarda parçacıkların oluşmasını sağlayabilirsiniz.
Start Size
Her bir parçacığın boyutunu ayarlayabileceğimiz kısımdır. “3D Start Size” benzeri çalışır fakat iki boyutu aynı oranda büyültür.
3D Start Rotation
X,Y ve Z eksenlerinde dönüşü kontrol etmek için kullanılan ayardır. 3D Start Rotation seçildiğinde bir sonraki ayar olan “Start Rotation” pasif duruma gelecektir.
Start Rotation
Her parçacığın başladığı ilk açıya rotasyon vermek için kullanılan ayardır. Belirtilen değer doğrultusunda açıları değişerek parçacıklar oluşacaktır.
Flip Rotation
Bazı parçacıların “Start Rotation” ile belirtilen rotasyonun tam tersi şeklinde olması için kullanılan ayardır. 0-1 arasında bir değer alan bu parametreye 1 değeri verilirse tüm parçacılar ters yönde olacaktır. Örneğin videodaki gibi 0.5 verirsek tüm paracıklar yerine bir kısmı ters pozisyonda oluşur.
Start Color
Parçacıklara renk ataması yapmak için kullanılan ayardır. Yan tarafta açılan alanda “Color”, “Gradient”, “Random Color” ayarlarıyla birlikte iki adet “Color” ve “Gradient” belirleyebileceğimiz bir seçenek bulunmaktadır.
Burada olan seçenekleri test ederek deneyebilirsiniz. Çalışma mantığı olarak farklı bir yapı olan “Random Color” seçiminde belirleyeceğimiz iki renk arasındaki renklerden karışık bir sıra ile parçacıklara atama yapmaktadır.
Gravity Modifier
Oluşa parçacıkların yer çekimini belirlediğimiz ayardır. 0 sayısı yerçekimi olmamasını sağladığı gibi negatif ve pozitif sayılar vererek yer çekiminde değişiklikler gerçekleştirilebilir.
Simulation Space
Parçacıkların nasıl simüle edileceğinin belirtildiği alandır. Alt seçeneklerinde “Local”, “World” ve “Custom” seçenekleri bulunmaktadır.
- Local: Efektin ekli olduğu objeye ya da parent objeye göre hesaplanması için kullanılır.
- World: Oyunun genel koordinantlarına göre hesaplama yapılır.
- Custom: Sahnede yer alan farklı bir objenin hareketlerine göre hesaplanması için kullanılan ayardır. “Custom” seçilirse eğer obje seçmek için yeni bir alan açılacaktır.
Simulation Speed
Simülasyonun hızının belirtildiği alandır. Burada belirtilen hız parçacıkların hızı olmayıp komple efektin hızıdır. Varsayılan olarak 1 değeri gelir. Arttırarak efekti hızlandırabilirsiniz.
Delta Time
Delta Time seçeneği altında “Scaled” ve “Unscaled” şeklinde iki seçenek bulunmaktadır. “Scaled” seçeneği zaman penceresindeki “Time Scale” değerini kullanır. “Unscaled” modunda ise zaman ölçeği yok sayılır.
Bununla ilgili bir örneği bu aşamada gerçekleştiremiyoruz ama Unity sitesinde belirttiğine göre oyunun duraklama menüsünde kullanılan efektler için “Unscaled” seçeneğinin elverişli olduğu yazmaktadır.
Scaling Mode
Efekte oluşan parçacıklarının ölçeğinin nasıl hesaplandığını seçtiğimiz alandır. “Hierarchy”, “Local” ve Shape şeklinde üç farklı çalışma modu bulunmaktadır.
- Hierarchy: Eğer efektimizi bir objeye bileşen olarak eklemeyip “Hierarchy” bölümünden “Sağ Tık / Effects / Particle System” olarak eklediysek bu ayarda “Hierarchy” seçeneğini seçebiliriz. Bu şekilde sahnede yer alan bir obje olduğunu ve ölçeğini kendisine göre hesaplamasını söylemiş oluruz.
- Local: Bir efektiniz başka bir objenin altında yer alıyorsa ama kendi ölçeklendirmesini üst objeden almasını istemiyorsak “Local” seçeneğini işaretleyebiliriz.
- Shape: Ölçeklendirme başlangıç konumlarına uygulanır fakat boyutlarını etkilemez.
Play on Awake
Unity fonksiyonları konusunda incelediğimiz “Awake” fonksiyonunundaki gibi oyun başladığında efektin otomatik çalışması için kullanılan ayardır.
Eğer kutucuk işaretliyse oyun başladığında otomatik olarak başlayacaktır. İşaretin kaldırılması durumunda ise oyunun başlangıcında otomatik olarak başlaması engellenmiş olur.
Örneğin bir havai fişek efektini oyunun ilgili bölümünde başlatmamız gerekir yani oyun başladığında çalışmaması için “Play on Aware” ayarındaki işaret kaldırılır.
Emitter Velocity
Efektler yani parçacık sistemindeki parçacıkların hızının ve emisyon işlemlerini nasıl hesaplanacağının belirlendiği kısımdır.
Fizik sınıfına ya da Transform sınıfına göre hesaplama yapması için iki alt seçeneği bulunmaktadır. İleriki konularda işlem yaparken bu ayarı daha net anlayacağız.
Max Particles
Toplam parçacık sayısının belirlendiği kısımdır. Bir efektin başlangıcından son parçacığa kadar toplamda kaç adet parçacık olacağını limitleyebildiğimiz kısımdır.
Tabi burada belirtilen rakam doğrultusunda parçacık oluşacağı anlamına gelmemektedir. Eğer “Duration” yani efektin süresini belirlediğimiz kısımda kısa bir süre ayarladıysanız ya da parçacık hızını düşürdüyseniz, belirtilen kriterlere uyum sağlayacaktır. Bu ayarı maksimum oluşabilecek parçacık sayısı belirlemek için kullanabiliriz.
Auto Random Seed
Eğer “Auto Random Seed” seçeneği işaretlenirse efekti her başlattığınızda farklı olarak görünecektir. Unity oyun motorunun çekirdek yapısı arka planda hesaplamalar yaparak işlem gerçekleştirmektedir.
Şöyle düşünebilirsiniz, bir meşale efektimiz var ve her oyun başladığında aynı şekilde yanmasını değil de farklı şekilde yanmasını istiyorsanız bu ayarı seçebilirsiniz.
Random Seed
“Auto Random Seed” seçeneğini kullanmak istemediğiniz için pasif duruma getirdiğinizde ortaya çıkan bir ayardır.
İlgili kısımda “Reseed” butonu gözükecektir. Bu butona tıklayarak mevcut efekti random oluşturacağı bir numaraya atamasını yaparak Unity oyun motorunun hesaplamasını devre dışı bırakabilirsiniz. Böylece efektiniz her başladığında aynı şekilde gözükecek ve benzersiz olacaktır.
Stop Action
Efektimiz yani parçacıkların süresi bittiğinde ya da toplam parçacık sayısına ulaşıldığında otomatik olarak işlem yapmamız için kullanılan ayardır.
“None”, “Disable”, “Destroy” ve “Callback” olarak dört alt seçeneği bulunmaktadır.
- None: Herhangi bir işlem yapılmasını istenmiyorsa seçilecek ayardır.
- Disable: Otomatik olarak efektin bağlı olduğu objenin pasife çekilmesi için kullanılır.
- Destroy: Otomatik olarak efektin bağlı olduğu objenin silinmesi için kullanılan ayardır.
- Callback: Efekt ile ilgili işlem tamamlandığında C# tarafında farklı bir işlem başlatmak için kullanılan ayardır.
Eğer efektimizin “Loop” ayarı aktif olan yani bir döngüde olan efektlerde bu ayarların geçerli olması için C# tarafından işlem yapmamız gerekmektedir.
Örneğin oyun başladıktan sonra boşluk tuşuna basıldığında Unity ekranındaki efekt ayarlarında belirlenen seçimin gerçekleşmesi için aşağıdaki kodu kullanabiliriz. (Disable ve Destroy durumları için…)
public class StopAction : MonoBehaviour { ParticleSystem efektimiz; void Start() { efektimiz = GetComponent<ParticleSystem>(); } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { efektimiz.Stop(); } } }
Diğer bir örneğimiz ise efekt ayarlarından “Callback” seçildiği zaman hangi işlemlerin yapılacağını belirlemek için aşağıdaki Unity çekirdek fonksiyonlarından “OnParticleSystemStopped()” fonksiyonunu kullanabiliriz.
private void OnParticleSystemStopped() { Debug.Log("Efekt durduruldu"); } }
Culling Mode
Parçacıkların oyun ekranının dışında kalması durumunda nasıl işlem yapacağının ayarlandığı kısımdır. Dört farklı işleme yöntemi bulunmaktadır.
- Automatic: Looping yani döngü durumunda olan efektler kamera açısının dışında kalması durumunda durdurulacaktır. Eğer efekt döngü olarak ayarlanmamışsa ekran dışında kalsa bile çalışma zamanı bitene kadar işlenmeye devam edecektir.
- Pause And Catch-up: Efektler kamera açısının dışında kaldığı zaman tümünü durduracaktır ve kamera tekrar açıya girdiği zaman efekt kaldığı yerden devam edecektir. Culling Mode işlemleri arasında en performanslı seçeneklerden biridir.
- Pause: Efektler kamera açısının dışında kaldığı zaman tümünü durduracaktır.
- Always Simulate: Kamera açısının dışında kalmasını önemsemeden efektler sürekli çalışacaktır.
Ring Buffer Mode
Bir döngü durumunda olan efekte yer alan parçacıkların sahnedeki yaşam süresi dolduğunda nasıl bir işlem uygulanacağının belirlendiğini kısımdır.
Kullanabileceğimiz üç farklı işlenme yöntemi bulunmaktadır.
- Disabled: Parçacıkların yaşam süresi dolduğunda yani ekranda artık görünmediğinde sistemden kaldırır.
- Pause Until Replaced: Parçacıkların yaşam süresi dolduğunda arka planda saklar ve “Max Particle” alanında belirtilen sayıya ulaşıldığında yeni parçacık oluşturmadan sakladıklarını tekrar geri döndürür.
- Loop Until Replaced:”Pause Until Replaced” seçeneğiyle aynı şekilde çalışır sadece parçacıkları saklamak yerine yaşam sürelerinin bitmesini bekler ve yeniden geri döndürür.
Emission Modülü Ayarları
Oluşturulan efektin hızının ve zamanlamasının ayarlandığı bölümdür. Otomatik olarak seçilmiş durumda gelir eğer seçimi kaldırırsak efektin çalışmasını durdurduğunu gözlemleyebilirsiniz.
Rate over Time
Birim zamanda objeden çıkan parçacık sayısının belirlendiği alandır. Varsayıla olarak 10 sayısı gelir ve parçacık sayısının ilk çıkışındaki sayısı aşağıdaki videodaki gibi değiştirilebilir.
Rate over Distance
Parçacıklar arasındaki mesafenin belirlendiği alandır. Bu kısmı çalıştıramadım ya da ayarlayamadım. Yaptığım işlemler sahnede çalışmıyor gözüküyor Anlayabilen bir arkadaşımız aşağıdaki hızlı yorum kısmına basarak yorumunu yazarsa burada ismiyle yayınlayabilirim.
Bursts
“Bursts” kısmı parçacıkların belirli zamanlarda yayılması için kullanılan bir ayardır. Buraya ekleme yapabilmek için ekranda yer alan “+” simgesine tıklayarak aşağıda belirtilen özelliklerin açılması sağlanır.
- Time: Patlamanın zamanının belirlendiği alandır. En fazla “Duration” alanında belirtilen süre kadar belirlenebilir.
- Count: Patlama anında kaç adet parçacığın olacağının belirlendiği alandır.
- Cycles: Patlamanın kaç defa oynatılacağının belirlendiği alandır.
- Interval: Her patlama işleminden sonra döngünün tekrar edeceği zamanın belirlendiği alandır.
- Probability: Sistemin parçacık üreterek patlama oluşturmasını garanti etmek için kullanılan ayardır. En yüksek 1 değeri verilir ve belirtilen ayarlarda patlama kesin gerçekleşir. Oran düşürüldükçe olasılık azaltılır.
Shape Modülü Ayarları
Shape modülü üzerinden parçacıkların yayılma türünü seçerek, seçilen yayılma türüne çeşitli ayarlar yapabileceğimiz kısımdır.

Parçacıkların dağılma şeklinin belirlendiği alandır. Seçilebilecek bir çok alan ve seçilen şeklin yapısına göre seçenekler açılmaktadır.
Aşağıdaki videoda birkaç şekil seçiminden sonra efektlerin yapılarını nasıl gözüktüğünü göstermeye çalıştık.
Shape modülü altında seçime göre farklı ayarlar gelecektir arkadaşlar. Bu ayarlar standart ayarlar olup deneme, yanılma yaparak test etmeniz daha iyi sonuç verecektir. Yine de anlamadığınız kısım olursa sorabilirsiniz.
Velocity over Lifetime Modülü Ayarları

Parçacıkların yaşam döngüleri boyunca hızlarını kontrol etmemizi sağlayan kısımdır.
Linear X, Y, Z: Parçacıkların doğrusal hızın X,Y ve Z koordinatlarına göre belirlendiği alandır.
Space: X,Y ve Z eksenlerinin objeye göre mi yoksa dünyaya göre ayarlanacağının belirlendiği alandır.
Orbital X, Y, Z: X, Y ve Z eksenindeki parçacıkların yörüngesel hızının belirlendiği alandır.
Offset X, Y, Z:X, Y ve Z eksenindeki parçacıkların yörünge merkezine olan konumunun ayarlandığı kısımdır.
Speed Modifier: Parçaların mevcut hızlarına hareket yönleri boyunca çarpan bir hız uygulanması için kullanılan ayardır.
Limit Velocity Over Lifetime Modülü Ayarları

Parçacıkların hızlarının, yaşam döngüsü boyunca nasıl azalacağının belirlendiği alandır.
Speed: Parçacıkların hız sınırının ayarlandığı kısımdır.
Dampen: Bir parçacığın hız sınırını aştığında uygulanacak olan azalma oranının belirlendiği alandır.
Drag: Parçacıkların hızlarına uygulanacak olan sürtünmenin belirlendiği kısımdır.
Multiply by Size: Bu seçenek işaretlenirse parçacıklardan daha büyük olanlar sürtünmeden daha fazla etkilenirler.
Multiply by Velocity: Bu seçenek etkinleştirildiğinde daha hızlı parçacıklar sürtünmeden daha fazla etkilenirler.
Inherit Velocity Modülü Özellikleri

Parçacık hızlarının ana objenin hızına nasıl tepki vereceğinin belirlendiği kısımdır.
Örneğin bir uçak objesine bir parçacık efekti eklediniz. Uçak hızlandıktan sonra kanatlarından çıkan iz efektinin kendi hızına mı yoksa uçak hızına mı göre şekilleneceğini belirleyebilmeniz için kullanabiliriz.
Mode: Mode kısmından hesaplamanın nasıl yapılacağını belirleriz. Current ve Initial şeklinde iki alt seçeneği bulunmaktadır.
- Current: Bağlı olunan objenin hızı oyundaki her karede parçacıklara uygulanacaktır. Yani obje yavaşlarsa parçacıklarda yavaşlar ya da tam tersi şekilde beraber hızlanırlar.
- Initial: Objenin hızı her parçacık oluştuğunda sadece bir kez uygulanacaktır. Parçacık oluştuktan sonra objenin hızının azalması ya da artması parçacığı etkilemeyecektir.
Multiplier: Objeden miras alınacak olan hızın oranının belirlendiği alandır.
Force Over Lifetime Modülü Ayarları

Parçacıklara ekstra bir kuvvet belirlemek için kullanılan modüldür. Örneğin rüzgarlı bir havada parçacıkların hangi eksende nasıl bir değişiklik göstereceğini belirleyebiliriz.
X,Y,Z: Parçacıklara uygulanacak olan kuvvetin hangi eksenden olacağının belirlendiği kısımdır.
Space: Kuvvetin kendi ekseninde mi yoksa oyun dünyasının eksenine göre mi uygulanacağının belirlendiği alandır.
Color Over Lifetime Modülü
Color Over Lifetime modülü ile bir parçacığın yaşam süresi boyunca renklerinin nasıl değişeceğini belirleyebiliriz.
“Color” isminde tek bir tanımlama kısmı bulunmaktadır. Bu alandan da tahmin ettiğiniz üzere renkleri seçebiliyoruz. Gradient seçim alanında ilk seçtiğiniz renk parçacıkların ilk çıktıklarındaki ve son seçtiğiniz renk ise parçacıkların yaşam sürelerinin sonunda oldukları renktir.

Örneğin yukarıdaki gibi bir seçim yaparsanız parçacıklar kırmızı renkte başlar ve zaman içerisinde matlaşarak en sonundan saydam duruma geçerler.
Color By Speed Modülü
Parçacık renklerinin, parçacık hızına göre ayarlanması “Color By Speed” modülünden yapılmaktadır.
Color: Belirtilen hız aralığında parçacıkların renklerinin belirlendiği alandır.
Speed Range: En düşük ve en yüksek hız aralıklarının belirlendiği kısımdır.
Örneğin yanan bir binada oluşan kıvılcımlar üst katlarda daha fazla oksijene maruz kaldığında daha parlak yanarlar. Bu tarz durumlar için bu ayarı kullanabilirsiniz.
Size over Lifetime Modülü
Size over Lifetime modülü ile oluşan parçacıkların X,Y ve Z eksenlerinde boyutlarının değişimi için bir eğri grafiği oluşturmamızı sağlar.
Separate Axes: Parçacık boyutunu X,Y ve Z eksenlerde belirtilen oranda bir eğri oluşturmak için işaretlenir. Eğer işaretlenmezse tüm eksenlerde geçerli olan bir eğri oluşturmuş olunur.
Size: Parçacık boyutunun tüm eksenlerde doğru orantılı olarak yaşam döngüsü boyunca nasıl değişeceğinin belirlendiği kısımdır.
Size by Speed Modülü
Parçacıkların hızlarına göre boyutlarının değişmesi için “Size by Speed” modülü kullanılmaktadır. Örneğin bir patlama anında küçük parçaların daha hızlı gitmesi istendiğinde kullanılan bir ayardır.
Separate Axes: Parçacık boyutunu hıza göre şekillendirmek için tüm eksenlerde aynı oranda işlem yapılması için seçili olmaması gerekir. Her eksende farklı işlem yapılacaksa kutucuk işaretleyerek alt seçeneklerin açılması sağlanır.
Size: Belirtilen hız aralığında parçacık boyutunun ayarlanacağı kısım.
Speed Range: En yüksek ve en düşük hızların belirlendi kısımdır.
Rotation Over Lifetime Modülü
Parçacıkların yaşam döngüleri boyunca derece cinsinden dönme işlemlerinin hesaplanması için kullanılır. Yine patlama örneğindeki gibi tüm savrulan parçaların aynı şekilde saçılması yerine belirlenen rotasyon doğrultusunda saçılmasını sağlayabiliriz.
Separate Axes: Tek bir eksen ya da tüm eksenlerde ayrı ayrı işlem yapmak için kullanılan ayardır.
Angular Velocity: Saniye cinsinden ne kadar bir açıyla döneceğinin hesaplandığı kısımdır.
Rotation By Speed Modülü
“Rotation Over Lifetime” modülüyle patlama anında rotasyon verdikten sonra küçük parçaların daha hızlı dönmesini ve büyük parçaların daha yavaş dönmesini sağlayabileceğimiz kısımdır.
Separate Axes ve Angular Velocity ayarları diğer modüllerdeki aynı mantıkla çalışmaktadır.
Noise Modülü

Noise modülü ile parçacıklara türbülans eklenebilmektedir. Örnek olarak bir yangında saçılan közlerin hareketlerini ya da bir hortumun içinde kalanların havada dönmesini düşünebilirsiniz.
Separate Axes: Uygulanacak gücü eksenlere göre belirlemek için kullanılır.
Strength: Uygulanacak gücün etkisinin belirlendiği yapıdır. Daha yüksek değer verilmesi parçacıkların daha hızlı hareket etmesini sağlayacaktır.
Frequency: Parçacıkların uygulanan güce göre hareketlerini ne sıklıkta değiştireceklerini ve bu değişikliklerin ne kadar ani olacağını belirlemek için kullanılan ayardır.
Scroll Speed: Parçacık hareketlerinin daha karışık bir yapıda olması için kullanılan ayardır.
Quality: Performans maliyetlerini azaltmak için kullanılan ayardır.
Position Amount: Etki eden gücün, parçacık hareketlerinin pozisyonlarına olan etkinin hesaplaması için kullanılan bir çarpan değeridir.
Rotation Amount: Etki eden gücün, parçacık dönüşlerine olan etkisinin hesaplanması için kullanılan bir çarpan değeridir.
Size Amount: Etki eden gücün, parçacık boyutlarına olan etkisinin hesaplanması için kullanılan bir çarpan değeridir.
Texture Sheet Animation Modülü
Texture Sheet Animation modülü, dokuyu animasyon kareleri gibi ayrı alt görüntüler oluşturmamızı sağlar.
Tiles: Dokuyu X ve Y eksenlerine göre bölünecek karo sayısının belirlendiği kısımdır.
Animation: Animasyon modunun belirlendiği alandır. “Whole Sheet” ve “Single Row” seçenekleri bulunmaktadır. “Single Row” seçeneği ile her satır bir animasyon dizisini temsil etmektedir.
Time Mode: Parçacıkların animasyondaki kareleri nasıl işleyeceğinin belirlendiği alandır.
Diğer modüllerle ilgili ayarlarda zamanla eklenecektir arkadaşlar. Takipte kalabilirsiniz.
Şimdi ise bir efektin nasıl yapıldığını anlamamız için bir alev efekti yapmaya çalışacağız.
Unity ile 3D Alev Efekti Yapımı
Öncelikle Unity geliştirici ekibi tarafından geliştirilen ve ücretsiz olarak Asset Store sitesinde yer alan hazır efektleri bu adresten oyununuza ekleyerek kullanabilirsiniz. Biz de buradaki alev efektlerinden birini kendi başımıza yapmaya çalışacağız.
Şimdi her çalışmada olduğu gibi kafamızda planlama yapmamız gerekiyor. Örneğin kafanızda bir alevi canlandırabilir ya da internette alev içeren bir video izleyerek, nelere ihtiyacımız olduğunu belirlememiz gerekiyor.
Yanan nesnenin türüne göre alev yapısı değişecektir, bu yüzden biz kampta yanan bir odun ateşini düşüneceğiz. Peki bu kamp ateşi için nelere ihtiyacımız var.
- Alev yani kırmızı-turuncu alan için bir efekte ihtiyacımız var.
- Alevin üstünde tüten duman için bir efekte ihtiyacımız var.
- Ateş yanarken etrafa saçılan kıvılcımlar için bir efekte ihtiyacımız var.
Yani anlayacağınız gibi gerçekçi bir alev efekti yapmamız için 3 farklı efekte ihtiyacınız oluyor hatta bazı durumlarda çok daha fazlasına. Eğer çok çalışırsanız ve biraz da yeteneğiniz varsa güzel çalışmalar ortaya çıkarabilirsiniz.
Şimdi yapacağımız alev efektinde biraz kolaya kaçarak kıvılcımları eklemeyeceğiz. Çalışma sonrasındaki sonuç ise aşağıdaki gibi olacaktır.
O zaman başlıyoruz. İlk olarak Alev kısmını oluşturalım.
Alev Efekti
İlk olarak sahneye bir “Create Epmty” ekleyerek “Inspector” alanından “Particle System” efektini ekliyoruz.
Sonrasında efekte alev yapısından kullanacağımız bir materyal atamak olacak. Bunun için “Renderer” modülü altında yer alan “Material” kısmından bu bağlantıda yer alan materyali indirip, seçebilirsiniz.

“Renderer” ayarlarını yukarıdaki gibi yaptığınızda videodaki gibi bir görüntü elde edeceksiniz.

Şimdi alev için parçacıkların yaşam süresi, döngü durumu, başlangıç zamanı, rengi, hızı gibi ayarları genel ayarlar kısmında yukarıdaki görseldeki gibi değiştirelim. Değişiklik sonrası aşağıdaki gibi bir görüntü elde etmemiz gerekiyor.

Efektin hızını ve şeklini ayarlamak için yukarıda yer alan “Emission” ve “Shape” ayarları gibi düzenliyoruz.

Parçacıkların doğrusal hızlarını istediğimiz koordinata göre hareket ettirmek için “Velocity over Lifetime” modülü ayarlarını yukarıdaki gibi yapıyoruz.

Parçacıkların yaşam döngüsünde renklerinin nasıl değişeceğini belirlemek için “Color over Lifetime” alanından yukarıdaki resimdeki gibi renkleri düzenliyoruz.

Parçacıkların yaşam döngüsü boyunca boyutlarının nasıl değişeceğini “Size over Lifetime” modülünden yukarıdaki gibi değiştiriyoruz.

“Texture Sheet Animation” modülü ile dokuyu, animasyon kareleri gibi işlemek için yukarıdaki ayarları uyguluyoruz.
Objemizin X eksenini “-90” dereceye çekerek yukarı doğru şekilde alevlenmesi için pozisyonunu düzelttikten sonra artık gerçekçi bir alev görüntüsü elde etmiş olduk.
Duman Efekti
Şimdi duman efekti için sahneye bir “Create Epmty” ekleyerek, alev efektinin altına alt obje olarak ekliyoruz. Sonrasında “Particle System” efektini ekleyerek başlıyoruz.

Alev efektinde olduğu gibi “Renderer” modülünde “Material” eklemek için bu adresteki materyali ekliyoruz ve yukarıdaki resimdeki ayarları gerçekleştiriyoruz.

Duman parçacıklarının yaşam süresi, döngü durumu, başlangıç zamanı, rengi, hızı gibi ayarları genel ayarlar kısmından düzenliyoruz.

“Emission“, “Shape” ve “Velocity over Lifetime” modüllerinde yukarıdaki ayarları uyguladığınızda aşağıdaki gibi bir görüntü oluşturacaktır.

“Color over Lifetime“, “Size over Lifetime“, “Rotatiın over Lifetime” ve “Rotation by Speed” modüllerinde yukarıdaki ayarları gerçekleştiriyoruz.
Alev ve Duman efektlerimizin karışımı hazır arkadaşlar. Eğer ayarları doğru girdiyseniz aşağıdaki görüntüye benzer bir yapı elde etmiş olmanız gerekiyor.
Efektler konusu gerçekten de zaman harcanması gereken bir bölüm arkadaşlar. Biz oyunumuzda hazır ücretsiz ya da ücretli efektleri kullanacağız ama kendi efektlerinizi kendiniz yapmak istiyorsanız hazır efektleri indirip, nasıl yapıldığını incelemenizi tavsiye edebilirim.
Sonraki dersimiz olan Unity UI yani arayüz tasarımı dersine aşağıdaki bağlantıdan erişebilirsiniz.
kodlama yapmaya çok hevesliyim fakat sistemim buna el vermiyor öneriniz varmı
Merhaba Ali,
Aslında sadece kodlama öğrenmek istiyorsan orta seviyenin altında bir PC bile işine yarayacaktır. Hatta bazen bir video ve bir not defteri belki de.
Fakat oyun yapmak istiyorsan, işin içine render, modelleme, animasyon durumları girince maalesef iyi bir sisteme sahip olman gerekiyor. Eğer gerçekten hevesliysen ya da bir gelecek kurmak istiyorsan kendin için birikim yapmanı önerebilirim.
Bol şans.
Bilgiler için teşekkür ederim değerli site.Bu arada noisenin açıklamasında yazım yanlışı vardır:)
Merhaba Enes, düşüncelerin ve özellikle yazım hatasını söylediğin için çok teşekkür ederim 🙂
Ne damak asıl ben teşekkür ederim,saygılar.
Ben bir sorunu çözemiyorum ana karakterim önündeki taşa değdiğinde taş yok oluyor ancak buna partical systemde hazırladığım parçalanma efektimi eklemeye çalıştığımda olmuyor taşa değdiğinde taş yok olurken o efekt de çalışsın istiyorum ama kodunu bir türlü yazamıyorum anlamadım bu Partical mantığını.
Merhaba Şükran, Konu anlatımında Stop Action kısmına göz atabilirsin. Örneğin buradaki Destroy seçeneği ile otomatik olarak efektin bağlı olduğu objenin silinmesini sağlayabilirsin.
Merhaba bu sayfayı pdf olarak indiremez miyiz?
Direk bir özellik yok maalesef. Google’a Webpage to PDF yazarsanız, online olarak çevirebilecek siteler bulabilirsiniz.
Yanlış hatırlamıyorsam particle ı eklenen gameobject hareket ettirildiğinde particle efect oluşturuyor. Ama tabi önceki konumdan yeni konum arasındaki mesafeyi ölçüp oluşturuyor. Örnek : Menü de bir mouse için nesne oluşturulabilir. Mouse hareket edince particle efect oluşur