MOTION FLOW ve CROWD II

Bibed`i Motion Flow ve Crowd modunda canlandırma.

                                                   bilgilerinden faydalanmış olduğum bütün insanlara ithafen...

  GİRİŞ: BİPED-MOTION FLOW MODUNDA ve CROWD İLİŞKİLENDİRMESİ İLE ANİMASYON 

         Selamlar... Bu derste Character Studıo´nun temel direği olan Biped´i Motıon Flow Modunda script oluşturup, Crowd ilişkilendirmesiyle tekli ve çoklu animasyon oluşturmasını kavramaya çalışacağız. Motıon Flow Modu temel mantığını ilk bölümdeki derste anlatmaya çalışmıştım. Bu bölümde bir adım daha ileriye gidip tekli ve çoklu ( beş-on-yirmi sisteminiz ne kadarını kaldırabiliyorsa o kadar Biped´i hep birden ) belirli bir sistem içerisinde hareket ettirmenin mantığını kavrayacağız.

 

     Özellikle kalabalık insan topluluğu animasyonlarında kolaylık sağlayacak olan bu yöntemde gerek düz gerekse engebeli zeminlerde bipedleri hareketlendirebiliriz. (Hangi teknik ve metod olursa olsun değişmeyen bir gerçek varki, her şeyi makinadan bekleyemeyiz. Sonuçta Animasyon, parça parça kurgulardan, kurgular da gerekirse frame frame animatörün müdahalesinden geçmek zorunda) Bu bilinci akıldan çıkarmayarak, bu metodla caddelerde gelişi-güzel ama disiplinli bir şekilde hareket eden tekli veya kalabalık insan topluluğunu tek tek uğraşmadan canlandırabilir, birbirine doğru çılgınca koşarak hücuma kalkmış iki topluluğu veya yarışan sporcular vs. kolaylıkla hareketlendirebiliriz.

 Not: Burada kullanılacak olan .Bip. files dosyaları  motıon capture tekniği ile alınmış orjinal dosyalar olmak zorunda değil. Sizin frame frame öne, sağa, sola, geriye doğru beş-on adım hareket verdirip kaydetmiş olduğunuz dosyalar da olabilir. Yukarıdaki cümleler bu bağlamda söylenmiştir. Yani siz Biped´inize bir hayvan iskeleti verip dört ayaklı şekilde değişik yönlere hareket verdi iseniz bir hayvan sürüsünü de bir alan üzerinde devamlı olarak canlandırabiliriz. Birazdan örneği görünce olayın mantığını kavrayacaksınız ve geresi sizin hayal gücünüze ve çalışmanıza kalacaktır.

     

System butonuna tıklayarak açılan pencerede Biped slotunu seçip sahneye Biped karakterimizi yerleştirelim.

   

Motıan Flow Modu linkini (Yukarıdaki birinci resim) tıklıyoruz, hemen alt tarafta yine sarı okla gösterilen Show Graph linkine tıklayarak ikinci resimde görülen Motion Flow Graph listesi açılacaktır. Bu listeden de ok ile gösterilen Create Multiple Clips linkine tıklayarak, kendi bilgisayarınızdaki kayıtlı bulunan .Bip dosyalarınızın olduğu bölüme gidin.

      Ben bu örnekte de "jog" koşan adam dosyalarını kullanacağım. Bu "Walk" yürüme dosyalarıda olabilirdi. Burada işin mantığı şu: "Düz veya engebeli bir zemin üzerinde biped´in Crowd sistemi sayesinde bir şeyi araması, etrafında dönmesi, rastgele dolaşabilmesi için, bu hareketleri yapmasına olanak sağlayan, ileri yürüme, sağa dönme, sola dönme, geriye dönme gibi temel hareket dosyaları gerekliliğidir.

  

      "Jog" (koşma) dosyaları olarak yukarıda birinci resimde görülen koşma, 180 derece sağdan ve soldan geriye, 45 derece sağa-sola, 90 derece sağa ve 135 derecelik açılarla sola dönüş dosyalarına listeye ekledim. Elimde bulunan jog dosyasına ait düz ve dönüşlü bu yedi .Bip dosyasını kullanacağım. Temel öne, sağa, sola ve arkaya dönüş hareketleri olduktan sonra, sayının beş dosya, on dosya vs olması önemli değil.

      Şimdi yine yukarıda ikinci resimde görüldüğü gibi bunları birbirlerine zircirlemek için bu şekilde yerleştirdim, hangisi sağda veya solda, altta veya yukarıda olması da sizin arzunuza kalmış, bu konuda değişik sayıda dosyalarla ve aşağıda göstereceğim şekildeki bir zincir oluşturma şeklinden başka türlü de zincirleme yapılabilir. Deneme-yanılma yöntemiyle bu konuda fikir sahibi olabilirsiniz.

  Yan resimde ok ile gösterilen Create Transıtıon From To linkini tıklayın.

 

jog_L135 dosyası üzerine tıklayıp mause mizi sürükleyerek jog dosyası üzerinde bırakın ( yukarıdaki birinci resim) bağlantıyı gösteren siyah bir ok çizgisi gözükecektir. Yukarıdaki ikinci resimde görüldüğü gibi bu kez jog dosyası üzerinde tıklayıp sürükleyerek jog_L135 dosyası üzerine mause mizi bırakıyoruz. karşılıklı bağlantıyı gösteren ok işaretleri gözükmelidir.

   

Yukarıdaki birinci resimde görüldüğü gibi aynı işlemleri jog ve jog_R90 arasında da tekrarlayın. Diğer bütün dosyalarıda jog dosyasıyla aynı şekilde bağlayın. Yukarıdaki ikinci resimde görülen şekile getirin.

 

Şimdi jog_L135 dosyası üzerine tıklayıp sürükleyerek jog_L45 dosyasına bir zincir oluşturun sonra da ilk hareketin tersi olarak jog_45 dosyasından jog_L135 dosyasına bir zincir oluşturun.(yukarıdaki birinci resimde görüldüğü gibi) Daha sonra kenarda kalan bütün dosyalarıda birbiriyle karşılıklı olarak zincirleyin. Yukarıdaki ikinci resimde görülen şekildeki gibi ayarlayın.

  

Şimdiki işlemimiz jog_L135 dosyası üzerine bir kere tıklayın ve yukarıdaki birinci resimde görüldüğü gibi bir dönüşüm işareti belirsin. sonra da bütün dosyaların üzerine tek tek tıklayarak hepsini dönüşümlü hale getirin. Son hali yukarıdaki ikinci resimde görüldüğü gibi olmalı.

   

Listemizi o halde bırakarak, motion flow penceremize gelelim ve yukarıda birinci resimde ok ile gösterilen "Define Scripts"yazan linke tıklayın. Sonra biraz önce yapmış olduğumuz zincir listesine gelerek jog dosyasının üzerine tıklayın. Jog dosyası kırmızı hale gelecektir.(Yukarıdaki ikinci resim) Tekrar motıon Flow penceresine gelerek yukarıdaki üçüncü resimde ok işareti ile gösterilen "Save file" linkine tıklayarak yapmış olduğumuz listeyi scripts dosyası olarak birazdan tekrar çağırmak üzere bilgisayarınızda bir bölüme kaydedin.

      Buraya kadar yapmış olduğumuz işlemle Biped´e Crowd sistemi içerisinde hareket kabiliyeti sağlayacak dosyaların zincirini oluşturmuş olduk. Artık hangi hareketi ne zaman, ne kadar aralıkla yapacağını, hangi sıraya göre yapacağını Crowd sistemi ve bu sistem içinde bizim belirleyeceğimiz yardımcı elemanlar belirleyecek.

    Şimdi şuna kara verelim. Kaç tane Biped´le çalışacağız. Bir tane de olabilir on tane de veya istediğiniz kadar. Olayın mantığını kavramak için bu örnekte üç Biped´le çalışalım.

     

İlk Biped´imiz yazdığımız script nedeniyle ilk hareket pozisyonunda sahnede duracaktır. Yanına iki Biped karakteri daha oluşturalım.  İkinci Biped nesnemizi seçelim. Seçili ikin yine motion flow modu linkini tıklayıp yukarıda ikinci resimde ok ile gösterilen "Load file" linkine tıklayarak biraz önce kaydettiğimiz scriptimizi çağıralım.

     

Çağırdığımız script listede belirecektir. Sahnemizdeki ikinci Biped gelen script etkisiyle birinci Biped´le aynı pozisyonda hizalanacaktır. Üçüncü Biped nesnemizi de seçerek, ikinci Biped nesnemize uyguladığımız seçimleri yaparak aynı script´i çağıralım. Üçüncü Biped´imizde diğer Biped´lerle aynı hizada yer alacaktır ve bunun bir sakıncası yoktur. Buraya kadar dersimizin yarı bölümünü tamamlamış olduk. Artık Crowd Sistemine ve bu sistemle alakalı ayarlamalarımıza geçebiliriz.

KONU: Yapacağımız küçük animasyonun içeriği ne olacak? bunu kabaca belirleyip, sahnemizde ona göre Crowd ve yardımcı unsunları oluşturalım. Diyelim ki engebeli bir zemin üzerinde üç tane Biped objemizi, zeminin alt taraflarında ve farklı noktalardan başlatarak yukarıya doğru durmadan koşsunlar. Bu senaryoya göre bir tane Crowd, üç tane delegate yardımcı elemanı, engebeli bir arazi zemini ve bu engebeli arazide Biped´leri hareket ettirmeye yarayacak Surface Follow Behavior yardımcı elemanı (düz bir zemin olsaydı buna gerek kalmayacaktı), Bibed´leri yukarı tepeye doğru koşturmamıza yarayacak bir obje(diyelimki Sphere) ve bu objeye atayacağımız Seek Behavior yardımcı elemanı ve Biped´lerin (aslında delegatelerin) tepeye doğru koşarken birbirlerine çarparak üzerlerinden geçmemeleri için Avoid Behavior yardımcı elemanlarını sahneye yerleştirelim.

      Ben önce plane kullanarak engebeli bir arazi oluşturdum, nasıl bir arazi istiyorsanız ona göre ister plane ister başka bir obje kullanarak zemin arazinizi sahneye yerleştirin.

    

Not:  Crowd Sistemi ile alakalı temel bilgiler hakkında bakınız ( Bu sitenin:Döküman-Eski dersler-Animasyon-Crowd. Hazırlayan Necmi DEMİRKESER (Drekon)

         Helpers linkini tıklayarak (yukarıdaki birinci resim) sahneye bir tane Crowd ve üç tane delegate nesnesi yerleştirin. İlk delegate nesnesini seçili hale getirin.

     

Modify linkine tıklayarak (yukarıdaki birinci resim) delegate´nin Biped parameters alanına gelin (ikinci resim). None yazan slotun üzerine tıklayın. Yukarıda üçüncü resimde ok işareti ile gösterilen Select by Name yazan linke tıklayın.

     

Açılan listede Bip01´i seçili hale getirip alt kısımda bulunan Pick yazılı slota tıklayın (Yukarıdaki ikinci resim). Delegate´nin paramater Biped bölümünde "Use Biped" şıkkını seçili hale getirin (yukarıdaki üçüncü resim). Buradaki start frame kısmına isterseniz herhangi bir frame numarası vererek, her bir delegatenin birbirinden farklı zamanlarda hareketlenmesini sağlayabilirsiniz. Diğer delegateleri de tek tek seçerek aynı işlemleri tekrarlayın. Bu şekilde Biped´leri delegatelere bağlamış olduk.

  

Şimdi sahnemize bir tane de Sphere oluşturun, biraz sonra ihtiyacımız olacak. Crowd nesnesini seçili hale getirin.

     

Crowd nesnesinin ayarlar bölümü karşımıza gelecek. Yukarıdaki birinci resimde ok ile gösterilen New slotuna tıklayın. Açılan listenin en başında yer alan "Avoid Behavıor" yazısının üzerine tıklayıp seçili hale getirin ve ok diyerek pencereyi kapatın. Avoid Behavior parameters alanının alt taraflarında yukarıda üçüncü resimde ok işareti ile gösterilen "Multiple Selectıon" linkine tıklayın.

        

Açılan listede daha önce oluşturduğumuz üç delegate nesnesini seçili hale getirin (Yukarıdaki birinci resim) Select tuşu ile onaylayarak bu pencereyi kapatın. Yukarıdaki ikinci resimde görüldüğü gibi boş olan slotun üzerinde Mutiple yazısı belirecektir. Burada "Display Hard Radius" şıkkını da seçili hale getirin.

      Şimdi burada sahnedeki delegatelerin işlem sırasında birbirlerine çarpmamaları, birbirlerinin üzerlerinden geçmemeleri için bir ayarlama yapmış olduk. Display Hard Radius seçeneği seçili olunca delegatelerin etrafında bir zarf oluşacaktır, Bu zarfın çapı yukarıdaki ayarlarla değiştirilebilir. Delegateler bu çapa bağlı olarak birbirlerine o kadar yaklaşabilirler.

       

Tekrar Crowd nesnesini seçili hale getirin ve parameters alanına gelin. (Yukarıdaki birinci resim) New düğmesine tekrar tıklayın. Açılan pencerede Seek Behavior (yukarıda ikinci resim) seçili hale getirin ve ok tuşuna basın. Seek Behavior ayarlarında None yazan slota tıklayın (yukarıdaki üçüncü resim) ve Sphere objenizi tıklayın. Sphere bir yazısı slotun üzerinde gözükecektir. (None slotuna basınca, yukarıda Max´in toolbaar sütununda "Select by Name" linkine tıklayarak da açılan listeden Sphere01 nesnesini seçip pick yapabilirsiniz)

      Bu işlem ile delegate nesnelerinin (Biped´lerin) Sphere´nin bulunduğu yöne doğru koşmalarını sağlamış olduk. Sahnemizin neresinde olursa olsun, delegateler o yöne doğru ilerleyeceklerdir.

     

Tekrar Crowd nesnesini seçili hale getirin. Parametert alanında New düğmesine basın (yukarıdaki birinci resim). Açılan listede Surface Follow Behavior´u seçili hale getirip ok tuşuna basın. Listenin alt taraflarında Surface Follow Behavior paramaters bölümünde "None" yazan slota tıklayın (yukarıdaki üçüncü resim) sahnenizde oluşturmuş olduğunuz zemin arazi nesnenizi buraya "pick" yapın. slotun üzerinde zemin nesnenizin adı belirsin. (Bir önceki Sphere objemizi yaptığımız yöntemde olduğu gibi)

     Bu yaptığımız işlem ile delegatelerin (Biped´lerin) engebeli olan arazi nesnemizin üzerinde girinti ve çıkıntılara göre hareket etmesini istediğimizi belirtmiş olduk.

      

Tekrar Crowd nesnenizi seçili hale getirin. Yukarıda birinci resimde ok işareti ile gösterilen "Behavior Assingments" linkine tıklayın. Karşınıza "Behavior Assingments and Teams" adlı geniş bir liste belirecek. Bu listenin sağ köşesinde bulunan "Team" sütununun alt tarafında bulunan "New Team" slotuna tıklayın (yukarıdaki ikinci resim). Select Delegates listesi açılacak burada üç tane delegate nesnesini seçili hale getirin veya direk "All" linkine tıklayarak hepsini seçmek istediğinizi belirtin ve ok tuşuna basın (yukarıdaki üçüncü resim).

 

Listemizin sol alt köşesin de Teams bölümünde "Team0" olarak oluşturmuş olduğumuz takımımızın adı belirecektir. Bu şekilde üç delegatemizi bir ad altında toplamış olduk ve bundan sonra delegateler yerine "Team0" takımı ile çalışacağız. (Yukarıdaki birinci resim)

      Şimdi bu listemizde delegatelerimizi bir takım yaptık ve alt tarafta takımımız bulunmakta, listenin Behaviors bölümünde daha önce oluşturduğumuz yardımcı elemanlar (Avoid, Seek ve Surface Follow) bulunmakta. Eğer Reactor sistemi ile çalıştı iseniz bilirsiniz, oluşturduğumuz bütün elemanların sistem içinde etkileşimli olabilmesi için bunları hepsini sisteme dahil etmemiz gerekiyor. Crowd Sisteminde de bunu şöyle yapıyoruz: Yukarıdaki ikinci resimde görüldüğü gibi önce "Team0" takımınızı seçili hale getirin, sonra "Avoid" behaviors´u seçili hale getirin, ikisi birden seçili halde iken yukarıdaki ikinci resimde ortadaki ok işareti ile gösterilen "alt alta dizili siyah ok" işaretlerinin bulunduğu alana tıklayın.

Bu işlemden sonra listemizin Behavior Assignments alanında yukarıdaki resimde görülen ilişkilendirme yazısı belirecektir.

  

Aynı işlemi "Team0" ve "Seek" olayı içinde gerçekleştirin (yukarıdaki birinci resim). Sonra "Team0" ve "Surface Follow" içinde aynı işlemi tekrarlayın. Listemizin orta kısmında Behavior Assignments alanında üç ilişkilendirmemiz de yukarıdaki ikinci resimde görüldüğü gibi belirmelidir. Bu listeyi alt kısımda bulunan "Ok" tuşuna basarak kapatın. Bu şekilde sahnemizdeki bütün obje ve yardımcı elemanlarımızı Crowd Sistemine dahil etmiş olduk.

    Şimdi sahnemizde objelerimizi yerleştirelim. Ben Sphere nesnesini engebeli arazinin ortasına yerleştirdim. Sphere´yi nereye yerleştirirseniz yerliştirin, ve Biped´lerin yeri ve yönü ne tarafta olursa olsun, dönüp Sphereye doğru yöneleceklerdir ve onun etrafında rasgele koşaçaklardır. Biped elemanlarınıza hiç dokunmayın onlar otomatik olarak Crowd Sistemini çalıştırdığınız zaman bağlı bulunduğu delegatenin bulunduğu yere gidecektir. Bu yüzden delegatelerinizi sahnede değişik yerlere yerleştirmeniz yeterli. Ben bu örnekte delegateleri arazinin alt taraflarında ama üçüde farklı köşelerde olarak yerleştirdim. Siz isteğinize göre delegatelerinizi konumlandırın.

  Son olarak Crowd nesnenizi seçili hale getirin ve ayarlar bölümünde "Solve" yazan bölüme gelin. Start Solve ve End Solve kısımlarına istediğiniz değerleri girin, Özellikle End Solve yazan kısımı bir kaç deneme yaparak isteğinize göre ayarlayın, zira delegate ile Sphere objenizin arasındaki mesafeye ve Biped´imizin script´in de oluşturduğumuz hareketlerin hızına bağlı olarak bu süre farklılıklar gösterebilir. Ortalama olarak ben 600 yazdım ( Bu alana yazacağınız rakam istediğiniz kadar uzun da olabilir, Biped´ler de devamlı olarak hareket etmeye devam ederler) Position ve Rotations değerlerine de 10 yazıp, Delete Keys before Solve şıkkını seçili hale getirerek buradaki işlemlerimiz bitmiş oluyor.

  

      Artık "Solve" linkine tıklıyarak sistemi başlatabilirsiniz. Delegateler (bunlara bağlı olarak Biped´ler) Spherenin bulunduğu yöne doğru tırmanarak ilerlemeye başlayacaklardır. Biped´lerin script´ine göre uygun hareketi kendisi belirleyerek ilerleyecektir.

 

"Solve" modunda Crowd sistemi çalışırken delegateler arazinin yüzeyinden değilde içine gömülerek ilerliyor olarak gözükebilir, bu sizi yanıltmasın. "Solve" olayı tamamlandıktan sonra zaman çizelgesinin "Play" tuşuna basarak animasyonunuzu oynattığınızda delegate ve Bipedlerin arazinin üzerinde olarak koştuklarını göreceksiniz. Animasyon sonrası bazı ufak-tefek hareket aksamaları oluşabilir. Bunların nasıl düzeltileceğini "İlk bölümde" anlatmıştım. Burada şuna dikkat edin, "düz bir zemin üzerinde animasyon yaptı isek sorun yok, ancak engebeli bir arazi üzerinde animasyon oluşturdu isek ve hareketlerde ufak-tefek uyuşmazlıkları düzenledi isek bütün objelerimiz aynı pozisyonda olarak tekrar "Solve" modunda sistemi tekrarlatmamız gerekir.

      İşin bundan sonrası sizin hayal gücünüze kalmış, değişik şekilde denemeler yaparak, ne gibi sonuçlar oluşacağını, bunlardan ne şekilde yararlanabileceğiniz size ve yaratıcılığınıza kalmış... Saygılar...

       

    


Ekleyen: kurt

Kapalı

Topic closed automatically because it`s been more than a year!