Bu sayfadaki yazılar
Sayfanın metni
Sayfa 40
Py(0,y1). Dikkat ederseniz P'yi, Px'i ve Py'yi ne kadar döndürürsek döndürelim. P her zaman Px ve Py'nin toplamına eşit olacak. Öyleyse biz Px ve Py'nin a açısı kadar döndürüldüğünde nereye geldiklerini bulursak (ki bunu bulmak kolay) sonra bu ikisini toplayıp A(x2,y2) noktasını bulabiliriz.
Şekil 4.
Px, a kadar dönünce x ekseni ile a derece açı yapan x1 uzunluğunda bir vektör olur. Trigonometriden hatırlarsak bu durumda Px'in x koordinatı (x1)cos(a) olur. Aynı şekilde y koordinatı ise (x1)sin(a) olur.
Py, a kadar döndüğünde y ekseninin sol tarafına doğru a açısı yapan y1 uzunluğunda bir vektör olur. Onun koordinatları da sırası ile (-y1)sin(a) ve (y1)cos(a) olur.
Son olarak P'nin yeni yerini yani x2 ve y2'yi bulmak için Px ve Py'nin aynı koordinatlarını toplarsak, x2 = (x1)cos(a) - (y1)sin(a), y2 = (x1)sin(a) + (y1)cos(a)
İşte bu bir noktayı tek eksende iki boyutlu döndürmek için gereken işlemdir. Bir objeyi oluşturan bütün noktalar için bu işlem tekrarlanırsa obje origin etrafında (ya da 3 boyutlu düşünürsek z ekseni etrafında) döndürülmüş olur.
Ölçekleme
Ölçekleme işlemi bir objeyi büyütüp küçültmeye yarar. Bir vektörün skaler ile çarpılması konusundan hatırlarsanız, bu işlem sonucu vektörlerin boyları uzayıp kısaltılabiliyordu. Eğer bir objeyi tanımlayan bütün noktaların vektörlerini aynı skaler ile çarparsak o objeyi o skaler oranında ölçeklemiş oluruz.
Genelde bütün noktaların x ve y koordinatları aynı skaler ile çarpılarak ölçeklenir bu durumda obje şeklinde herhangi bir deformasyona uğramadan büyür ve küçülür. Eğer x ve y koordinatları aynı oranda ölçeklenmezse objeler x veya y yönünde yassılaşırlar. Bu da bazen kullanılan bir efekttir. Ben bu efekti Mist demosundaki wobbling vektör partında kullanmıştım.
Hatta objeyi oluşturan noktalar farklı farklı skalerler ile anime bir şekilde ölçeklenirse çok ilginç jelimsi objeler elde edilebilir ki bu tip efektler genelde çok prim yapar. 3 boyut motorunuzu yazdıktan sonra böyle ufak oynamalarla çok ilginç ve orijinal efektler bulabilirsiniz.
Dönüşümlerin birleştirilmesi
Genelde dönüşümler tek tek değil birlikte gerçekleşirler. Yani bir obje uzayda aynı anda yer değiştirip kendi etrafında dönerken büyüyüp küçülüyor olabilir. Bir objeye olan dönüşümler bu durumda birleştirilip hesaplanabilmelidir.
Bu ihtiyacın doğduğu bir diğer popüler durum daha vardır: Kinematik. Örneğin kendi kolunuzu düşünün. Kolunuz omzunuzdan bir açı ile bir eksende dönerken, dirseğiniz başka bir açı ile döndüğünde eliniz ne kadar dönmüş ve yer değiştirmiş olur? Bu soruyu cevaplayabilmek için objelerin birbirlerine bir ebeveyn-çocuk hiyerarşisi ile bağlandığını düşünebiliriz. Yani bu örnekte gövdeniz, üst kolunuzun babası, üst kolunuz ön kolunuzun babası, ön kolunuz ise elinizin babası gibi. Atalar bir dönüşüm yaptıklarında bütün çocuk ve torunlar da bu dönüşümü geçirir. Ama çocuklar belli kısıtlar dahilinde atalarından bağımsız bazı dönüşümler geçirebilir.
İşte bütün bu “bileşik dönüşüm” hesaplama işlemlerinde “matrisler” kullanılır. Bu yüzden bir sonraki bölümümüzde matrislerden bahsedeceğiz.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 41
Şekil 1.
Timgl001 MotionBuilder
(www.autodesk.com'dan Motion Builder'ın en son ücretsiz eğitim versiyonunu indirebilirsiniz)
Evet, Motion'da Walk Cycle yapalım mı diyorum bu akşam arkadaşlar? Var mısınız? Ama önce konuyu bilmeyenler için kısa bir açıklama yapalım. Yıllar evvel Alias Motion Builder 6.5 ilk duyurulduğunda (Alias o sıralar Kaydara'yı yeni almış, ve daha Autodesk Alias'a göz dikmemişti.) hemen internetten tanıtım videolarını indirmiş ve incelemiştim. Gördüklerim karşısında gerçekten etkilenmiştim ama özellikle "Walk Cycle" konusunda gördüklerime inanamamıştım.
"Walk cycle" sizin de bildiğiniz gibi bir döngü içinde oynayan yürüyüş animasyonuna deniyor. Bu döngü için karakterin sadece iki adım atması yeterli, üçüncü adım ilk adımın "offset"i değişmiş kopyası olduğu için ilk frame'i son frame'e kopyaladığımızda sonsuza kadar adım atan karakter elde edebiliyoruz. Bu tekrar eden hareketleri geleneksel çizgi filmlerde çokça görüyoruz, özellikle düşük bütçeli çizgi filmlerde zamandan kazandıran bu tekniği daha sık görüyoruz. Sadece yürüyüş için değil, deniz dalgasının sahile vurması, sigara dumanının tütmesi gibi efekt animasyonlarında da cycle animasyonlar tercih ediliyor.
Peki Walk Cycle nasıl oluşturuluyor? Kolay, formülü var. Bilenler bilecektir, karakter animasyonunun "kutsal" kitaplarından "Animator's Survival Kit"te bu uzun uzun anlatılıyor. Biz özetleyelim:
Şekilde görünen 5 poz basit bir walk Cycle'ı formülize ediyor. Gerçi karakter bir adım atmış fakat diğer adım ilk adımın simetrik tersi olduğundan bu 5 ana pozu bilmek yetiyor. İnceleyelim, ilk pozumuz "Contact" pozu. Adım atmış ayağın topuğu zeminle kontakt halinde, bacak gergin, vücudun ağırlığı bacakları henüz etkilememiş. İkinci poz "Down" pozu, karakter bu pozda "düşüyor". Vücudun ağırlığı bu pozda hissedilmiş durumda. Kolların açılması maximum noktaya geliyor. Üçüncü poz "Passing Position" ya da benim bundan sonra kullanacağım terimle "Breakdown" pozu. "BreakDown"da zeminle temas halindeki bacak vücudu kaldırmış, ilk adımda katedilmesi gereken yolu hem vücut hem kollar aşağı yukarı yarılamış. Dördüncü poz "Up". Ayak bileği tüm vücudu havalandırmış ve ileri doğru itmiş yani bir sonraki adım için vücudun düşüşünü hazırlamış. (Yürüyüşü, kontrollü düşme olarak tanımlarlar.) Beşinci ve son poz diğer ayağın kontakt pozisyonu. Bu pozla birlikte karakterin başının nasıl bir çizgi içinde hareket ettiğini de görmüş oluyoruz. Pozlarımızın arasındaki frame sayısı ise 3. Yani 1-4-7-10-13 şeklinde sıralanıyor timeline'ımızda. Ara kareler, geleneksel metodda inbetweener animatörler tarafından dolduruluyor, 3d animasyonda da "curve editor" ile key frame'ler arasındaki değerleri editlemeye çalışıyorsunuz.
Şimdi Motion Builder'a gelelim ve avantajlarını görelim: Motion Builder'da gayet iyi gözüken bir walk cycle yapmak için iyi pozlanmış 2 poz yetiyor! Sadece 1 contact ve 1 breakdown pozla gayet sağlıklı yürüyen bir karakter oluşturulabiliyor.
Motion Builder'ı açalım ve öncelikle Asset Browser'dan tutorials klasörüne bakalım ve hali hazırda MB ile gelen bir karakteri sahnemize sürükleyerek açalım.