From 6e91655583bc6e0340a918d274ce612ce08ef57d Mon Sep 17 00:00:00 2001 From: Sting <lallegre26@gmail.com> Date: Fri, 14 Jul 2023 12:18:34 +0200 Subject: [PATCH] Add basic jump template to ASS --- assUtils.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/assUtils.py b/assUtils.py index 3345d5b..e14f20a 100644 --- a/assUtils.py +++ b/assUtils.py @@ -39,35 +39,56 @@ ScriptType: v4.00+ WrapStyle: 0 ScaledBorderAndShadow: yes YCbCr Matrix: None +PlayResX: 1920 +PlayResY: 1080 [Aegisub Project Garbage] [V4+ Styles] Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding -Style: Default,Arial,48,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1 +Style: Default,Arial,48,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,8,10,10,10,1 [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text +Comment: 0,0:00:00.00,0:00:00.00,Default,,0,0,0,code once all,line_in_retime = -900; line_out_retime = 300; fade_in_dur = 200; fade_out_dur = 200 +Comment: 0,0:00:00.00,0:00:01.68,Default,,0,0,0,code once all,syl_shift = -75; syl_in_speed = 3.5; syl_out_speed = 3 +Comment: 0,0:00:03.68,0:00:05.68,Default,,0,0,0,code syl all,bord = line.styleref.outline; shadow = line.styleref.shadow; blur = 2 +Comment: 0,0:00:05.68,0:00:05.68,Default,,0,0,0,, +Comment: 0,0:00:05.68,0:00:05.68,Default,,0,0,0,, +Comment: 10,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("start2syl",line_in_retime,syl_shift)!{\\fad(!fade_in_dur!,0)\\bord!bord!\shad!shadow!\\blur!blur!\\3c!line.styleref.color3!\c!line.styleref.color3!\pos($x,$y)} +Comment: 20,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("start2syl",line_in_retime,syl_shift)!{\fad(200,0)\\bord0\shad0\c!line.styleref.color2!\pos($x,$y)} +Comment: 10,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("syl",syl_shift,syl_shift-$dur/syl_in_speed)!{\\3c!line.styleref.color3!\c!line.styleref.color3!\\bord!bord!\shad!shadow!\\blur!blur!\move($x,$y,$x,!$y-($height/8)!,0,!($dur > syl_in_speed * 400 and 400 or $dur/syl_in_speed)!)} +Comment: 40,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("syl",syl_shift,syl_shift-$dur/syl_in_speed)!{\\bord0\shad0\c!line.styleref.color2!\\t(0,!($dur > syl_in_speed * 400 and 400 or $dur/syl_in_speed)!,\c!line.styleref.color1!)\move($x,$y,$x,!$y-($height/8)!,0,!($dur > syl_in_speed * 400 and 400 or $dur/syl_in_speed)!)} +Comment: 10,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("postsyl",syl_shift-$dur/syl_in_speed,($lstart + $send + ($dur/12)) < ($lend + 300) and $dur/12 or $lend - $lstart - $send + 300)!{\\3c!line.styleref.color3!\c!line.styleref.color3!\\bord!bord!\shad!shadow!\\blur!blur!\move($x,!$y-($height/8)!,$x,!$y!,0,!$dur/syl_out_speed!)!($lstart + $end + $dur/12) < ($lend + 300) and "" or "\\fad(0,150)"!} +Comment: 40,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("postsyl",syl_shift-$dur/syl_in_speed,($lstart + $send + ($dur/12)) < ($lend + 300) and $dur/12 or $lend - $lstart - $send + 300)!{\\bord0\shad0\move($x,!$y-($height/8)!,$x,!$y!,0,!$dur/syl_out_speed!)!($lstart + $end + $dur/12) < ($lend + 300) and "" or "\\fad(0,150)"!} +Comment: 10,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("syl2end",$dur/12,line_out_retime)!{\\fad(0,!fade_out_dur!)\\bord!bord!\shad!shadow!\\blur!blur!\\3c!line.styleref.color3!\c!line.styleref.color3!\pos($x,$y)} +Comment: 20,0:00:05.68,0:00:10.43,Default,,0,0,0,template char noblank all,!retime("syl2end",$dur/12,line_out_retime)!{\c!line.styleref.color1!\\fad(0,!fade_out_dur!)\\bord0\shad0\pos($x,$y)} +Comment: 0,0:00:05.68,0:00:05.68,Default,,0,0,0,, +Comment: 0,0:00:05.68,0:00:05.68,Default,,0,0,0,, ''' self.file.write(header) def writeSyls(self, syl_timings, syls_per_line=10000): + bottom = False last_syl_dur = 500 syl_index = 0 while syl_index < (len(syl_timings) - syls_per_line): start_time = timeToDate(syl_timings[syl_index][0]) end_time = timeToDate(syl_timings[syl_index + syls_per_line][0]) - line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,0,,' + v_margin = (150 if bottom else 50) + line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,{v_margin:d},,' for i in range(syl_index, syl_index + syls_per_line): syl_dur = round((syl_timings[i+1][0] - syl_timings[i][0]) * 100) line += f'{{\k{syl_dur:d}}}{syl_timings[i][1]:s}' line += '\n' self.file.write(line) syl_index += syls_per_line + bottom = not bottom start_time = timeToDate(syl_timings[syl_index][0]) end_time = timeToDate(syl_timings[-1][0] + last_syl_dur//100) - line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,0,,' + v_margin = (150 if bottom else 50) + line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,{v_margin:d},,' for i in range(syl_index, len(syl_timings) - 1): syl_dur = round((syl_timings[i+1][0] - syl_timings[i][0]) * 100) line += f'{{\k{syl_dur:d}}}{syl_timings[i][1]:s}' -- GitLab