View Categories

İfade Kontrol Teknikleri

2 dakika okuma

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.

Not: Bu ifade için kameranın, silindirin veya her ikisinin de hareket etmesinin bir önemi yoktur.

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir