Birlikte öğreniyoruz...

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.

Unity Particle Effect Ayarları
Unity Particle Effect Ayarları

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.

parcacik efekti genel ayarlar

İ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.

Particle Effect Duration Ayarı

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.

Particle Effect Looping Ayarı

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.

Particle Effect Prewarm Ayarı

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.

Particle Effect Start Delay Ayarı

Start Lifetime

Oluşan parçacıkların sahnedeki yaşam süresini yani ne zaman kaybolacağını belirlediğimiz ayardır.

Particle Effect Start Lifetime Ayarı

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.

Particle Effect Start Speed Ayarı

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.

Particle Effect 3D Start Size Ayarı

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.

Particle Effect Start Size Ayarı

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.

Particle Effect 3D Start Rotation Ayarı

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.

Particle Effect Start Rotation Ayarı

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.

Particle Effect Flip Rotation Ayarı

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.

Particle Effect Start Color Ayarı

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.

Particle Effect Gravity Modifier Ayarı

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.
Particle Effect Simulation Space Ayarı

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.

Particle Effect Simulation Speed Ayarı

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.

Particle Effect Max Particles Ayarı

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.

Particle Effect Rate over Time Ayarı

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.

Rate over Distance neden çalışmıyor?
0
Hızlı Yorum...x

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.
Particle Effect Bursts Ayarı

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.

Shape bölümü seçenekleri
Shape bölümü seçenekleri

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.

Particle Effect Shape Ayarı

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ı

Velocity over Lifetime
Velocity over Lifetime Seçenekleri

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ı

Limit Velocity Over Lifetime Seçenekleri
Limit Velocity Over Lifetime Seçenekleri

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

Inherit Velocity Seçenekleri
Inherit Velocity Seçenekleri

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ı

Force Over Lifetime Seçenekleri
Force Over Lifetime Seçenekleri

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.

Color Over Lifetime Modülü Renk Seçimi
Color Over Lifetime Modülü Renk Seçimi

Ö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ü Ayarları

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ü Ayarları
Noise Modülü Ayarları

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.

Unity Alev ve Duman Efekti Karışımı

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.

Unity Alev Efekti Renderer Ayarları
Unity Alev Efekti Renderer Ayarları

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

Alev Efekti Renderer Modülü Ayarları Sonrası Görünümü
Unity Alev Efekti Genel Ayarlar
Unity Alev Efekti Genel Ayarlar

Ş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.

Alev Efekti Genel Ayarları Sonrası Görünümü
unity alev efekti emission ve shape ayarlari
Unity Alev Efekti Emission ve Shape Ayarları

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

Alev Efekti Emission ve Shape Modülü Ayarları Sonrası Görünümü
Unity Alev Efekti Velocity over Lifetime Ayarları
Unity Alev Efekti Velocity over Lifetime Ayarları

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.

Alev Efekti Velocity over Lifetime Modülü Ayarları Sonrası Görünümü
Unity Alev Efekti Color over Lifetime Ayarları
Unity Alev Efekti Color over Lifetime Ayarları

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.

Alev Efekti Color over Lifetime Modülü Ayarları Sonrası Görünümü
Unity Alev Efekti Size over Lifetime Ayarları
Unity Alev Efekti Size over Lifetime Ayarları

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.

Alev Efekti Size over Lifetime Modülü Ayarları Sonrası Görünümü
Unity Alev Efekti Texture Sheet Animation Ayarları
Unity Alev Efekti Texture Sheet Animation Ayarları

Texture Sheet Animation” modülü ile dokuyu, animasyon kareleri gibi işlemek için yukarıdaki ayarları uyguluyoruz.

Alev Efekti Texture Sheet Animation Modülü Ayarları Sonrası Görünümü

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.

unity duman efekti renderer ayarlari
Unity Duman Efekti Renderer Ayarları

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 Efekti Renderer Modülü Ayarları Sonrası Görünümü
Unity Duman Efekti Genel Ayarlar
Unity Duman Efekti Genel Ayarlar

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.

Duman Efekti Genel Ayarları Sonrası Görünümü
Unity Alev Efekti Emission, Shape ve Velocity over Lifetime Ayarları
Unity Duman Efekti Emission, Shape ve Velocity over Lifetime Ayarları

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.

Unity Duman Efekti Emission, Shape ve Velocity over Lifetime Modülü Sonrası Görünümü
Duman Efekti Modül Ayarları
Duman Efekti Modül Ayarları

Color over Lifetime“, “Size over Lifetime“, “Rotatiın over Lifetime” ve “Rotation by Speed” modüllerinde yukarıdaki ayarları gerçekleştiriyoruz.

Unity Duman Efekti Sonuçları

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.