16 Nisan 2012 Pazartesi

Softimage ICE Ders Notları - 03 - Karda Ayak İzi


Merhaba,
Bu derste karda ayak izi simulasyonu yapacağız.

Şöyle bir sahne ile başlıyoruz.


Videoda da görüldüğü, gridimizin yoğunluğu biraz fazla. 100 x 100 subdivision değerine sahip bir gridimiz var ki mümkün olduğu kadar ayak izi belli olsun.

Grid'i seçip ICE Tree/Create/Simulated ICE tree diyoruz. Normal ICE Tree kullanmamamızın sebebi sahnenin animasyon içermesi. Grid'in her karede nasıl bir deformasyona uğrayacağını ancak Simulated ICE Tree kullanarak elde edebiliyoruz.

Şimdi bize bu animsyonu yapmak için neler lazım ona bakalım.


  1. Ayağın gridin neresinde olduğunu kontrol etmemiz gerekiyor.
  2. Eğer ayak gridin içinde ise grid'in vertexlerinin ayağın vertexlerine göre kendilerini ayarlamaları gerekiyor.
  3. Ayağa uzak olan vertexlerin kendi pozisyonlarını korumaları gerekiyor.
Ice Tree'nin arama kısmına "test inside geometry" yazıyoruz ve çıkan nodu ICE Tree'ye alıyoruz. Bu node'un geometry kısmına hangi objenin onun içinde olduğunu belirmemiz gerekiyor. Bu yüzden Explorer'dan "Character" objesini alıp. Value outputunu şekildeki gibi bağlıyoruz. 

Şimdi elimizde bir mantıksal çıktı var. "Evet ayak gridin içinde" ve " hayır ayak gridin içinde değil". Bu veri herbir vertex'e ait veri aslında.
Şimdi şöyle bir mantık kurmamız gerekiyor; 
  • Eğer ayak objesindeki vertex ile grid objesindeki vertex bir noktada kesişiyorsa, ayak objesindeki vertexi takip et. 
  • Eğer ayak objesindeki vertex ile grid objesindeki vertex bir noktada kesişmiyorsa, orjinal pozisyonunu koru.
Bu mantığı da "if" nodu ile yapıyoruz.

"Test Inside Geometry" nodu burada koşulu oluşturuyor. Evet ya da Hayır. Buna göre; eğer bu durum doğru ise, "Get Closeset Location on Geometry" nodunun "position" outputundan "ayak" objesinden gelen yeni vertex pozisyonu set ediliyor. 
Eğer bu durum yanlış ise, "Get Point Position" nodu ile vertexin orjinal posizyonu okunuyor. Aslında "If False" input portu boş kalabilirdi. Ama görsel olarak koşul daha rahat okunabildiği için boş bırakmadım.

" Set Point Position " nodu ile de, bu iki değer gride yazdırılıyor.


Son olarak, grid objesindeki deformasyon biraz kırıklar içeriyor. Bu yüzden smooth deformerı kullanarak bu kırıkları biraz düzeltiyoruz. Smooth deformerını seçtiğimizde kendini modelling stack'inin altına atıyor. Halbuki simulasyonu etkilemsi için "Post-Simulation" stack'inin altında olması gerekli. Bu yüzden kendisini sürükleyip resimdeki gibi "Post-Simulation"ın altına atıyoruz.

Tekrar görüşmek üzere.
Emin.

Hiç yorum yok:

Yorum Gönder