After Effects Expressions 1
adem Kılıc Tarih: 17/07/2008 Yorum: 2 adet
Okunma : 577 Tutanlar: Bu yazıyı 1 kişi tuttu.
After Effects’de Expressions ile Basit Animasyon Yapmak
Expressions jawa tabanlı kod ile nesneleri senkronize hale getirmek.
Örnekte yapılacak olan işlem otomobil’in x kordinatında gidiş yönü hızına göre tekerleklerin dönüş yönü ve hızını belirlemek.
new Composition ile yeni bir compozisyon açıp otomobil resmimizi compozisyon içine atıp ( ctrl + D ) ile bir kopyasını çıkarıyoruz.
alt layer daki resmi gizleyip Pen Tool ile sadece kasayı maskeliyoruz.
Aynı şekilde gizlediğimiz layer i görünür hale getirip bu defa da tekerleği maskeliyoruz.
Tekerleğin kendi ekseninde dönmesi için tekerlek seçili iken Pan Behind Tool ile odak noktasını nesnenin ortasına getiriyoruz aksi halde odak noktası neresi ise o noktayı referans alıp etrafında dönecektir.
Aynı şekilde maskelediğimiz otomobil kasasının odak noktasını da tekerleğin odak noktası ile aynı konuma getiriyoruz.
Şimdi yapmamız gereken tekerleğin dönüş kordinatını otomobilin pozisyon kordinatına kilitlemek.
Bunun için tekerlek seçili iken tranform > rotation Alt basılı iken Mouse ile tıklamap Expressions: Rotation a ulaşmak Expressions pick Whiparacı ile otomobilin position kordinatına bağlamak.
Bu işlemi gerçekleştirdikten sonra, otomobili x yönünde sağa sola senkronize bir şekilde hareket ettirdiğiniz zaman tekerleğin hareket hızına göre senkronize bir şekilde döndüğünü göreceksiniz. Ama tekerleğin pozisyonu sabit kalacaktır.

Tekerleğinde pozisyonunu da otomobile kilitlemek için tekerlek seçili iken tranform > position Alt basılı iken Mouse ile tıklamap Expressions: position a ulaşıp Expressions pick Whip ile otomobilin position kordinatına bağlamak gerekiyor.
sonuc:
Evet aslında çok haklısın bu konuda, ama bu kadar ağır bir kodla başlamak istemedim buradaki amaç sadece nesneleri nasıl birbirine bağlarız dı. Çok basit bir başlangıç ama bu arada anlatılmak istenen olay biraz daha farklı burada matematiksel işlemler ön planda değil.
Hem tekerleğin dönüş hızını ( *= ) metodu ile istediğin kadar hızlandıra bilirsin :)
İyi Çalışmalar.
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Ders
Etkinlikler
Konferans
Dijital Pazarlama Konferansı - Digitalage 2008
Dijital Pazarlama Konferansı - Digitalage 2008
360° Dijital Pazarlama etkinliği 21 Kasımda Istanbul Hyatt Regency’de düzenlenecek ve aşağıda detaylarını bulacağınız başlıklar çerçevesinde kon...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 256 (0 kayıtlı, 256 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









Sevgili Adem,
Aslında bu konu önemli bir konu çünkü, giden arabanın tekerleklerinin yere tam basarak ve de kaymadan dönmesi After Effects’te Expression kullanılmadan yapılamayacak animasyonlardan birtanesi. Yanlız ciddi bir projede bu konuya yaklaşım daha değişik oluyor.
Senin gösterdiğin metod biraz basit bir expression kullanımı olmuş. Eğer dönen bir tekerlek olmasaymış da herhangi iki nesneyi birbirine bağlasaymışız o zaman daha uygun olurdu ama burada göz önünde bulundurmak gereken daha fazla faktör var. Örneğin tekerleğin çapının; (dolaylı olarak çevresinin) yere tam basması ve kaymaması açısından büyük önemi var.
Şöyle düşünebilirsin: Senin gösterdiğin metodda arabanın soldan sağa giderken katettiği pixel cinsinden değeri, tekerleğin dönme açısına bağlıyorsun. Yani araban 30 pixel sağa gitmişse, tekerleğin 30 derece dönecek. Buradaki pixel-derece ilişkisi doğru değil. Araban 360 pixel sağa gitmişse tekerleğin tam tur atmış olacak, bu da tekerleğin çoğu zaman kayması demek olacak. Yani zemine tam basmadan, kayarak, arabadan gittiği yoldan daha hızlı veya daha yavaş dönmesine neden oluyor. Eğer öyle olmasaydı, bütün çemberlerin çapının 360 pixel olması gerekirdi
Bu arada konuyu anlatırken, tek değişkenli rotation değerini iki değişkenli olan position değerine bağlamışsın pickwhip ile. Bu da doğru değil aslında. AE bu gibi durumlarda bizi uyarıyor ve bu expresssionu iptal ediyor. Burada çok önemli değil konu olarak ama gene de değinmek istedim.
Peki nasıl yapabiliriz o zaman kaymadan giden bir tekeri. Aslında matematik olarak olaya yaklaşırsak daha doğru bir expression yazabiliriz. Öncelikle tekerin çevresini hesaplamamız gerekir çünkü katettiği yolda kaç tur attığını bulmamız gerekir. Örneğin tekerin çevresi 1 metre ise, 10 metrelik bir yolda 10 tam tur atmış olması doğrudur. İşte bu temel fizik-matematik kuralını temel alarak bir expression yazalım tekerleğin rotationuna.
Matematik kuralı olarak, Çevre=2.π.r
Tekerleğin yarı çapını aslında bulmamıza gerek yok çünkü formüldeki 2.r yerine geçen "width" özelliğini kullanabiliriz tekerleğin. Yani,
2. r = width;
O zaman çevre=width.π
AE, Java Script kulandığı için (Jawa değil) π değerini de Math.PI olarak formülde yerine koyabiliriz:
Çevre=width*Math.PI
Şimdi tekerimizin çevresini hesap ettik. Katettiği pixel değerinden yolu bulup çevreye bölersek kaç tur atmış olduğunu buluruz.
Yol=position[0] diyebiliriz. Position[0] herhangi bir cismin X ekseninde aldığı değerdir. Yani sağa sola giderken aldığı pixel cinsinden değer. AE’de ilk değer 0, ikinci değer 1 oluyor. Yani position[0]=X , position[1]=Y gibi…
O zaman expression için
diyebiliriz. Bu expression ile bir eksende yol kateten bir tekerleğin kaç tur atması gerektiğini bulmuş oluruz. Son olarak da bulduğumuz bu tam tur değerini rotation açısına çevirmeliyiz.Sadece bu şekilde, kaymadan, bir tekerleği sağa sola döndürerek götürebilirsin.
Burada bir örneğini yaptım: kaymadan dönen teker