Bu konu, bazı faydalı ifade tekniklerini özetlemektedir.
Sık Kullanılan İfadeler #
Bu başlıkta, animasyon oluştururken işinize yarayabilecek bazı ifadeler listelenmiştir.
Dairesel Yol #
[ Yarıçap * cos(360*Zaman), Yarıçap * sin(360*Zaman), 0 ]
Burada Time, NT veya S gibi önceden tanımlanmış zaman değişkenlerinden biridir.
İki yarıçap değerini eşitsiz yaparsanız, elips şeklinde bir yol elde edersiniz.
Sıfırdan farklı bir Z bileşeni belirtirseniz, yol artık düzlemsel olmaz.
Başka Bir Nesneyi Takip Etmek #
[X, Y, Z] + Konum
Burada Position, ikinci nesnenin Position denetleyicisidir.
[X, Y, Z] vektörü, ikinci nesneden bir uzaklık olabilir. (Eğer [0,0,0] ise, iki nesne aynı konumdadır.) Ayrıca, kendi içinde bir hareketi belirten bir vektör ifadesi de olabilir.
Bir Nesneyi İki Nesne Arasında Tutmak #
(Konum1 + Konum2) / 2
Burada Position1 ve Position2 , iki nesnenin konum denetleyicileridir.
2 böleni, nesnenin diğer iki nesne arasında tam ortada olmasını kısıtlar. Diğer değerler ise nesnenin farklı konumlarda olmasını kısıtlar.
Diğer Nesneler Arasında Sekmek #
(1+sin(360*Zaman))/2 * (Poz1-Poz2) + Poz2
Burada Time, NT veya S gibi önceden tanımlanmış zaman değişkenlerinden biridir; Pos1 ve Pos2 ise diğer iki nesnenin konum denetleyicileridir.
(1+sin(360*Zaman))/2 alt ifadesi, zaman içinde 0 ile 1 arasında salınım yapan bir değerdir. (Pos1-Pos2), diğer iki nesne arasındaki vektördür. İkisini çarptıktan sonra Pos2’yi bir ofset olarak eklemek, nesneyi bu vektör üzerinde konumlandırır.
Kamera Mesafesine Bağlı Olarak Bir Nesnenin Segment Sayısını Değiştirme #
Bu ifade, bir silindirdeki segment sayısını kameranın mesafesine bağlı olarak değiştirir. Silindirin Segment oluşturma parametresine atanır.
eğer ( (length(Camera-Myself) > 35), 3 + (50*Yükseklik) / uzunluk(Kamera-Kendim), MaxSegs)
Burada Camera, kameranın konum kontrolcüsüdür; Myself, silindirin konum kontrolcüsüdür; Height (= 70), silindirin yüksekliğidir; MaxSegs (=100), maksimum segment sayısıdır.
Kamera daha yakın olduğunda, daha fazla segment silindiri daha pürüzsüz hale getirir; kamera uzakta olduğunda ise pürüzsüzleştirme daha az önemli hale gelir ve daha az segment daha hızlı işlenir.
`if()` fonksiyonu, ilk argüman doğruysa ikinci argümanını, aksi takdirde üçüncü argümanını döndürür. Bu örnekte, kamera silindirden 35 birimden daha uzaktaysa, ifade segment sayısını hesaplar; kamera 35 birim uzakta veya daha yakınsa, segment sayısı `MaxSegs` sabitidir.
İkinci argümandaki değerler, mesafe 35 eşiğine doğru azaldıkça segment sayısının MaxSegs’e doğru artacak şekilde seçilmiştir. “3+” eklemesi, bölme işlemi sıfıra yuvarlansa bile (Segments bir tam sayıdır) silindirin her zaman en az üç segmente sahip olmasını sağlar.
