Shadow
From Aegisub Wiki
Shadow by Bakura, v1.2
It look much better with vobsub 2.38 (no black borders) downloaded from Administrator's site.
include("karaskel.lua")
script_name = "Shadow"
script_description = "Effect that I made for Darker Than Black op"
script_author = "Bakura"
script_version = "1.2"
function new_shadow(subs)
aegisub.progress.task("Getting header data...")
local meta, styles = karaskel.collect_head(subs)
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)
end
ttt=0
function do_fx(subs, meta, line)
for i = 1, line.kara.n do
local syl = line.kara[i]
local x=syl.center + line.left
local y=line.margin_v + 40
if i == 1 then
qqq=0
end
--main line with fades
l = table.copy(line)
l.text = string.format("{\\an5\\pos(%d,%d)\\1c&H%s&\\fad(400,400)}%s", x, y, line.styleref.color1, syl.text_stripped)
l.start_time=line.start_time-800+qqq
l.end_time=line.end_time+qqq
l.layer = 1
subs.append(l)
--syllables
l = table.copy(line)
l.text = string.format("{\\an5\\be1\\pos(%d,%d)\\1c&H%s&\\3c&HFFFFFF&\\bord5)}%s", x, y, line.styleref.color2, syl.text_stripped)
l.start_time=line.start_time+syl.start_time
l.end_time=l.start_time+syl.duration
l.layer = ttt+1
subs.append(l)
--shadows
if syl.duration > 0 then
l = table.copy(line)
rrr=1
l.start_time = line.start_time + syl.start_time
l.end_time = line.start_time + syl.end_time
l.layer = ttt
for g=0, 9 do
l.text = string.format("{\\1a&H%d&\\be1\\an5\\shad0\\bord0\\1c&HFFFFFF&\\pos(%d,%d)\\t(0.1\\fscx%d\\fscy%d\\alpha&HFF&)}%s",rrr*9, x , y-2, 150+(g*15), 150+(g*15), syl.text_stripped)
rrr = rrr + 1
subs.append(l)
end
end
ttt=ttt+1
qqq=qqq+(1000/line.kara.n)
end
end
aegisub.register_filter("Shadow", "", 2000, new_shadow)
