Kısaca “Event Driven” yada güzel türkçemiz ile “Olaya Dayalı” parçacık sistemi olarak tanımlayabileceğimiz Particle Flow, parçacık efektlerine bakış açınızı bütünüyle değiştirebilecek güçte bir 3D Studio MAX eklentisi.
Peki nedir bu olaya dayanmak? Olay nedir? Bir durum mu var? Nasıl yani?... gibi sorular havada uçuşuyor, hissedebiliyorum. Hemen cevap olmaya çalışayım. Olay tabanlı demek, parçacıkların başına bir şey (!) geldiğinde onları başka bir komuta yönlendirmek demek. Mesela çarptıklarında, ömürleri bittiğinde, belli bir alana girdiklerinde... gibi. Normal bir parçacık sisteminde parçacıklar çarptığında, etki eden yer çekimi etkisi var ise yere düşerler veya geri sekerler. Ama olay tabanlı sistemde çarptıkları an yeni komutlar uygulayabiliyorsunuz. Avantajı nedir? Avantajı sayılamayacak kadar çok. Standart parçacık sistemleri ile kıyaslanamaz bile. Çünkü parçacık davranışlarına tam anlamı ile hükmedebiliyorsunuz. Kurduğunuz “Node Based” yapılar ile yap-boz oyuncaklar misali parçacık sistemleri inşa ediyorsunuz. Amanın o da ne? Yeni bir terim daha “Node Based”... Nedir? “Node Based” maalesef biz 3DSMax kullanıcılarına yabancı sayılabilecek bir yapı. Türkçe’ye “Modüler” yada “Kümesel” olarak çevrilebilir. Modülleri birbirine bağlayarak sistemler kuruyorsunuz. Aslında çok esnek ama hala tam alışabilmiş hissetmiyorum kendimi. Umarım siz daha çabuk ısınırsınız. Özellikle Houdini yazılımının yapısı tamamen modülerdir. Softimage XSI yeni modüler yapısı ICE ile ciddi bir devrim geçirmiştir. Maya’nın modüler Shader Network’ü ise dillere destandır. Lightwave’de güncel sürümlerinde modüler malzeme düzenleyicisine geçmiştir. 3DSMax için yazılmış “Node Joe” isimli eklenti ile modüler malzeme yapıları kurmak mümkün olmuştur. Örnekler arttırılabilir. Netice itibari ile 3DSMax kullanıcıları yabancısı olsada modüler yapılar oldukça verimlidir.
Neyse konuyu dağıtmayalım ve hemen uygulamaya geçelim. Particle Flow’u hiç kullanmamış okurlarımız için ansiklopedik anlatım yerine yaparken öğreneceğiz. Bu şekilde öğrenmenin daha kalıcı olduğuna inanıyorum.
OLUŞTURMAYA BAŞLIYORUZ
1) Sağ paneldeki Create / Geometry menüsünden Particle Systems’i işaretleyin. PF Source’ı seçip sahnede (bir kere tıklayıp, sürükleyerek) oluşturun. Oluşturma sonrasında zaman sürgüsünü kaydırdığınızda parçacık güruhunun karesel alandan aşağı doğru aktığını göreceksiniz. Önceki parçacık sistemlerini kullandıysanız dikkatinizi bir şeyin çekmesi lazım. Sağ paneldeki seçenekler Spray’den bile az sayıda. Nereden ayarlıyoruz onca şeyi? “Particle View” butonuna tıkladığınızda karşınıza gelen ekrandan.Parçacık akışımızı temsil ediyor. 2 tane modül görüyorsunuz. İlkinde parçacık sisteminin temel ayarları (PF Source 01) ikincisinde ise (Event 01) parçacıklara şekil ve yön veren komutlar yer alıyor. Bu komutları (Actions / Operators olarak te geçer) seçtiğinizde pencerenin sağ panelinde ilgili ayarlar gelecektir (CTRL tuşu ile tıklayarak birden fazla seçebilirsiniz)
Bu ayarlar biraz daha tanıdık değil mi? Pencerenin altında ise kullanabileceğiniz komutlar yer alıyor.
Tek tek değinirsek yerimiz yetmeyeceği için sadece kullandıklarımızı açıklayacağım.
2) Önce varolan modül ve akışımızı deşifre edelim. İlk modüldeki Render 01 sistemin belkemiğini oluşturur. Bu olmadan diğer modül ve komutlar bir işe yaramaz.
Böylece akışımızı tanımış olduk. İstediğiniz operatörü seçip, parametrelerini değiştirerek sonuçlarını gözlemleyin. Hangisinin ne işe yaradığını daha rahat kavrarsınız. Parçacık görünümü penceresini kapatarak sahnemizdeki diğer elementleri oluşturmaya devam edelim.
YARDIMCI NESNELER
3) Create / Shapes menüsünden Text’i seçin. Ön görünümde tıklayarak oluşturun. Ne yazacağınızı ve yazı tipi seçimini size bırakıyorum. Parçacıkları rahat görebilmek için dolgun bir yazı tipini tercih edebilirsiniz. Modify paneline geçin ve Extrude komutunu uygulayın. 10-15 birim civarında uygulayın. Başka bir yazı nesnesi daha oluşturun. Tercihen farklı bi yazı girin. Nesnelerin konumları size kalmış. Seçimin kolay olması için arka arkaya oluşturuyorum.4) Create / Space Warps panelindeki açılır menüden Deflectors’ü seçin. Deflector’ü işaretleyerek, üst görünümde yazı nesnelerini kapsayacak şekilde oluşturun. Yazı nesnesinin üstünde olacak şekilde konumlandırın. Deflector yardımcı nesnesi ile parçacıkların geçiş sırasını kontrol edeceğiz. Açılır menüden Forces’i seçin. Vortex ve Wind nesnelerini seçerek sahnenizde oluşturun. Wind ile parçacıklara ufak salınımlar vereceğiz. Vortex ile de hortumvari helezonik hareketler yapmalarını sağlayacağız. Konumları şimdilik pek öneml değil, sahnenizi karıştırmayacak ve seçim işlemlerini kolayca yapacağınız konumlar belirleyin.
PARÇACIK AYARLARI
5) Sahnemizin temel yapıtaşlarını oluşturmuş olduk. Parçacık sistemi ayarlarına geri dönelim. Üst menüdeki Graph Editors / Particle View ile parçacık görünümü penceresini açın. Alt kısımdaki operatör kütüphanesinden Position Object’e tıklayıp Event içindeki Position Icon’un üzerine sürükleyip bırakın. Sürükleme işlemi esnasında boşluğa bırakırsanız yeni bir Event oluşturulacaktır. Speed ve Rotation operatörlerini silin veya simgesine bir kere tıklayarak kapalı konuma getirin.
Operatör kütüphanesinden Collision’ı seçip, Event’ın içine / alt sıraya sürükleyip bırakın
Operatör kütüphanesinden Force’u seçip sürükleyin ve boş alana bırakın. Yeni bir Event oluşturdunuz. Collision operatörünün solundaki çıkıntının ucunu tıklayıp yeni Event’ın sol üstündeki çembere sürükleyin ve bırakın. İki Event arasında mavi bir çizgi çizilecektir. Böylece saptırıcıya değen parçacıkları bir sonraki Event’a aktardınız.
Force operatörünü seçin ve Space Warps bölümünden Add / By List yardımı ile Wind ile Vortex’i ekleyin. Artık bu Event’a aktarılan parçacıklar sahnenizden seçtiğiniz efektlerden etkilenecektir.
KAFA AYARI (İNCE AYARLAR)
6) Gelelim buraya kadar yaptıklarımızın ince ayarlarına. Birth operatörünü seçin ve Emit Start / Stop değerlerine 0 girin. Böylece parçacıklar ilk karede oluşumlarını tamamlayacaklar Vortex’i seçin. Yukarı bakacak şekilde çevirin ve yazı ile merkezleyin. Çünkü etkilenen parçacıklar simgeyi referans alarak hareket edecekler.
Buraya kadar eksiksiz yaptı iseniz, zaman sürgüsünü kaydırdığınızda hiçbir hareket olmaması lazım. İlk karede parçacıklar yazının içinde oluşacak ve öylece bekleyecekler. Nerede hareket? Hareket yok çünkü deflektöre değen parçacık yok. Parçacıklara ivme vermek istediğiniz zaman aralığında deflektör nesnesini yazının içinden geçecek şekilde hareketlendirin (mesela 0 ile 50’inci kareler arasında). Artık zaman sürgüsünü kaydırdığınızda, hareket eden deflektörün değdiği parçacıklar hareketlenecektir. Ama Vortex’in etkisinden ötürü merkezde aşırı toplanma yapabilirler. Bunun önüne geçmek için parçacık görünümde Force’u seçin ve Influence değerini 100 ile 200 arası bir değere indirin
KARTALLAR YÜKSEKTEN UÇAR
7) Parçacıklar uçuşup dağılıyorlar. Şimdi toplanmalarını sağlayalım. 3’üncü Event’ın en altına Age Test operatörü ekleyin Find Target operatörünü seçin. En üstteki açılır menüden Control by Time’ı seçin. Time=100, Variation=20 olacak şekilde değiştirin. Use Docking Speed’i etkinleştirin. Speed değerini 0’a düşürün. Target kısmından Mesh Object’i etkileştirip, 2’inci yazı nesnesini listeye ekleyin. böylece uçuşan parçacıkların belirlediğimiz zaman diliminde ve olabilecek en düşük hızda yazı nesnesine konmalarını sağladık.
Zaman sürgüsünü kaydırdığınızda hareketi görebilirsiniz. Ama konduktan sonrada hareketlerin devam edeceklerdir. Hareketlerini durdurmak için kütüphaneden Speed operatörünü boş alana sürükleyip bırakarak yeni bir event oluşturun. Find Target’ı yeni Event’a bağlayın
Eğer buraya kadar anlatılanları eksiksiz uygulayabildiniz ise zaman sürgüsünü çektiğinizde hareketi görmeniz gerekiyor. İlk önce deflektör hareket edip yazının içinden geçiyor. Deflektörün değdiği parçacıklar rüzgar ve girdaptan etkilenip rastgele ve dönerek hareket ediyorlar. Havada bir süre salındıktan sonra (girdiğimiz değerlere göre 100 kare) hedeflerine doğru yöneliyorlar ve konuyorlar (100 kare). Parçacık hareketi için toplam 250-300 kare yeterli olacaktır. Hareketlendirme ile ilgili yapacaklarımız buraya kadar. Gerisi size kalmış. Değerleri gerçek zamanlı değiştirerek istediğiniz sonuca kolayca ulaşabilirsiniz.
VER COŞKUYU
8) Birazda görselliği arttıralım. Yazı nesnelerini seçip sağ tıklayın ve Object Properties’i seçin. Rendering Control bölümündeki Renderable değerini etkisizleştirin. Böylece yazılar Render esnasında görünmeyecektir Cevap basit, çünkü sayıları çok az. Arttırmak oldukça kolay, sahneden PF Source’u seçin ve sağ panelden Quantitiy Multiplier / Render’ı 500 yapın.
Değeri istediğiniz kadar arttırabilirsiniz. Arttıkça Render işlemi yavaşlatacaktır ama çalışma performansınız düşmeyecektir. Yapılan işlem sadece parçacık sayısının hesaplama esnasında girdiğiniz değer katına çıkarılması.
Hemen alt kısımdaki System Management’i açın. Burada oldukça önemli bir parametre var. O da Integration Step. Viewport, çalışma ekranında, Render, hesaplama esnasındaki etkin değeri temsil ediyor. Peki anlamı ne? Kısaca parçacık konumunun doğru hesaplanması demek. Frame en yüksek değer (en hızlı hesaplanan), 1/8 Frame ve 1 Tick ise en düşük değerler (en yavaş hesaplanan). Bu değerler parçacık konumlarına etki ettikleri için farklı olduklarında çalışma ekranı ile Render arasında tutarsızlıklar olabilir. Bunun çözümü ikisinide aynı değere ayarlamaktır.
9) Görsellik ayarlarımıza parçacıkları zaman içerisinde renklendirerek son verelim. Yani parçacıklar doğumlarından ölümlerine kadar farklı renklere boyanacaklar. İlk iş olarak parçacık görünümünü açın. Kütüphaneden Material Dynamic isimli operatörü ana Event’ın yani ilk modül (yada kümenin) içine sürükleyip bırakın. Hemen altına Delete operatörü ekleyin.
Parçacıkların hepsi kaybolacaktır. Neden Delete kullanıyoruz? Çünkü parçacık yaşını baz alan malzeme etkileri parçacık yaşının hesaplanmasına ihtiyaç duyuyor ve Delete operatörü yerleştirene dek parçacıklar sonsuza kadar (!) yaşıyor. Delete operatörünü seçin ve By Particle Age’i etkinleştirip Life Span değerine 300 girin.
Böylece malzeme etkileri 300 kareyi referans alarak oluşacak. Malzeme düzenleyicisini açın. Malzemenin Diffuse kutucuğuna tıklayın ve açılan listeden Particle Age’i seçin. 3 tane renk kanalı karşınıza gelecektir. İlk renk parçacıkların doğum anını, ortadaki renk orta yaşı, son renkte ölüm anını (!) temsil ediyor. Renkleri bu doğrultuda istediğiniz gibi değiştirin. Renk kanallarının altındaki yüzdeleri değiştirerek parçacık yaşına etkilerini değiştirebilirsiniz.
Parçacık penceresininin diğer köşede açık olduğunu varsayıyorum. Material Dynamic operatörünü seçin. Değiştirdiğiniz malzemeyi düzenleyiciden Material Dynamic’in Assign Material kutucuğuna sürükleyip bırakın. Böylece malzemeyi parçacık sistemine atamış oldunuz. Gelelim ince ayarlara. Randomize Age Offset değerini etkinleştirip Max Offset değerini arttırarak parçacıkların renk geçişlerini farkılaştırabilirsiniz. Böylece oldukça renkli bir görüntü ortaya çıkacaktır.
SON DOKUNUŞLAR
10) Son rötuş olarak parçacıklara rastgele dönüş hareketi verelim. Parçacık penceresini açın. Kütüphaneden Spin operatörünü ana Event içine sürükleyip bırakın Parçacıklar gittikleri doğrultuda yuvarlanacaklar. Zaman sürgüsünü ileri geri kaydırın. Parçacıklar çalışma ekranında noktasal olarak görüntülendiği için etkiyi algılayamıyoruz. Problemi şöyle çözelim. Sistemdeki tüm Display operatörlerini seçin ve silin. Display operatörü her yeni Event ile birlikte otomatik oluşturulur. Sildikçe parçacıkların kaybolduğunu göreceksiniz. Paniklemeyin. Kütüphaneden yeni bir Display operatörünü ana Event içine sürükleyip bırakın. Type’ı Geometry olarak değiştirin. Artık parçacıklar kendi gerçek şekilleri ile betimlenecekler. Ve zaman sürgüsünü kaydırdığınızda parçacıkların gittikleri yöne göre yuvarlandıklarını göreceksiniz. Operatörlerin ana Event içinde olması demek sadece içinde bulunduğu Event’a değil tüm parçacık sistemine etki etmesini sağlar.
Parçacıkları görselleştirirken Motion Blur ve / veya Post Effects (mesela Glow) kullanarak görüntüyü coşturabilirsiniz. Bundan sonra ister parçacık boyutunu çok küçültüp, miktarını arttırıp kum fırtınası oluşturun, ister hortumun kulübeyi dağıtmasını canlandırın (mesela, Twister filmi). Kalabalık simülasyonu dahi yapabilirsiniz. Uçan kuş sürüleri, birbirini kovalayan ordular. Yapabilecekleriniz tamamen hayal gücünüz ile sınırlı.
Bu yazıdan önce Particle Flow’a sizi ürkütüyor ise, umarım okuduktan sonra korkunuzu yenmişsinizdir. Açıkçası PFlow ile çok erken tanışamadım. Orada öylece duruyordu ama korkuyordum resmen kullanmaya çünkü çok karışık görünüyordu. Ama kullandıkça açıldım ve operatörleri arka arkaya dizdikçe işlevlerini daha iyi kavradım. Artık PFlow’dan korkmuyorum, kafamdakileri yapabileceğimi biliyorum... o zaman yeni bir hedef belirlemek gerek... yeni hedefimiz Thinking Particles! İleri!
Bana özel bir durum mu yoksa her bilgisayar grafiği yazarı için geçerli mi bilemedim ama, üç boyut üzerine yazı yazmak başka bir konu üzerine yazmaktan 6 kat daha pahalıya mal oluyor. Ne yaptımsa bunun önüne geçemedim, diğer konuları 1-2 günde hızlıca bitirirken 3DSMax yazıları en az 4-5 ve yoğun mesai gerektiriyor. Üstüne üstlük esprili ve akıcı anlatımda yemiyor. Yaz babam yaz onlarca parametre onlarca değer, bir o kadar teknik terim. hepsinin ne anlama geldikleri. Yazıyı uzatamıyorum, bölemiyorum... defalarca kontrol ediyorum. İngilizce terimlere karşılık kullandığım türkçeleri karıştırıyorum, başa dönüp düzeltiyorum. Her adımda sağlamasını yapıyorum. 3DSMax üzerine yazmayı sevsemde sanırım AfterFX veya diğer konular yazmak daha mantıklı.
Unutmadan, 3 boyutlu yada boyutsuz bilgisayar grafiği hakkında aklınıza takılan her konuda bana yazmayı unutmayın (osmansafi@gmail.com). Bir sonraki yazıda görüşmek üzere esen kalın.
Hiç yorum yok:
Yorum Gönder