Paksa ukuran satu baris teks mengikuti lebar yang telah ditetapkan

Problem

Seringkali ketika saya membuat animasi teks di After Effects, saya ingin agar berapapun panjang teks, lebarnya harus selalu sama. Keinginan ini mengharuskan saya adjust manual ukuran teks dengan pre-defined width. Cara manualnya dengan mengatur value Scale agar lebar teks tidak bocor keluar batas. Dampkanya, value Scale tiap layer akan berbeda. Contoh baris teks yang punya jumlah kata sedikit, maka value Scalenya akan lebih besar ketimbang baris teks dengan banyak kata. Simak contoh problem di bawah.

Dapat dilihat, jika teks hanya dua kata, maka value Scale yang harus saya set adakah 392, ketika layer teks punya lebih dari dua kata (lorem ipsum dolor sit amet), saya harus sesuaikan value Scale jadi 186.

Sangat manual dan melehakan bukan? kemudian bagaimana caranya supaya penentuan value Scale dapat dijalankan otomatis regardless berapa jumlah kata di layer teks?

simak solusi di bawah

Solusi

kita akan memakai expression di properti Scale, fungsinya agar perhitungan value Scale yang dibutuhkan dapat dilakukan oleh sistem After Effects. Berikut step by stepnya

Layer Teks

Buat layer teks, lalu ketikkan kalimat yang ingin kalian pakai. Saya pakai dua kata Lorem Ipsum hanya sebagai contoh

Slider Control

Berikan effect Slider Control di layer teks tersebut. Beri nama Slider Control Lebar Fix untuk mudah dikenali. Pasang value Slider Control sesuai lebar maksimal yang diinginkan. Saya pasang value 1534

Scale Expression

Pasang expression ini di properti Scale. Shortcut Scale After Effects adalah S

layerIni = thisLayer;
lebarTeks = layerIni.sourceRectAtTime().width;

maxLebar = thisLayer("Effects")("Lebar Fix")("Slider");
scaleVal = (maxLebar/lebarTeks) * 100;

[scaleVal, scaleVal]

Simak demo di bawah, bagaimana automasi bekerja ketika menulis banyak kata. Value Scale akan mengikuti panjang teks atau jumlah kata

Ulasan

Berikut penjelasan bagi teman-teman yang ingin mengerti bagaimana perhitungan otomatis bekerja

layerIni = thisLayer;
lebarTeks = layerIni.sourceRectAtTime().width;

maxLebar = thisLayer("Effects")("Lebar Fix")("Slider");
scaleVal = (maxLebar/lebarTeks) * 100;

[scaleVal, scaleVal]
  • Baris satu layerIni : Kita beri arah referensi expression ke layer yang bersangkutan
  • Baris dua lebarTeks : Kita mengambil value lebar dari teks yang kita ketik
  • Baris tiga maxLebar : Kita tetapkan value lebar maksimal untuk value Scale teks. Ukruannya pixel. dan nilai yang saya tetapkan 1534
  • Baris empat scaleVal : kita hitung relatifitas antara lebar teks vs lebar maksimal yang sudah kita set
  • Baris lima [scaleVal, scaleVal] : kita set hasilnya, dibutuhkan dua value karena properti Scale harus punya dua value seperti properti Position

Semoga bermanfaat!

Leave a comment

Your email address will not be published. Required fields are marked *