Obyek | Keterangan | Contoh |
---|---|---|
thisComp | Komposisi saat ini | thisComp; |
thisLayer | Lapisan saat ini | thisLayer.transform.scale[1]; |
thisProperty | Properti Saat Ini Ekspresi diterapkan. | thisProperty[1]; |
time | Kode waktu saat ini pada posisi kursor dalam hitungan detik. | "Seconds: " + time; |
value | Nilai saat ini terkait dengan properti saat ini. | value + "_TEST"; |
Obyek | Keterangan | Contoh |
---|---|---|
colorDepth | Kedalaman warna proyek dalam bit per piksel. | colorDepth; |
Fungsi | Keterangan |
---|---|
layer(index || number) | Mengembalikan objek lapisan, cahaya atau kamera. |
layer(layer, relIndex) | Mengembalikan objek dengan indeks relatif ke lapisan yang diberikan. |
Fungsi | Keterangan | Contoh |
---|---|---|
framesToTime(frames, fps) | Konversi bingkai menjadi kode waktu dalam hitungan detik. | framesToTime(50, 1.0 / thisComp.frameDuration); |
timeToCurrentFormat(t, fps, isDuration) | Konversi kode waktu ke format tampilan pengaturan proyek saat ini. | |
timeToFeetAndFrames(t, fps, framesPerFoot, isDuration) | Konversi kode waktu menjadi kaki dan bingkai format. | |
timeToFrames(t, fps, isDuration) | Konversi kode waktu menjadi bingkai. | |
timeToNTSCTimecode(t, ntscDropFrame, isDuration) | Konversi kode waktu ke kode waktu NTSC dengan atau tanpa bingkai drop. | |
timeToTimecode(t, timecodeBase, isDuration) | Konversi kode waktu ke kode waktu lain menggunakan basis waktu yang diberikan. |
Fungsi | Keterangan | Contoh |
---|---|---|
comp(name) | Temukan komposisi terbuka dengan nama yang diberikan. | comp("Comp 1"); |
footage(name) | Temukan rekaman proyek dengan nama yang diberikan. | footage("RedHarring.png"); |
Anda memiliki:
Anda ingin:
Larutan:
Katakanlah Anda memiliki lapisan bentuk dengan bentuk persegi panjang.
Atur induk lapisan persegi panjang ke lapisan teks ini akan membuat posisi relatif terhadap posisi lapisan teks.
Tambahkan ekspresi berikut ke properti ukuran jalur persegi panjang
var textLayer = thisComp . layer ( "Text Layer 1" ) ;
var textRect = textLayer . sourceRectAtTime ( time - textLayer . inPoint , true ) ;
// set size of rectangle path to text rectangle's width and height
[ textRect . width , textRect . height ] ;
Ini akan mengatur ukuran persegi panjang ke ukuran teks. Ketika ada beberapa baris, dibutuhkan ukuran penuh dari semua garis.
var rectPath = content ( "Rectangle 1" ) . content ( "Rectangle Path 1" ) ;
var x = rectPath . size [ 0 ] ;
var y = rectPath . size [ 1 ] ;
// set position of rectangle path to text rectangle's width and height
[ x / 2 , - ( y / 2 ) ] ;
Ini mengatur posisi kiri bawah dari jalur persegi panjang ke kiri atas lapisan. Lapisan teks selalu memiliki titik jangkar di kiri bawah baris teks pertama. Ini akan membuat perhitungan lebih mudah dilakukan.
var textLayer = thisComp . layer ( "Text Layer 1" ) ;
var textRect = textLayer . sourceRectAtTime ( time - textLayer . inPoint , true ) ;
[ textLayer . transform . position [ 0 ] + textRect . left ,
textLayer . transform . position [ 1 ] + textRect . top + textRect . height ] ;
Ini menetapkan posisi lapisan persegi panjang ke posisi teks. Alasan untuk menambahkan ukuran persegi panjang, adalah karena render font dapat menyebabkan huruf pertama menjadi beberapa piksel dari posisi. Menambahkan koordinat persegi panjang akan mengkompensasi itu.
Masalah:
Anda memiliki:
Anda ingin:
Tambahkan jitter horizontal ke video sehingga terlihat seperti 50 Hz interlacing.
Larutan:
[ transform . position [ 0 ] , transform . position [ 1 ] + ( ( timeToFrames ( time ) % 2 ) * 2 ) ]
Masalah:
Jitter terlalu berat Anda dapat menyelesaikannya dengan menghapus multiplikasi dalam ekspresi
[ transform . position [ 0 ] , transform . position [ 1 ] + ( timeToFrames ( time ) % 2 ) ]
Atau bahkan banyaknya setengahnya untuk mendapatkan goyang yang sangat halus.
[ transform . position [ 0 ] , transform . position [ 1 ] + ( ( timeToFrames ( time ) % 2 ) * 0.5 ) ]
Teks perlu dipusatkan secara vertikal. Tambahkan ekspresi berikut ke properti transformasi lapisan teks
S = thisLayer ;
x = transform . position [ 0 ] ;
y = transform . position [ 1 ] ;
rect = S . sourceRectAtTime ( time , false ) ;
y_offset = rect . height / 2 ;
[ x , y - y_offset ]