Anda di halaman 1dari 4

include("karaskel.

lua") memanggil lua eksternal


script_name = "th2adp_op" nama script. Pastikan sama dengan nama filenya
script_description = "Okay" deskripsi script
script_author = "c0balt" pembuat script
script_version = "1.0" versi script
** pada bagian yang saya italickan berikut, yaitu function th2dp_op, tidak perlu anda pahami, setidaknya untuk awal
pembelajaran. Tapi jika anda ingin tahu, silahkan anda buka file lua yg diincludekan di bagian atas script ini, di folder instalasi
aegisub anda **
function th2adp_op(subs) pastikan nama fungsi ini juga sama dengan nama scriptnya
aegisub.progress.task("Getting header data...")
local meta, styles = karaskel.collect_head(subs)

end

aegisub.progress.task("Applying effect...")
local i, ai, maxi, maxai = 1, 1, #subs, #subs
while i <= maxi do
aegisub.progress.task(string.format("Applying effect (%d/%d)...", ai, maxai))
aegisub.progress.set((ai-1)/maxai*100)
local l = subs[i]
if l.class == "dialogue" and
not l.comment then
karaskel.preproc_line(subs, meta, styles, l)
do_fx(subs, meta, l)
maxi = maxi - 1
subs.delete(i)
else
i=i+1
end
ai = ai + 1
end
aegisub.progress.task("Finished!")
aegisub.progress.set(100)

function do_fx(subs, meta, line) pada fungsi inilah, manipulasi subs dilakukan
if line.style == "OpRomaji" then jika sebuah line memiliki style bernama OpRomaji
for i = 1, line.kara.n do perulangan dilakukan sampai seluruh suku kata dalam satu baris
** berikut adalah inisialisasi variable secara lokal yang mana nilainya bergantung pada isi dari satu line yang akan dimanipulasi
itu sendiri **
local syl = line.kara[i] isi suku kata masuk ini
local x=syl.center + line.left posisi x suku kata masuk sini
local y=line.margin_v + 30 posisi y suku kata masuk sini
** berikut terdapat 3 buah bagian, yaitu: pra efek, efek, dan pasca efek. Setiap suku kata akan diduplikatkan menjadi 3. setiap
bagian memiliki waktu dan tags yang berbeda, yang kemudian disusun secara berurutan sehingga tampak seperti satu
kesatuan.
1. pra efek dimulai sesuai yg ditentukan dan akan berakhir pada waktu yg bersamaan dengan mulainya efek.
2. efek dimulai saat pra efek berakhir dan akan berakhir saat pasca efek dimulai
3. pasca efek dimulai saat pra efek berakhir yang sebenarnya terhalangi oleh efek dikarenakan lapisan yang lebih tinggi dan
berakhir sesuai yg ditentukan.
Anda dapat membelah bagian2 tersebut menjadi 5 atau lebih, sesuai dengan animasi yang anda inginkan **
-- --pra efek---------------------------------if syl.duration > 0 then jika nilai xx dalam {\kxx} sebuah suku kata lebih besar dari 0
l = table.copy(line) sukukata2 dalam satu line didefinisikan sebagai sebuah tabel
l.start_time = line.start_time 200 mengatur waktu mulai suku kata

l.end_time = line.start_time + syl.start_time mengatur waktu akhir suku kata


l.layer = 3 mengatur posisi lapisan sukukata, seperti layer dalam foto editor
l.text = string.format("{\\an5\\pos(%d,%d)\\1c%s\\fad(200,0)}%s",x,y,line.styleref.color2,
syl.text_stripped) menentukan tags overrider yang akan diterapkan dalam sukukata. %d adalah double (angka) dan %s
adalah string (karakter) yang isinya merujuk pada variable setelah tanda petik penutup. Pastikan urutannya tepat agar nilainya
tidak salah masuk.
subs.append(l) sebuah suku kata merupakan satu bagian dengan suku kata sebelumnya. Karena itu
dilakukan perpanjangan
end menutup pengkondisian if syl.duration > 0
-- --efek----------------------------------if syl.duration > 0 then
l = table.copy(line)
l.start_time = line.start_time + syl.start_time
l.end_time = line.start_time + syl.end_time
l.layer = 100
l.text = string.format("{\\an5\\shad0\\pos(%d,
%d)\\1c&HFFFFFF&\\2c&HFFFFFF&\\3c&HFFFFFF&\\4c&HFFFFFF&\\fad(0,%d)}%s", x , y, syl.duration/2, syl.text_stripped)
subs.append(l)
end
-- --pasca efek-------------------------------------if syl.duration > 0 then
l = table.copy(line)
l.start_time = line.start_time + syl.start_time
l.end_time = line.end_time + 200
l.layer = 3
l.text = string.format("{\\an5\\pos(%d,%d)\\1c%s\\fad(0,200)}%s",x,y,line.styleref.color1, syl.text_stripped)
subs.append(l)
end
-- -------------------------------------------End menutup perulangan dalam satu line

End menutup pengkondisian untuk line berstyle OpRomaji

End menutup fungsi do_fx


aegisub.register_filter("th2adp_op", "", 2000, th2adp_op) pastikan yg bergaris bawah juga sama dengan yg di atas
** cobalah untuk mengubah nilai2 yang ada dalam variable2 diatas agar anda tahu apa memberi dampak bagaimana. Coba
ganti nilai layer, waktu mulai dan berakhirnya sukukata. Coba tambahkan tags yang lain. **

Anda mungkin juga menyukai