Reactor ile bilardo animasyonu

Reactor sistemini kullanarak bilardo oynayalım.

Merhaba arkadaşlar... Bilgilerin paylaşılması ve daha üst seviyelere ulaşabilmek adına katkıda bulunabilmek için Reactor sistemi ile alakalı bir-kaç ders hazırlamayı planladım. Reactor sistemi gerçek dünyadaki gibi gerçek zamanlı hareket yakalamamızı sağlar. Kendi içerisinde bir çok bölümleri, yardımcı unsunları ve bunların kendi içerisindeki onlarca değişik ayarları hakkında tek tek açıklayıcı bilgi yazmaya kalkışılsa sayfalar dolusu yazı çıkar, kaldı ki bu kadar geniş bilgiye de sahip değilim.

En güzel öğrenme şekli "Uygulamalı-tatbiki öğrenmedir" düşüncesiyle hem reactor sisteminin genel mantık yapısını ve kullanımını kavrayabilmek ve hem de zevkli ve profesyonelce bir animasyon gerçekleştirebilmek açısından aşağıdaki dersi hazırladım. İleride reactor´un farklı konularında da dersler hazırlamayı düşündüğümü belirterek konumuza geçelim.

Sahnemiz yandaki resimde görüldüğü gibi ChamferBox´dan oluşmuş ve boleon yardımıyla kesilerek bilardo masası, sphere´lerden oluşan üç bilardo topu ve cone´den oluşan bir ıstakadan ibaret sahnemiz var . Yapmak istediğimiz şey ıstakamızın kırmızı topa vurması, kırmızı topun diğer iki topa çarparak tıpkı gerçek hayatta olduğu gibi topların bandlara çarparak bir şekilde köşedeki deliğe göndermeye çalışacağız. (İlk denemede kırmızı topu köşedeki deliğe gönderdim tabi sayı hakkı karşıya geçti ancak üçüncü denemede sarı topu köşedeki deliğe gönderdim. Masa küçük deliklerde büyük diyebilirsiniz tabiki...)

 Yandaki ilk resimde görülen helpers menüsünden reactor açılır menüsüne tıklıyoruz. listenin en başındaki RB Collectian´u seçip, açılan menüde yandaki ikinci resimde görülen "Add" düğmesine tıklayarak sahnemizdeki bütün objelerimizi dahil ediyoruz. Bu şekilde bütün objelerimizin reactor sisteminden etkilenmesini istediğimizi belirtmiş olduk.

Şimdi de hangi objemizin reactor´den ne şekilde-nasıl etkileneceğini belirlemek için asıl reactor sisteminin başına geçiyoruz. Yukarıdaki birinci resimde okla gösterilen Utilities düğmesine tıklayarak açılan listeden (en altta yer alan) reactor slotunu tıklıyoruz. Yukarıdaki ikinci resimde görülen açılır liste karşımıza geliyor. Burada da okla gösterilen "Properties" düğmesine tıklıyoruz.


Sahnemizdeki ChamferBox01 adlı bilardo masamızı seçiyoruz ve reactor´ün biraz önce açmış olduğumuz "properties" ayarlarında masamız için yukarıda birinci resimde de görülen ayarları giriyoruz. Ağırlık "0" ve use mesh işaretli. Bilardo toplarımız sphere 01-02-03 içinde ayrı ayrı yukarıdaki ikinci resimdeki ayarları giriyoruz, ağırlık 0,5 kg ve use mesh işaretli. Cone01 adlı ıstakamız içinde yukarıdaki üçüncü resimde görülen ayaraları giriyoruz. Ancak ıstakamızın ağırlığını ben 30kg olarak yazdım. Bir ıstakanın ağırlığı bu kadar değildir ancak peki neden böyle yazdık? Çünkü gerçek hayatta ıstakayı bir insan eliyle güç kullanarak topa vururken ıstaka bu kuvvetin etkisiyle güçlü bir şekilde topa çarpıyor, ancak bizim 3B ortamında böyle bir şansımız yok, biz bunu bir tek ıstakamızın üzerine yükleyeceğimizden ağırlığını bu şekilde veriyoruz. (Sizler yukarıda verilen  ve bundan sonraki verilen bütün değerleri değiştirerek farklı farklı denemeler yaparak deneme-yanılma yöntemiyle bilmediklerinizi keşfedebilirsiniz. Gelişmenin yöntemi de zaten budur)


Şimdi sahnemizin ince ayarlarıyla uğraşalım. Bilardo toplarının masanın üzerine tam sıfırlanacak şekilde durması çok önemlidir. Reactor sisteminde bütün nesneler için zeminle sıfırlanmaları animasyonun düzenli çalışabilmesi için önemlidir. Zeminden biraz içeri girmiş bir top, reactor´u çalıştırdığımızda zemine gömülebilir veya zeminden biraz yukarıda kalmış bir top animasyonun ilk başlarında zemine düşeceğinden kayma, titreme gibi istenmeyen hatalara sebep verebilir. Bütün bunların önüne geçebilmek için söyle yapacağız.

Bilardo toplarımızın ilk resimdeki gibi reactor sisteminde titremeden durabilmeleri için ikinci resimde görüldüğü gibi biraz yukarı kaldırılır, ve reaktör´ün "preview animation" bölümünde start frame 1 ile 15-20 arasında "Create animation" oluşturulur yani kısa bir deneme yapılır. Bilardo toplarımız bu kısa frameler sonrasında üçüncü resimde görüldüğü gibi zeminle sıfırlanmış olarak biraz sağa sola kayarak dururlar işte bu sıfırlandıkları karelerde bilardo toplarımızı seçip  zaman çizelgesindeki bütün önceki karelere ait keyleri sildiğimiz zaman titreme gibi sorunları halletmiş oluruz. Artık sıfırlanmış olan toplarımızı sadece yön oklarıyla ileri geri, sağa sola çekerek masada istediğimz pozisyonlarda ayarlayabiliriz.



Istakamızın ve toplarımızın pozisyonlarını ben yukarıdaki ilk resimde görüldüğü gibi ayarladım. Şimdi ıstakamıza topa çarpabilmesi için animasyon vereceğiz. Animate düğmesini açın "0"karede ıstakayla top arasındaki mesafeyi yukarıdaki ikinci resim gibi ayarlayın. "6." framede ıstakayı yukarıdaki üçüncü resimdeki gibi topun hemen yanına kadar getirin. (Bu mesafelerde değişik denemeler yapabilirsiniz mesafenin ölçüsü size kalmış, ancak ıstaka ne kadar topdan uzaksa ve animasyon aralığınız 0 ile 6 gibi ne kadar kısa ise ıstakanız o kadar hızlı topa çarpar) Animate düğmesini kapatın. Buradaki işimiz artık bitti.

Reactor´ün "Preview Animation" kısmına geliyoruz ve yandaki ilk resimde görülen ayarları giriyoruz. Start frame kısmına (biraz önce ıstakaya animasyon verirken 0 ile 6 arasında vermiştik, onun için buraya yazacağımız rakam bu ikisinin arasında kalan bir rakam olmalı) 3 yazıyoruz.  Create Animation kısmının hemen altında bulunan World bölümünde de yukarıdaki ikinci resimde görülen ayarları giriyoruz. World Scala ve Col.Tolerance değerleri ne kadar düşük olursa çarpışan cisimlerin birbirine yıkınlaşması değiyormuş gibi gözükmesi o kadar yakın olur. Ancak her küçük değerde olumlu sonuçlar oluşmaya bilir. En sağlıklısı küçük bir değerden başlayarak deneme yapa yapa uygun değeri buluncaya kadar değerleri yükseltmektir.

Artık "Create Animation" tuşuna basarak animasyonunuzu izleyebilirsiniz.  Oluşturduğunuz objelerin konumlarına ıstakanızın hızına bağlı olarak ilk seferinde belki istediğiniz sonuca varamasanızda değişik değerler girerek ve ıstakanızın hız aralığını değiştirerek farklı denemeler yapabilirsiniz. Velhasıl istediğimiz sonuca vardığımızda burada küçük bir sorun daha kaldı onuda halledelim. Istakamız da verdiğimiz hareket neticesinde topa vurduğu anda topla birlikte ıstakada masa üzerinde hızla kayarak hem çarptığı topa hemde diğer toplara çarparak animasyonun gidişatını bozabilir bunu engellemek için şöyle yapıyoruz.

Reactor açılır menüsünün World menüsünün altında bulunan "Collisions" menüsüne geliyoruz. Yukarıdaki ilk resim. Burada "Define Collision Pairs" yazan kısma tıklıyoruz. Açılan listede reactor sistemine dahil ettiğimiz bütün objelerimiz gözükmektedir. yukarıdaki ikinci resim. Burada ıstaka (Cone01) objemizin üzerine tıklıyoruz,



hemen yan tarafında bulunan Enabled Collisions kısmında ıstaka objemizin hangi objelerle temasta bulunduğunu gösterir liste belirir. Üsteki resim. Şimdi burada biz istiyoruz ki ıstakamız sadece ilk topa, yani kırmızı (Sphere03) nolu topa çarpsın ve nediğer toplara çarpsın ne de masamıza çarpsın onları etkilemesin. Bunun için yukarıdaki oklarla gösterilenleri seçiyoruz. Birinci sıradaki ıstaka ve ikinci top, üçüncü sıradaki masa ve ıstaka, dördüncü sıradaki birinci top ve ıstakayı üçünü birden seçip hemen yan tarafta görülen kısma geçmeleri için ok işaretlerini kullanarak taşıyoruz.

Yandaki resimde görüldüğü gibi artık ıstakamız sadece karşısındaki ilk topa çarpacak diğerlerini etkilemeyecektir. Bu şekilde ayar verip ok tuşuna basarak bu pencereyi kapatarak tekrar "Create Animation" oluşturarak daha sağlıklı bir şekilde animasyonumuzu tamamlayabiliriz.

Bu dersin bitmiş max scene halini bu sitenin "Dosyalar " bölümünün "3B dosyalar "kısmında bulabilirsiniz. Hepinize kolay gelsin.

Ekleyen: kurt

yıllar önce en sevdiğim
halkaFurkan YILMAZ

yıllar önce en sevdiğim derslerden biriydi...


www.furkanyz.com
2012-08-10 05:19:43
  • Offline
  • Erkek
dosyalar bölümünü bulamadım
ozgurözgür türkücü

max scene lazım bu uygulamanın üste belirttiğiniz gibi dosyalar bölümünde demişsiniz ama bulamadım yardımcı olur musunuz


2016-12-14 20:05:14
  • Offline
  • Erkek

Kapalı

Bir yıldan uzun süre geçtiği için konu otomatik olarak kapatılmıştır !