Hareket Eğrileri ile CSS Animasyonunu Yükseltme

Yayınlanan: 2022-03-10
Hızlı özet ↬ UI animasyonu var ve ardından iyi UI animasyonu var. İyi animasyon sizi “Vay canına!” — pürüzsüz, güzel ve hepsinden önemlisi doğal, bloklu, katı veya robotik değil. Dribbble veya UpLabs'ı sık sık kullanıyorsanız, neden bahsettiğimi anlayacaksınız. Bu kadar güzel animasyonlar yaratan pek çok harika tasarımcı varken, herhangi bir geliştirici doğal olarak bunları kendi projelerinde yeniden oluşturmak isteyecektir. Şimdi, CSS transition-timing-function için bazı ön ayarlar sağlar, örneğin bir miktar yumuşaklık ve gerçekçilik ekleyen, ease-in-out ve ease-out ease-in gibi, ancak bunlar çok geneldir, değil mi? Web'deki her animasyon aynı üç zamanlama işlevini izleseydi ne kadar sıkıcı olurdu?

UI animasyonu var ve ardından iyi UI animasyonu var. İyi animasyon sizi “Vay canına!” — pürüzsüz, güzel ve hepsinden önemlisi doğal, bloklu, katı veya robotik değil. Dribbble veya UpLabs'ı sık sık kullanıyorsanız, neden bahsettiğimi anlayacaksınız.

Smashing hakkında daha fazla okuma :

  • Klip yolu ile SVG ve CSS animasyonları
  • Pratik Animasyon Teknikleri
  • SVG ile 'elle çizilmiş' Animasyonlar Oluşturma
  • Yeni Web Animasyonu API'si

Bu kadar güzel animasyonlar yaratan pek çok harika tasarımcı varken, herhangi bir geliştirici doğal olarak bunları kendi projelerinde yeniden oluşturmak isteyecektir. Şimdi, CSS transition-timing-function için bazı ön ayarlar sağlar, örneğin bir miktar yumuşaklık ve gerçekçilik ekleyen, ease-in-out ve ease-out ease-in gibi, ancak bunlar çok geneldir, değil mi? Web'deki her animasyon aynı üç zamanlama işlevini izleseydi ne kadar sıkıcı olurdu?

(Kredi: Lukaš Stranak)
Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

transition-timing-function özelliklerinden biri, kendi zamanlama fonksiyonunuzu oluşturmak için dört sayı iletebileceğiniz cubic-bezier(n1, n2, n3, n4) 'dir. Bu makalenin sonuna doğru, bu dört sayının tam olarak neyi temsil ettiğini bileceksiniz - yine de, inanın bana, kafanızda hayal ettiğiniz geçişi yakalamak için dört sayı bulmak hiç de kolay değil. Ama cubic-bezier ve Ceasar sayesinde buna gerek yok. Bu araçlar, web'e hareket eğrileri getirir.

Hareket eğrileri, öncelikle animatörler tarafından (örneğin, Adobe After Effects'te) gelişmiş, gerçekçi animasyonlar oluşturmak için kullanılır. cubic-bezier ve Ceasar ile bir eğrinin şeklini kolayca değiştirebilirsiniz ve bu dört sayı ( n1, n2, n3, n4 ) sizin için doldurulacaktır, bu kesinlikle harika! Yine de, hareket eğrilerini kullanmak ve bunlardan en iyi şekilde yararlanmak için nasıl çalıştıklarını anlamanız gerekir ve bu makalede yapacağımız şey bu. Hadi başlayalım.

Hareket Eğrilerini Anlama

Bir hareket eğrisi, canlandırılabilir herhangi bir özellik ile zaman arasındaki bir çizimden başka bir şey değildir. Hareket eğrisi, etkisi altında çalışan bir animasyonun hızının zaman içinde nasıl değiştiğini tanımlar.

Hareket eğrisi, canlandırılabilir özellik ile zaman arasındaki bir çizimdir.
Hareket eğrisi, canlandırılabilir bir özellik ile zaman arasındaki bir çizimdir. (Büyük versiyonu görüntüle)

Hareket ettirilebilir bir özellik örneği olarak mesafeyi ( translateX ) alalım. (Açıklama, başka herhangi bir canlandırılabilir özellik için geçerlidir.)

Mesafe-zaman grafiğinde t1 anında hız hesaplanıyor.
Mesafe-zaman grafiğinde t1 anında hız hesaplanıyor. (Büyük versiyonu görüntüle)

Fizik ve temel matematik ile ilgili herhangi bir deneyiminiz varsa, mesafe-zaman grafiğinden hız çözmenin çok basit olduğunu bilirsiniz. Zamanın bir fonksiyonu olarak mesafenin zamana göre ilk türevi hızdır; bu, bir mesafe-zaman eğrisini takip eden bir nesnenin, eğrinin dik olduğu yerlerde daha yüksek ve eğrinin daha düz olduğu yerlerde daha düşük hıza sahip olacağı anlamına gelir. . Bunun nasıl çalıştığını biliyorsan, harika! Artık hazırsınız ve bir sonraki bölüme geçebilirsiniz.

Artık tasarım ve geliştirmenin farklı bir alan olduğunun ve herkesin aynı geçmişe sahip olmadığının farkındayım. Belki de yukarıdaki iki paragraf sizin için jargondu. Üzülme. Devam edeceğiz ve jargonu anlamlandıracağız.

Aşağıdaki kırmızı kutuyu düşünün. Burada biraz toylaşalım ve kırmızı kutuya “Boxy” diyelim; ona bu şekilde değinmek daha kolay olacaktır. Pekala, Boxy ekranın bir kenarından diğerine doğrusal bir şekilde hareket edecek ve biz onun hareketini analiz edeceğiz.

transition-timing-function ön ayarlarından biri linear . Boxy'yi hareket ettirmek için tek yaptığımız aşağıdaki sınıfı eklemek.

 .moveForward { transform: translateX(1000px); }

Animasyonu kontrol etmek için Boxy için transition özelliğini aşağıdaki gibi ayarlardık:

 #boxy { width: 200px; height: 200px; background: red; transition-property: transform; transition-duration: 1s; transition-timing-function: linear; }

Bu, transition belirtmek için çok ayrıntılı bir yoldur. Gerçekte, transition hemen hemen her zaman kendi stenografi biçiminde yazılmış olarak bulacaksınız:

 #boxy { width: 200px; height: 200px; background: red; transition: transform 1s linear; }

Hadi bakalım.

Doğrusal hareket geçiren boxy
Doğrusal hareket yapan kutu.

Robotik, değil mi? Doğrusal olduğu için bu hareketin robotik olduğunu söyleyebilirsiniz, ki bu kesinlikle makul bir cevaptır. Ama nedenini açıklayabilir misin? linear ayarlamanın robotik hareketle sonuçlandığını görebiliriz, ancak sahnenin arkasında tam olarak ne oluyor? İlk önce çözeceğimiz şey bu; İç kısımlara gideceğiz ve bu hareketin neden robotik, bloklu ve doğal olmadığını anlayacağız.

Biraz içgörü kazanıp kazanamayacağımızı görmek için Boxy'nin hareketini çizerek başlayalım. Grafiğimiz, birincisi mesafe ve ikincisi olmak üzere iki eksene sahip olacaktır. Boxy, 1 saniyede (zaman) toplam 1000 piksel (mesafe) mesafe kat eder. Şimdi, aşağıdaki matematikten korkmayın - çok basit.

İşte eksenler belirtildiği gibi çok basit grafiğimiz.

Eksenleri olan boş grafik
Eksenleri olan boş grafik (Büyük versiyonu görüntüleyin)

Şu anda, boş. Bazı verilerle dolduralım.

Başlangıç ​​olarak, 0 saniyede, animasyon henüz başlamadığında Boxy'nin ilk konumunda (0 piksel) olduğunu biliyoruz. Ve 1 saniye geçtikten sonra Boxy, ekranın karşı kenarına inerek toplam 1000 piksel yol kat etti.

Boxy'nin ilk ve son pozisyonları
Boxy'nin ilk ve son konumları (Geniş versiyonu görüntüleyin)

Bu verileri grafik üzerinde çizelim.

Boxy'nin ilk ve son konumlarının çizildiği grafik
Boxy'nin ilk ve son konumlarının çizildiği grafik (Geniş versiyonu görüntüleyin)

Çok uzak çok iyi. Ancak iki veri noktası yeterli değil - daha fazlasına ihtiyacımız var. Aşağıdaki şekil, Boxy'nin farklı zaman noktalarındaki konumlarını göstermektedir (hepsi yüksek hızlı kameram sayesinde).

Boxy'nin farklı zaman noktalarındaki pozisyonları
Boxy'nin farklı zaman noktalarındaki konumları (Geniş versiyonu görüntüle)

Bu verileri grafiğimize ekleyelim.

Farklı konumların çizildiği grafik
Farklı konumların çizildiği grafik (Büyük versiyonu görüntüleyin)

Elbette, farklı zamanlar için çok daha fazla veri noktanız olabilir (örneğin, 0,375 saniye, 0,6 saniye, vb.), ancak elimizdekiler grafiğimizi tamamlamak için yeterlidir. Tüm noktaları birleştirerek grafiği tamamladık. Çak beşlik!

Son grafik
Nihai grafik (Büyük versiyonu görüntüleyin)

Harika, ama bu bize ne söylüyor? Boxy'nin lineer hareketinin neden doğal olmayan ve robotik hissettirdiğini anlamak amacıyla araştırmamıza başladığımızı hatırlıyor musunuz? Bir bakışta, az önce oluşturduğumuz bu grafik bize bununla ilgili hiçbir şey söylemiyor. Daha derine inmemiz lazım.

Grafiği aklınızda tutun ve bir dakikalığına hız hakkında konuşalım. Hızın ne olduğunu bildiğinizi biliyorum - sadece matematiksel terimlerle ifade etmek istiyorum. Devam ederken, hızın formülü şudur:

Hız için matematiksel formül
Hız için matematiksel formül (Büyük versiyonu görüntüleyin)

Bu nedenle, bir araba 1 saatte 100 kilometre yol alıyorsa, hızının saatte 100 kilometre olduğunu söylüyoruz.

temsil hızı
Temsil hızı (Büyük versiyonu görüntüleyin)

Araba hızını iki katına çıkarırsa, aynı aralıkta (1 saat) iki kat mesafeyi (200 kilometre) kat etmeye başlayacak veya başka bir deyişle, 100 kilometrelik orijinal mesafeyi yarı sürede (0.5 saat) kat edecektir. . Mantıklı olmak?

Benzer şekilde, araba hızını yarıya indirirse (yani yarıya yavaşlarsa), aynı aralıkta (1 saat) 50 kilometrelik bir mesafeyi kat etmeye başlayacak, yani ilk 100 kilometrelik mesafeyi kat edecekti. kilometrenin iki katı (2 saat).

Harika! Bu arada, kaldığımız yerden devam edelim. Mesafe ve zaman arasındaki grafiğin Boxy'nin lineer hareketinin neden robotik hissettirdiğini anlamamıza nasıl yardımcı olabileceğini anlamaya çalışıyorduk.

Bekle bir saniye! Mesafe ve zaman arasında bir grafiğimiz var ve hız, mesafe ve zamandan hesaplanabilir, değil mi? Boxy'nin hızını farklı zaman aralıklarında hesaplamaya çalışalım.

Farklı aralıklarla hız hesaplama
Farklı aralıklarla hız hesaplama (Büyük versiyonu görüntüle)

Burada üç farklı zaman aralığı seçtim: biri başlangıca yakın, biri ortada ve biri de son konuma yakın. Görüldüğü gibi, her üç aralıkta da Boxy, saniyede 1000 piksellik tam olarak aynı hıza (s1 = s2 = s3) sahiptir; yani yukarıdaki grafikte hangi aralığı seçerseniz seçin Boxy'nin saniyede 1000 piksel hızla hareket ettiğini göreceksiniz. Bu garip değil mi? Gerçek hayatta her şey sabit bir hızla hareket etmez; yavaş başlarlar, yavaş yavaş hızlarını arttırırlar, bir süre hareket ederler ve sonra durmadan önce tekrar yavaşlarlar, ancak Boxy aniden saniyede 1000 piksellik bir hızla başlar, aynı hızda hareket eder ve aniden tam olarak aynı hızda durur. Bu yüzden Boxy'nin hareketi robotik ve doğal değil. Bunu düzeltmek için grafiğimizi değiştirmemiz gerekecek. Ancak dalmadan önce, hızdaki değişikliklerin mesafe ve zaman arasında çizilen grafiği nasıl etkileyeceğini bilmemiz gerekecek. Hazır? Eğlenceli olacak.

Boxy'nin hızını iki katına çıkaralım ve grafiğin görünümünün yanıt olarak nasıl değiştiğini görelim. Boxy'nin orijinal hızı, yukarıda hesapladığımız gibi, saniyede 1000 pikseldir. Hızı iki katına çıkardığımız için Boxy artık 1000 piksellik mesafeyi yarı sürede, yani 0,5 saniyede kat edebilecek. Bunu bir grafiğe koyalım.

Çift hızı gösteren grafik
Çift hızı gösteren grafik (Büyük versiyonu görüntüleyin)

Ya hızı üç katına çıkarırsak? Boxy artık 1000 pikseli zamanın üçte birinde (saniyenin üçte birinde) kapsıyor.

Üçlü hızı gösteren grafik
Üçlü hızı gösteren grafik (Büyük versiyonu görüntüleyin)

Bir şey fark ettiniz mi? Grafik değiştiğinde, hız arttıkça doğrunun zaman ekseniyle yaptığı açının nasıl arttığına dikkat edin.

Pekala, devam edelim ve Boxy'nin hızını yarıya indirelim. Hızını yarıya indirmek, Boxy'nin 1 saniyede yalnızca 500 pikseli (orijinal mesafenin yarısı) kapsayabileceği anlamına gelir. Bunu bir grafiğe koyalım.

Yarım hızı gösteren grafik
Yarım hızı gösteren grafik (Büyük versiyonu görüntüleyin)

Boxy'yi biraz daha yavaşlatalım, hızı orijinalin üçte biri yapalım. Boxy, orijinal mesafenin üçte birini 1 saniyede kat edebilecek.

Hızın üçte birini gösteren grafik
Hızın üçte birini gösteren grafik (Büyük versiyonu görüntüleyin)

Bir desen gördün mü? Boxy'nin hızını artırdıkça çizgi giderek dikleşiyor ve Boxy'yi yavaşlatırken düzleşmeye başlıyor.

Hız arttıkça hat dikleşir ve hız azaldıkça düzleşir
Hız arttıkça hat dikleşir ve hız azaldıkça düzleşir. (Büyük versiyonu görüntüle)

Bu mantıklıdır, çünkü daha dik bir hat için, zamanda küçük bir ilerleme, mesafede çok daha yüksek bir değişime neden olur ve bu da daha fazla hız anlamına gelir.

Zamandaki küçük bir değişiklik, mesafede nispeten büyük bir değişiklik oluşturarak daha dik bir grafik oluşturur.
Zamandaki küçük bir değişiklik, mesafede nispeten büyük bir değişiklik oluşturarak daha dik bir grafik oluşturur. (Büyük versiyonu görüntüle)
Zamandaki küçük bir değişiklik, mesafede nispeten büyük bir değişiklik oluşturarak daha dik bir grafik oluşturur.
Zamandaki küçük bir değişiklik, mesafede nispeten büyük bir değişiklik oluşturarak daha dik bir grafik oluşturur. (Büyük versiyonu görüntüle)

Öte yandan, daha az dik olan bir hat için, zamanda büyük bir değişiklik, mesafede yalnızca küçük bir değişiklik, yani daha düşük bir hız anlamına gelir.

Daha az dik bir grafikte zamandaki değişime karşı mesafedeki değişim
Daha az dik bir grafikte zamandaki değişime karşı mesafedeki değişim (Büyük versiyonu görüntüleyin)
Daha az dik olan bir grafikte zamandaki değişime karşı mesafedeki değişim
Daha az dik bir grafikte zamandaki değişime karşı mesafedeki değişim (Büyük versiyonu görüntüleyin)

Yaptığımız tüm değişikliklerle Boxy, sadece farklı hızlarda doğrusal bir şekilde hareket etmeye devam ediyor. Ancak, mesafeye karşı zamana karşı yapılan değişikliklerin hızı nasıl etkileyebileceğine dair yeni edindiğimiz bilgilerle, Boxy'yi doğal ve gerçekçi görünen bir şekilde hareket ettiren bir grafik deneyebilir ve çizebiliriz.

Adım adım ele alalım. İlk olarak, gerçek hayatta işler yavaş başlar ve yavaş yavaş hızlanır. Öyleyse yapalım.

Aşağıda gösterilen grafiğin tüm yinelemelerinde, zıt köşelerdeki noktaların sabit kaldığını fark edeceksiniz. Bunun nedeni, animasyonun çalışma süresini veya Boxy'nin kat ettiği mesafeyi değiştirmememizdir.

Özel bir hareket eğrisi oluşturma
Özel bir hareket eğrisi oluşturma (Büyük versiyonu görüntüleyin)

Boxy yukarıdaki grafiği takip edecekse, 0.25 saniye boyunca daha yavaş bir hızda hareket edecektir, çünkü hat 0'dan 0.25 saniyeye kadar daha az diktir ve 0.25 saniye sonra aniden daha yüksek bir hıza geçecektir (nedeni 0.25 saniyeden sonra grafikteki çizgi daha dik hale gelir). Yine de bu geçişi yumuşatmamız gerekecek; herhangi bir köşe istemiyoruz - sonuçta buna hareket eğrisi deniyor. Bu köşeyi bir eğriye çevirelim.

Özel bir hareket eğrisi oluşturma
Özel bir hareket eğrisi oluşturma (Büyük versiyonu görüntüleyin)

Boxy'nin dinlenme durumundan yavaş yavaş artan hıza geçişine dikkat edin.

Yukarıdaki hareket eğrisini takip eden Boxy
Yukarıdaki hareket eğrisini takip eden kutu (Büyük versiyonu görüntüleyin)

İyi! Ardından, gerçek hayattaki nesneler durmadan önce aşamalı olarak yavaşlar. Bunu yapmak için grafiği değiştirelim. Yine, Boxy'nin yavaşlamaya başlamasını istediğimiz bir zaman noktası belirleyeceğiz. Yaklaşık 0,6 saniyeye ne dersiniz? Burada zaten bir eğriye geçişin köşesini düzelttim.

Nihai özel hareket eğrisi
Nihai özel hareket eğrisi (Büyük versiyonu görüntüleyin)

Boxy go'ya bakın! Çok daha doğal değil mi?

Özel hareket eğrisini takip eden Boxy
Boxy, özel hareket eğrisini takip ediyor (Büyük versiyonu görüntüle)

Köşe yerine çizdiğimiz eğri aslında birçok küçük doğru parçasının bir koleksiyonudur; ve zaten bildiğiniz gibi, grafikteki çizgi ne kadar dikse hız o kadar yüksek ve çizgi ne kadar düzse hız o kadar yavaş olur. Görüntünün sol tarafında, eğriyi oluşturan çizgi parçalarının nasıl giderek daha dik hale geldiğine ve hızın kademeli olarak artmasına ve sağ tarafta kademeli olarak düzleştiğine ve hızın kademeli olarak azalmasına neden olduğuna dikkat edin?

Eğri, birçok doğru parçasının bir araya gelmesinden başka bir şey değildir.
Eğri, birçok doğru parçasının bir araya gelmesinden başka bir şey değildir. (Büyük versiyonu görüntüle)

Tüm bu bilgilerle hareket eğrilerini anlamlandırmak çok daha kolay hale geliyor. Birkaç örneğe bakalım.

(Büyük versiyonu görüntüle)
örnek 1
Örnek 1 (Büyük versiyonu görüntüleyin)
(Büyük versiyonu görüntüle)
Örnek 2
Örnek 2 (Büyük versiyonu görüntüleyin)
(Büyük versiyonu görüntüle)
Örnek 3
Örnek 3 (Büyük versiyonu görüntüleyin)

UI Animasyonunda Hareket Eğrilerini Kullanma

Bir dahaki sefere bir UI öğesini canlandırmanız gerektiğinde, hareket eğrilerinin gücü emrinizde olacak. İster kayar bir çubuk, ister kalıcı bir pencere veya bir açılır menü olsun, doğru miktarda animasyon eklemek ve onu pürüzsüz ve doğal hale getirmek, kullanıcı arayüzünüzün kalitesini büyük ölçüde artıracaktır. Kullanıcı arayüzünü sadece iyi hissettirecek . Aşağıdaki açılır menüyü alın:

CodePen'de Nash Vail (@nashvail) tarafından kaleme alınan Pen nJial'e bakın.

CodePen'de Nash Vail (@nashvail) tarafından kaleme alınan Pen nJial'e bakın.

Hamburger menüsüne tıklamak soldan menüyü getiriyor, ancak animasyon bloklu hissediyor. CSS'nin 51. satırı, animasyonun linear olarak ayarlanmış transition-timing-function sahip olduğunu gösterir. Bunu iyileştirebiliriz. Kübik-bezier'e gidelim ve özel bir zamanlama işlevi oluşturalım.

Bunu okuyorsanız, bir tasarımcı, geliştirici veya her ikisi olduğunuzu ve dolayısıyla kübik bezier eğrilerine yabancı olmadığınızı varsaymak güvenlidir; Onlarla en az bir kez karşılaşmış olman için iyi bir şans var. Bezier eğrileri bir mucizedir. Öncelikle bilgisayar grafiklerinde şekil çizmek için kullanılırlar ve Sketch ve Adobe Illustrator gibi araçlarda vektör grafikleri çizmek için kullanılırlar. Kübik bezier eğrilerinin bu kadar popüler olmasının nedeni, kullanımlarının çok kolay olmasıdır: Sadece dört farklı noktanın konumlarını değiştirin ve ihtiyacınız olan eğriyi oluşturun.

Animasyonlu nesnenin ilk ve son durumlarını her zaman bildiğimiz için iki noktayı düzeltebiliriz. Bu, pozisyonlarını değiştirmemiz gereken sadece iki nokta bırakır. İki sabit noktaya bağlantı noktaları denir ve kalan iki nokta kontrol noktalarıdır.

Bir bezier eğrisinin parçaları
Bir bezier eğrisinin parçaları (Büyük versiyonu görüntüleyin)

Hatırladığınız gibi, cubic-bezier , özel bir transition-timing-function oluşturduğunuzda dört sayıyı ( n1, n2, n3, n4 ) kabul eder. Bu dört sayı, iki kontrol noktasının konumlarından başka bir şeyi temsil etmez: n1, n2 , birinci kontrol noktasının x ve y koordinatlarını ve n3, n4 ikinci kontrol noktasının koordinatlarını temsil eder. Kontrol noktalarının konumunu değiştirmek eğrinin şeklini değiştireceğinden ve dolayısıyla genel olarak animasyonumuz, n1, n2, n3, n4 herhangi biri veya tümü değiştirildiğinde sonuç aynıdır. Örneğin, aşağıdaki şekil cubic-bezier(.14, .78, .89, .35) :

(.14, .78, .89, .35) temsil eden bir kübik bezier eğrisi.
(.14, .78, .89, .35) temsil eden bir kübik bezier eğrisi (Büyük versiyonu görüntüle)

Bu görünüşte basit eğrilerin arkasındaki matematik büyüleyici.

Pekala, tamam, kübik-bezier ile gittiğimiz yere geri dönelim: özel bir transition-timing-function yaratmak. Menünün çok hızlı bir şekilde kaydığı ve ardından zarif bir şekilde yavaşlayıp sona erdiği türden bir animasyon istiyorum:

Kübik bezier eğrisinin ayarlanması
Kübik bezier eğrisinin ayarlanması (Büyük versiyonu görüntüleyin)

Bu iyi görünüyor. Animasyon, baştan sona sabit bir hızda hareket etmek yerine hızlı başlayacak ve ardından yavaşlayacaktır. Ben sadece sayfanın en üstünden cubic-bezier(.05, .69, .14, 1) kopyalayacağım ve linear ile değiştireceğim.

CodePen'de Nash Vail (@nashvail) tarafından kaleme alınan Pen nJial'e bakın.

CodePen'de Nash Vail (@nashvail) tarafından kaleme alınan Pen nJial'e bakın.

Farkı gör? İkinci yineleme çok daha doğal ve çekici geliyor. Kullanıcı arayüzünüzdeki her animasyonun doğal bir zamanlama işlevi izlediğini hayal edin. Bu ne kadar harika olurdu?

Gördüğümüz gibi, hareket eğrileri hiç de zor değil. Anlamaları ve kullanmaları çok kolaydır. Onlarla, kullanıcı arayüzünüzü bir sonraki seviyeye taşıyabilirsiniz.

Umarım hareket eğrilerinin nasıl çalıştığını öğrenmişsinizdir. Hareket eğrilerinin istediğiniz gibi çalışmasını sağlamak için çok fazla deneme yanılma sürecinden geçiyorsanız veya onları hiç kullanmıyorsanız, şimdi onları istediğiniz gibi büküp güzel animasyonlar oluşturmakta rahat olmalısınız. Çünkü sonuçta animasyon önemlidir.