Bu sayfa, Maya’da Ateş Hortumu simülasyonu oluşturmaya dair bir eğitim sunmaktadır.
Genel Bakış #
Bu sayfadaki talimatlar, bir Ateş Hortumu simülasyonu kurma sürecinde size yol gösterir.
Ünitelerin Kurulumu #
Ölçek, herhangi bir simülasyonun davranışı için çok önemlidir. Simülatörün gerçek dünyadaki birim cinsinden boyutu , simülasyon dinamikleri için önemlidir. Büyük ölçekli simülasyonlar daha yavaş hareket ediyormuş gibi görünürken, orta ve küçük ölçekli simülasyonlarda çok fazla hareketlilik vardır. Simülatörünüzü oluştururken, Simülatörün gerçek dünyadaki boyutlarının gösterildiği Izgara (Grid) seçeneğini kontrol etmelisiniz. Sahnedeki Simülatörün boyutu değiştirilemiyorsa, Izgara (Grid) seçeneğindeki Sahne Ölçeği (Scene Scale) seçeneğini değiştirerek çözücüyü ölçeğin daha büyük veya daha küçük olduğu gibi çalışacak şekilde kandırabilirsiniz .
Pencere -> Ayarlar ve Tercihler -> Tercihler yolunu izleyin .
Ayarlar sekmesinde, Çalışma Birimleri’ni santimetre olarak ayarlayın .

Zaman Kaydırıcısı sekmesinde , Oynatma Hızını Her Karede Oynat ve Maksimum Oynatma Hızını Gerçek Zamanlı [24fps] olarak ayarlayın .
Maya, “Her kareyi oynat” seçeneği ayarlanmadığı sürece, maksimum oynatma hızına ulaşmak için önizleme sırasında kare atlayabilir .

Eğri Akışı Aracı Değişikliği Oluşturma #
Bu eğitimde ilerlemek için, parçacık kurulumunu oluşturmaktan sorumlu Maya komut dosyası dosyasını değiştirmeniz gerekiyor. Autodesk, aracı nParticles kullanacak şekilde güncellemediği için, dosyada değişiklikler yapılması gerekiyor.
Maya kurulum klasörünüze gidin (örneğin, C:\Program Files\Autodesk\Maya2017\scripts\others) ve flowAlongCurves.mel dosyasını bulun. `$resultArray[] = `particle -name ($setGroupName+”_particle”)`;` satırını
şu satırla değiştirin: `$resultArray[] = `nParticle -name ($setGroupName+”_particle”)`;`
Maya açıksa, değişikliklerin geçerli olması için yeniden başlatın.

Eğriler #
Üstten görünümden, X ekseni boyunca düz bir eğri çizin.

Eğriler -> Eğriyi Yeniden Oluştur seçeneğine gidin ve Aralık Sayısını 40 olarak ayarlayın.
Not: Eğer kasırganızda daha az bobin olmasını tercih ederseniz, bobin sayısını 20 veya 30’a düşürün.

Eğriler -> Kıvrım (seçenekler) bölümüne gidin. Kıvrım Miktarı ve Frekans değerlerini sırasıyla 2 ve 0,7 olarak ayarlayın.
Kıvrım Miktarı,
seçilen eğrilerin her bir segmentinin ne kadar kıvrılacağını belirler. Kıvrım Miktarı ne kadar yüksek olursa, etki o kadar büyük olur. Kıvrım Miktarı her bir segmenti etkilediği için, etki az sayıda CV’ye sahip bir eğriye göre çok sayıda CV’ye sahip bir eğride daha büyük olacaktır.
Kıvrılma Frekansı
Seçilen eğrilerin kaç kıvrıma katlanacağını belirler.

Eğriyi Z ekseninde döndürün ve orijine yerleştirin.

Vertex moduna geçin ve B tuşuna basarak Yumuşak Seçimi etkinleştirin. Eğriyi huni şeklini alacak şekilde biçimlendirin.
Şekle ek rastgelelik katmak için, bu sefer yüksek Frekans ve çok düşük Miktar kullanarak Kıvrım aracını tekrar kullanabilirsiniz.

Eğriyi curve_orig_01 olarak yeniden adlandırın ve gizleyin. Ardından, bu eğrinin 3 kopyasını oluşturun, yeniden adlandırın ve her birini bir öncekine göre Y ekseni boyunca 120 derece döndürün.
Dönüşümleri dondurun ve eğriler üzerindeki geçmişi silin.
Eğrileri gruplandırın ve grubu smoke_curves_grp olarak yeniden adlandırın.

nParçacık Simülasyonu #
3 eğriyi seçin ve Efektler -> Akış -> Eğri Akışı Oluştur (seçenekler) bölümüne gidin:
Kontrol segmenti sayısını 10, kontrol alt segmenti sayısını ise 3 olarak ayarlayın.
Parçacık yayılımını ve hızını ayarlayabileceğiniz akış yolundaki yer sayısını belirler. Daha yüksek sayılar, yayılım ve hız üzerinde daha hassas manipülatör kontrolü sağlar. Daha düşük sayılar ise oynatma hızını artırır. Oluşturulduktan sonra bu seçeneği değiştiremezsiniz .
Alt segment sayısı,
segmentler arasındaki segment sayısını ayarlar. Daha yüksek sayılar, parçacıkların eğriyi daha hassas bir şekilde takip etmesine neden olur. Daha düşük sayılar ise oynatma hızını artırır. Oluşturulduktan sonra bu seçeneği değiştiremezsiniz.

Curve Flow aracı, her biri bir parçacık sistemi, bir yayıcı ve bazı kontrol nesneleri içeren 3 grup düğümü oluşturur.
Akış grubu düğümleri ayrıca nParçacıkların Emisyon Oranı, Ömrü ve Hedef Ağırlığı için kontroller içerir. nParçacık simülasyonundan memnun kalana kadar bunlarla oynamayı unutmayın.

Birkaç önemli not:
– Düzenlemelerinizin etkisine odaklanabilmek için Flow düğümlerinden 2 tanesini gizleyin.
– Parçacıkların huni şeklinin hacmini doldurabilmesi için kontrol dairelerini büyütün. Duman, dış kenardaki ince bir tabaka yerine tüm hacim boyunca oluşturulursa, Phoenix FD simülasyonu çok daha doğal görünecektir.
– Parçacıklar huninin üst yarısına ulaştıklarında daha yavaş hareket etmeleri için son 5 dairenin Konumlandırıcı pozisyonunu düzenleyin. – Sahne
ölçeğinize göre parçacıkların Ömrünü artırın. Daha yüksek ömür, parçacıkların daha yavaş hareket edeceği ve huninin tepesine ulaşmalarının daha uzun süreceği anlamına gelir.
– Hedef Ağırlığı ile oynayın. Bunu ~0,8-0,9’a düşürmek ilginç şekiller verebilir.
Diğer 2 Flow grubu için de aynısını yapmayı unutmayın .

Şekil Kontrolleri #
Kasırganın şekli ve konumunu daha kolay kontrol etmek için basit bir Spline IK donanımı kullanılır.
İskelet -> Eklem Oluştur’a gidin ve Yan görünümden 7 eklemli bir zincir oluşturun. Oluşturduğunuz kasırga bu örnektekinden daha uzun veya daha inceyse, daha fazla eklem kullanmayı düşünün.
Bağlantı noktalarının adlarını tornado_jnt_0* olarak değiştirin.

İskelet -> IK Spline Handle Oluştur seçeneğine gidin. tornado_jnt_01 ve ardından tornado_jnt_08’i seçin. Otomatik olarak bir spline IK kurulumu oluşturulacaktır.
Oluşturulan düğümleri effector_spline_IK, spline_IK_handle ve spline_IK_curve olarak yeniden adlandırın.

Artık spline_IK_curve’ün köşelerini dönüştürerek eklem zincirini deforme edebilmelisiniz. Ancak, bu eklem deformasyonlarının eğrileri de yönlendirmesini istiyorsunuz.
Bu nedenle, eğrileri eklem zincirine bağlamanız gerekiyor.
Eğrileri seçin, ardından eklemleri (tek tek ve zincirdeki son eklemi SEÇMEYİN) seçin ve Skin -> Bind Skin (seçenekler) bölümüne gidin:
– Bağlama yeri: Seçilen Eklemler olarak ayarlayın
– Maksimum etki sayısını 2 olarak ayarlayın

Spline_IK_curve üzerindeki köşeleri seçip hareket ettirmek, huninin tamamını deforme etmeli ve parçacık simülasyonu bu deforme olmuş eğrileri takip etmelidir.

Bu köşeleri kolayca düzenlemek için, tek bir köşeyi seçip Deform -> Kümeleme yolunu izleyerek her biri için bir küme oluşturun.
Oluşturulan kümeleri alttan üste doğru tornado_cluster_0* olarak yeniden adlandırın.

Bu kümeleri doğrudan dönüştürerek kasırganın hunisini düzenleyebilir veya kontrol nesnelerinin altına bağlayabilirsiniz.
Bu örnekte, kontrol nesneleri olarak basit NURBS daireleri kullanılmıştır. Kontrol hiyerarşisi şu şekilde görünmektedir:
Küme nesnelerini kontrol nesnelerinin altına yerleştirmeyi seçerseniz, kontrol nesnelerini köşe noktalarına sabitledikten sonra dönüşümleri dondurduğunuzdan emin olun.

Ortamı temizlemek için, her Akış düğümünün altındaki “ControlObjects” gruplarını gizleyin.
Küme düğümlerini gizleyin.
Her şeyi bir araya gruplandırın ve grubu tornado_setup_grp olarak yeniden adlandırın.
İsteğe bağlı olarak, Öznitelik Düzenleyici -> Görüntü -> Çizim Geçersiz Kılmaları -> Geçersiz Kılmaları Etkinleştir bölümünden kontrol eğrilerinin rengini ayarlayabilirsiniz.
Akış gruplarını Smoke_Flow_0* olarak yeniden adlandırın.

Phoenix FD Kurulumu #
Devam etmeden önce, her bir Smoke_Flow düğümündeki Emisyon Oranını, huninin hacmini dolduracak kadar yüksek bir değere yükseltin.
Bu örnekte, her bir emisyon kaynağı için Emisyon Oranı 200’dür.

Ayrıca, kasırgayı döndürmek için Spline IK tutamacını da kullanabilirsiniz.
Spline IK tutamacını seçin, Öznitelik Düzenleyici’ye gidin ve IK Çözücü Öznitelikleri altında, Roll alanına sağ tıklayın. Yeni İfade Oluştur’u seçin ve aşağıdaki kodu kullanın:
spline_IK_handle.roll = frame;

Duman Kaynağı #
Bir Phoenix FD Yangın/Duman Kaynağı oluşturun ve adını phx_smoke_source_01 olarak değiştirin.
Otomatik olarak oluşturulan seti phx_smoke_source_set olarak yeniden adlandırın.
Outliner’da, phx_smoke_source_set içindeki Flow*_particle düğümlerini orta fare tuşuyla sürükleyin.
Emisyon Modunu Hacim Fırçası olarak ayarlayın ve Sıcaklığı devre dışı bırakın.
Özel Parçacık Boyutunu 15 olarak ayarlayın.
Deşarj alanına sağ tıklayın ve Yeni İfade Oluştur’u seçin. İfade alanına aşağıdakileri ekleyin ve Düzenle’ye tıklayın:
discharge = rand(30, 70);
Hareket Hızı özelliğini etkinleştirin ve şimdilik değeri 1 olarak bırakın.

Konteyner Özellikleri #
Bir Phoenix FD Simülatörü oluşturun ve orijine yerleştirin.
Adını phx_simulator_01 olarak değiştirin ve oluşturulan setleri phx_force_preview_set, phx_lgt_set ve phx_sim_set olarak adlandırın.

Öznitelik Düzenleyicisinde, simülatörün Simülasyon sekmesinde, “Başlangıç Karesinden Önce Dinamikleri Atla” seçeneğinin işaretini kaldırın. Maya’nın nDynamics özelliği, her bir karenin sırayla oynatılmasına bağlıdır.

Izgara sekmesinde, Birimler ve Sahne Ölçeğini buna göre ayarlayın. Bu örnekte, kasırganın yaklaşık 300 metre yüksekliğinde olduğu varsayılmıştır.
Uyarlanabilir Izgarayı Duman olarak ve Eşik değerini 0,001 olarak ayarlayın. Bu, ızgaranın Duman kanalının değerine göre genişlemesini sağlar.

Dinamikler altında, simülasyonu yavaşlatmak ve daha büyük görünmesini sağlamak için Zaman Ölçeğini 0,7’ye düşürün.
Duman Dağılımını 0,3 olarak ayarlayın. Bu değeri kişisel tercihinize göre düzenleyebilirsiniz. Daha yüksek duman dağılımı, dumanın ızgaranın voksel’lerinden geçerken daha hızlı sönmesine neden olur.
Soğutmayı 1 olarak ayarlayın. Simülasyona Ateş kaynağı eklediğimizde, bu parametre sıcaklık alanının soğuma hızını etkileyecektir.
Duman ve Sıcaklık Yüzeyi ve Büyük Ölçek için Girdap değerlerini artırın. Büyük Girdap parametreleri, simülasyonunuzdaki girdap hareketini artırarak ayrıntılı ve ilgi çekici bir görünüm kazandırır.
Koruma Yöntemini Tamponlu olarak ayarlayın. Tamponlu yöntem genellikle türbülanslı yangın simülasyonları için tercih edilir, ancak kasırgalar inanılmaz derecede kaotik olma eğiliminde olduğundan, bu yöntemle üretilen keskin ve “parçalanmış” görünüm işinizi görecektir.
Kalite değerini 100’e yükseltin. Basitçe söylemek gerekirse, her voksel için Koruma hesaplanırken, Kalite parametresi ne kadar yüksekse, hesaplamalar sırasında o kadar çok komşu voksel dikkate alınacaktır. Kasırganın iyi tanımlanmış bir huni şekli olduğundan, şeklin aynı kalmasını sağlamak için Kaliteyi artırıyoruz.
Konveksiyon Yöntemini İleri Aktarım olarak ayarlayın – Çoklu Geçiş Yönteminden biraz daha hızlıdır ve bu simülasyonun amaçları için gayet iyi olacaktır.
Kare Başına Adım sayısını 1’e düşürün.

Sahne Etkileşimi sekmesinde, Hariç Tut Listesi ve Gizli Nesneleri Hariç Tut seçeneklerinin işaretini kaldırın.
Varsayılan olarak, Phoenix FD tüm görünür nesneleri simülasyona ekler. Sahnedeki her şeyi takip etmek zahmetli olabilir ve ayrıca simülasyonda sorun giderme oldukça sinir bozucu hale gelebilir.
Hangi nesnelerin simülasyon sırasında kullanılacağını phx_sim_set’e ekleyerek açıkça belirtmek çok daha kolaydır.

Outliner’da orta fare tuşuna basılı tutarak sürükleyip bırakarak phx_smoke_source_01 öğesini phx_sim_set’e ekleyin.

Türbülans #
Phoenix FD menüsüne gidip -> Oluştur -> Türbülans yolunu izleyerek sahnenize bir Phoenix FD Türbülans düğümü ekleyin.
Türbülans düğümünü Outliner’da orta fare tuşuyla sürükleyerek phx_sim_set ve phx_force_preview_set’e yerleştirin.
Simülasyonunuz için en iyi sonuçları veren değerleri bulmak için denemeler yapmalısınız.
Bu örnekte, Güç 4, Boyut 10 ve Fraktal Derinlik 7 olarak ayarlanmıştır. Boyut parametresi gürültünün ölçeğini kontrol eder; daha büyük değerler daha büyük gürültü desenleri üretir.
Fraktal Derinliği pürüzlülük olarak düşünebilirsiniz; derinlik ne kadar yüksekse, gürültü alanında o kadar fazla detay bulunur.

Zorunlu önizleme etkinleştirildiğinde bu parametreleri ayarlamak daha kolay olabilir.
Bir kuvveti önizlemek için, onu simülatörünüzün phx_force_preview_set’ine eklemeniz ve simülatörün Önizleme sekmesinden Kuvvetleri etkinleştirmeniz gerekir (Etkinleştirilmişse GPU Önizlemesini devre dışı bırakın – aksi takdirde çalışmaz).

Türbülans yok
Türbülansla
Yol Takip Kuvveti #
Phoenix FD menüsünden -> Oluştur -> Yol İzle seçeneğine giderek bir Phoenix FD Yol İzle düğümü oluşturun.
Düğümü phx_pathFollow_01 olarak yeniden adlandırın ve simülasyonla etkileşime girebilmesi için phx_force_preview_set ve phx_sim_set’e ekleyin.
Yol Takip kuvveti, kuvvetin çalışacağı eğrileri ekleyebileceğiniz kendi kümesini oluşturur. Kümenin adını phx_pathFollow_set olarak değiştirin ve spline_IK_curve’ü ekleyin (bu, daha önce Spline IK Aracı tarafından oluşturulan eğridir). Yol Takip kuvveti tarafından oluşturulan hızlar artık kasırganın deformasyonlarını takip edecektir.
Yol Takip parametrelerinin değerleri tamamen size kalmış. Bu örnekte, Takip/Çekme/Dönme hızı sırasıyla 8, 400 ve -700 olarak ayarlanmıştır. Dönme hızının işareti yönü belirler.

Ayrıca, Yol İzleme kuvvetini phx_force_preview kümesine ekleyerek ve simülatörün Önizleme sekmesinden Kuvvet önizlemesi seçeneğini belirleyerek önizleyebilirsiniz.

Ateş Kaynağı #
Kasırga kaynaklı yangın için, ek bir eğri seti oluşturmak üzere yukarıdaki adımları izlemeniz yeterlidir. Parçacık Akışı aracını kullanın ve ardından eğrileri, tıpkı daha önce olduğu gibi, eklem zincirine uygulayın.
Orijinal eğriyi kopyalayın ve Y ekseninde 45 derece döndürerek öteleyin. Bir kopya daha oluşturun ve her iki eğriyi de gruplandırın. Eğrileri curve_fire_0* olarak, grubu ise fire_curves_grp olarak yeniden adlandırın.

Ateş eğrilerini seçin ve Efektler -> Akış -> Eğri Akışı Oluştur (seçenekler) bölümüne gidin. Akış grubu adı parametresine bir değer verdiğinizden emin olun – bu durumda, FireFlow.
Kontrol segmentlerinin ve alt segmentlerinin sayısını sırasıyla 10 ve 3 olarak ayarlayın.

Her bir FireFlow düğümünde, sahne gereksinimlerinize göre Yaşam Süresi (LifeSpan), Hedef Ağırlığı (Goal Weight) ve Emisyon Oranını (Emission Rate) ayarlayın.

Başka bir PhoenixFD Yangın/Duman Kaynağı oluşturun ve adını phx_fire_source_01 olarak değiştirin.
Oluşturulan veri setini phx_fire_source_set olarak yeniden adlandırın.
Ardından FireFlow parçacık düğümlerini phx_fire_source_set’e ekleyin.

Simülatörün bundan haberdar olması için phx_fire_source_01’i phx_sim_set’e ekleyin.

fire_source için Emit Modunu Volume Brush olarak ayarlayın ve Discharge parametresine aşağıdaki ifadeyi ekleyin:
deşarj = rand(1, 90);
Duman seçeneğinin işaretini kaldırın – bu simülasyon için zaten bir Duman kaynağı mevcut. Bunun yerine, ateş oluşturmak için konteynere Sıcaklık ve Yakıt kaynakları eklenmelidir.
Yakıt ve Hareket Hızı seçeneklerini etkinleştirin ve Hareket Hızı çarpanını 0,15 olarak ayarlayın.
Parçacık Şeklini Küre olarak ayarlayın, özel boyut. Özel Parçacık Boyutu sahne birimlerinde çalışır, bu nedenle 0,1 bu durumda 0,1 cm anlamına gelir.

Her şeyin doğru şekilde ayarlandığından emin olmak için Fuel önizlemesini etkinleştirip simülasyonu birkaç kare çalıştırmak isteyebilirsiniz.

Yakıt ve Yanma #
Artık her şey ayarlandığına göre, Phoenix FD Simülatörünün Yakıt sekmesine gidin ve Yanmayı Etkinleştir seçeneğini seçin. Bu, simülatörün duman ve sıcaklık üretmek için Yakıt kanalının içeriğini kullanmasına olanak tanır.
Enerji parametresi, yanan yakıttan açığa çıkan sıcaklık miktarını kontrol eder. Bu değer ne kadar yüksek olursa, alevler o kadar sıcak olur.
Yayılma parametresi, ayarlanması gereken diğer önemli parametredir; komşu vokseldeki yakıtın tutuşması için yeterince yüksek bir yayılma değeri gereklidir, bu da daha fazla yakıtı tutuşturmak için daha fazla sıcaklık üretir. Ancak bu değere dikkat edin; çok yüksek bir değer, yakıt alanında ilerleyen bir ateş yerine patlamaya neden olur.

Ekstra: Kasırga teçhizatına uzatma özelliği eklemek #
Kasırgayı uzatmak istiyorsanız, birkaç adım daha atmanız gerekiyor.
İlk olarak, spline_IK_curve’ü seçin ve Maya penceresinin sol alt köşesindeki MEL komut dosyası sekmesinde aşağıdaki kodu çalıştırın.
arclen -ch 1;
Bu, spline IK eğrisinin toplam uzunluğuna erişmek için kullanılabilen bir curveInfo1 düğümü oluşturur.

curveInfo1 düğümünü crvLen olarak yeniden adlandırın. (Düğüm yeniden adlandırıldıktan sonra ekran görüntüsündeki gibi görünecektir.)

tornado_jnt_02’yi seçin ve Öznitelik Düzenleyici’ye gidin. Translate X parametresine sağ tıklayın ve Yeni İfade Oluştur’u seçin. İfade Alanına aşağıdaki kodu ekleyin:
tornado_jnt_02.translateX = crvLen.arcLength / 7 ;
tornado_jnt_03.translateX = crvLen.arcLength / 7 ;
tornado_jnt_04.translateX = crvLen.arcLength / 7 ;
tornado_jnt_05.translateX = crvLen.arcLength / 7 ;
tornado_jnt_06.translateX = crvLen.arcLength / 7 ;
tornado_jnt_07.translateX = crvLen.arcLength / 7 ;
tornado_jnt_08.translateX = crvLen.arcLength / 7 ;
ArcLength parametresini zincirdeki eklem sayısına göre bölmeniz gerekiyor.

