[Script Info] ; Script generated by Aegisub 3.0.4 ; http://www.aegisub.org/ Title: Default Aegisub file ScriptType: v4.00+ WrapStyle: 0 ScaledBorderAndShadow: yes Collisions: Normal Last Style Storage: Default Scroll Position: 0 Active Line: 15 Video Zoom Percent: 1 PlayResX: 1280 PlayResY: 720 YCbCr Matrix: None [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: http://effects.zz.mu-furigana,Arial,10,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1 Style: http://effects.zz.mu,UVF Fiolex Girls,110,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,50,1 [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,color={"&H0000FF&","&HFF000F&","&H06F424&","&HFF00D4&","&HFB00FF&","&H00FFDF&"} Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,,0,0,0,karaoke, Comment: 0,0:00:00.00,0:00:05.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code syl all,function phong(ref) ci[ref]=ci[ref]+1; return "" end Comment: 0,0:00:05.00,0:00:07.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code line all,ci={0,0,0,0,0,0}; cn= _G.unicode.len(orgline.text_stripped:gsub(" ","")) Comment: 0,0:00:15.27,0:00:15.27,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,xres, yres = _G.aegisub.video_size() if xres == nil then x_rat = 1 y_rat = 1 else x_rat = xres/1280 y_rat = x_rat end function set_temp(ref,val) temp[ref] = val; return val; end temp = {} function bezier_move(x1,y1,x2,y2,x3,y3,x4,y4,t1,t2,accel,afterimage_blur,afterimage_dur,density) if density == 0 or density == nil then density = 1 end if afterimage_blur == 0 or afterimage_blur == nil then x_blur = 0 y_blur = 0 else x_blur = math.random(-afterimage_blur,afterimage_blur)/3 y_blur = math.random(afterimage_blur) end if afterimage_dur == nil or afterimage_dur < frame_dur then afterimage_dur = frame_dur end if accel == nil then accel = 1 end x_pos = {} y_pos = {} dur = t2 - t1 frames = math.floor(dur/(frame_dur/density)) x_pos[j] = (1-(j/frames)^accel)^3 * x1 + 3*(1-(j/frames)^accel)^2 * ((j/frames)^accel) * x2 + 3*(1-(j/frames)^accel) * ((j/frames)^accel)^2 * x3 + ((j/frames)^accel)^3 * x4 y_pos[j] = (1-(j/frames)^accel)^3 * y1 + 3*(1-(j/frames)^accel)^2 * ((j/frames)^accel) * y2 + 3*(1-(j/frames)^accel) * ((j/frames)^accel)^2 * y3 + ((j/frames)^accel)^3 * y4 if j == 1 then maxloop(frames) end retime("presyl",t1+(j-1)*(frame_dur/density),t1+j*(frame_dur/density)+afterimage_dur) return string.format("\\move(%d,%d,%d,%d)",x_pos[j],y_pos[j],x_pos[j] + x_blur ,y_pos[j] + y_blur) end function tags(dur) tag = string.format("\\t(%d,%d,\\fscx%d\\fscy%d)\\t(%d,%d,\\fscx35\\fscy35)\\t(%d,%d,\\fscx%d\\fscy%d)\\t(%d,%d,\\fscx35\\fscy35)",set_temp("time",math.random(dur-200)),temp.time+1,set_temp("size",math.random(10,100)),temp.size,temp.time+2,temp.time+100,temp.time+101,temp.time+102,set_temp("size",math.random(10,100)),temp.size,temp.time+103,temp.time+200) return tag end shape = {"m 6 0 b 0 0 0 10 6 10 b 12 10 13 0 6 0 l 7 10 ","m 30 23 b 24 23 24 33 30 33 b 36 33 37 23 30 23 m 35 27 l 61 28 l 35 29 m 26 27 l 0 28 l 26 29 m 29 23 l 30 0 l 31 23 m 29 33 l 30 57 l 31 33 "} msa = _G.aegisub.ms_from_frame(1) msb = _G.aegisub.ms_from_frame(100) if msa == nil and msb == nil then frame_dur = 33 else frame_dur = (msb-msa)/100 end Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,xres, yres = _G.aegisub.video_size() ratio = meta.res_y/720 if (xres and xres ~= meta.res_x) or (yres and yres ~= meta.res_y) then _G.aegisub.debug.out(2, "Warning: script resolution %dx%d does not match with loaded video resolution %dx%d resample script resolution(menu>subtitles>resample resolution>click from video)", meta.res_x, meta.res_y, xres, yres) end; temp = {} function set_temp(ref,val) temp[ref] = val return val end; t = 0 Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,function Vector_Move(s_time,e_time,afterimage_dur,x_blur,y_blur,accel,base_pos_x,base_pos_y,max_space,scale_x,scale_y,s) if (j == 1) then t = 0 pos_x = {} pos_y = {} if (afterimage_dur < 0 ) then afterimage_dur = 0 end c_point_x = {} c_point_y = {} point = {} i = 1 s:gsub("(%S+)", function(w) point[i] = w i = i + 1 end) dur = e_time-s_time i = 1 m = 0 max_x = -10000 min_x = 10000 max_y = -10000 min_y = 10000 scale_x = scale_x / 100 scale_y = scale_y / 100 while i <= #point do c_point_x = {} c_point_y = {} if point[i] == "m" then s_point_x = point[i+1] s_point_y = point[i+2] i = i + 3 elseif point[i] == "b" then c_point_x[1] = s_point_x*scale_x c_point_y[1] = s_point_y*scale_y for k = 2, 4, 1 do c_point_x[k] = point[i+1+(k-2)*2]*scale_x c_point_y[k] = point[i+2+(k-2)*2]*scale_y end max_x = math.max(max_x,_G.unpack(c_point_x)) max_y = math.max(max_y,_G.unpack(c_point_y)) min_x = math.min(min_x,_G.unpack(c_point_x)) min_y = math.min(min_y,_G.unpack(c_point_y)) c_point_x[1] = s_point_x*scale_x+base_pos_x c_point_y[1] = s_point_y*scale_y+base_pos_y for k = 2, 4, 1 do c_point_x[k] = point[i+1+(k-2)*2]*scale_x+base_pos_x c_point_y[k] = point[i+2+(k-2)*2]*scale_y+base_pos_y end s_point_x = point[i+5] s_point_y = point[i+6] i = i + 7 elseif point[i] == "l" then c_point_x[1] = s_point_x*scale_x c_point_y[1] = s_point_y*scale_y c_point_x[2] = point[i+1]*scale_x c_point_y[2] = point[i+2]*scale_y max_x = math.max(max_x,_G.unpack(c_point_x)) max_y = math.max(max_y,_G.unpack(c_point_y)) min_x = math.min(min_x,_G.unpack(c_point_x)) min_y = math.min(min_y,_G.unpack(c_point_y)) c_point_x[1] = s_point_x*scale_x+base_pos_x c_point_y[1] = s_point_y*scale_y+base_pos_y c_point_x[2] = point[i+1]*scale_x+base_pos_x c_point_y[2] = point[i+2]*scale_y+base_pos_y s_point_x = point[i+1] s_point_y = point[i+2] i = i + 3 else _G.aegisub.debug.out("Unknown drawing command. You can use only \"m\" , \"b\" , \"l\"^^;") i = #point+1 end c_t = 0 n = #c_point_x if n ~= 0 then while c_t <= 1 do m = m + 1 pos_x[m], pos_y[m] = Bezier(n,c_point_x,c_point_y,c_t) n_x, n_y = Bezier(n,c_point_x,c_point_y,c_t+0.1) dist = math.sqrt(math.abs(n_x-pos_x[m])^2+math.abs(n_y-pos_y[m])^2) c_t = c_t + max_space/dist*0.1 end end end maxloop(m) end retime("presyl",s_time+dur*(t^accel),s_time+dur*((t+1/m)^accel)+afterimage_dur) t = t + 1/m adjust_x = -(max_x - min_x) / 2 - min_x adjust_y = -(max_y - min_y) / 2 - min_y return string.format("\\move(%f,%f,%f,%f,%f,%f)",pos_x[j],pos_y[j],pos_x[j]+x_blur,pos_y[j]+y_blur,afterimage_dur/2,afterimage_dur) end Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,function Bezier(n,x,y,t) p_x = 0 p_y = 0 for i = 1, n, 1 do p_y = p_y + y[i] * set_temp("bern",bernstein(i-1,n-1,t)) p_x = p_x + x[i] * temp.bern end return p_x, p_y end Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,function bernstein(i,n,t) return (factk(n) / (factk(i)*factk(n-i))) * (t^i) * ((1-t)^(n-i)) end Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,code once,function factk(n) k = 1 if (n > 1) then for i = 2, n, 1 do k = k * i end end return k end Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,template noblank notext,!retime("start2syl",-1000,0)!{!Vector_Move(-1000,1000,0,0,0,1,$scenter+10,$smiddle+10,5,$width*3,$width*3,"m -20 0 b -20 -30 26 -30 26 -1 b 26 28 -20 28 -20 0 ")!\an5\fsc80\frz-30\3c&HFFFFFF&\c&HFF00F2&\bord0.5\blur0.2\p1}m 0 15 b 11 9 14 3 14 -1 b 15 -7 7 -15 0 -7 b -6 -15 -15 -7 -13 -1 b -12 3 -10 9 0 15 Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,template noblank notext,!retime("start2syl",-1000,0)!{!Vector_Move(-1000,1000,4000-3000+200,0,0,1,$scenter,$smiddle,5,$width*3,$width*3,"m -20 0 b -20 -30 26 -30 26 -1 b 26 28 -20 28 -20 0 ")!\an5\fscx!(40-20*t)*ratio*(1.5-(0.5*($si/$syln)))!\fscy!(40-20*t)*ratio*(1.5-(0.5*($si/$syln)))!\1c&HFFFFFF&\3c&HF99FFF&\blur2\3a&HA0&\fscx!20*x_rat!\fscy!20*x_rat!!(set_temp("rand",math.random(1,5)) == 1) and string.format("\\fr45\\blur3\\3a&HA0&\\bord1\\fscx%d\\fscy%d",15*x_rat,15*x_rat)..tags(line.duration) or ""!\fad(0,500)\p1}!(temp.rand == 1) and shape[2] or shape[1]! Comment: 0,0:00:20.70,0:00:20.70,http://effects.zz.mu,NhatPhongCr,0,0,0,template char,!retime("start2syl",-1200+(ci[1]-1)*25,0)!!phong(1)!{\an5\1vc(&HAD00FF&,&HAD00FF&,&HFFFFFF&,&HFFFFFF&)\moves4(!$lcenter!,!$lmiddle+20*(-1)^(syl.i+1)!,$scenter,!$smiddle-70*(-1)^(syl.i+1)!,$scenter,!$smiddle+70*(-1)^(syl.i+1)!,$scenter,$smiddle,0,1200)\blur!math.random(4,6)!\bord!math.random(1.2,2.2)!\3c&HFFFFFF&\t(0,1000,\blur0\bord0.2)} Comment: 0,0:00:00.00,0:00:00.00,http://effects.zz.mu,NhatPhongCr,0,0,0,template syl,!retime("syl",0,1000)!{\an5\t(0,$sdur,\fsc110\blur!math.random(3,5)!\bord3\3c!color[math.random(6)]!\c&HFFFFFF&)\pos($scenter,$smiddle)\t(!line.duration-600!,!line.duration!,\bord0\blur0\fsc100)\fad(0,300)} Comment: 0,0:00:20.84,0:00:22.84,http://effects.zz.mu,NhatPhongCr,0,0,0,template syl,!retime("line",-1000,500)!!maxloop(2)!{\an5\blur!math.random(3,6)!\1c&HFFFFFF&\3c&HF99FFF&\bord!math.random(2,4)!\fsc8\moves3(!$scenter+math.random(-20,40)*(-1)^(syl.i+1)!,!$smiddle+math.random(-40,60)*(-1)^(syl.i+1)!,!$scenter+math.random(-60,20)*(-1)^(syl.i+1)!,!$smiddle+math.random(-10,90)*(-1)^(syl.i+1)!,!$scenter+math.random(-90,80)*(-1)^(syl.i+1)!,!$smiddle+math.random(-50,50)*(-1)^(syl.i+1)!)\fad(200,200)\p1}m 40 0 b 13 0 13 41 40 41 b 68 41 68 0 40 0 Comment: 0,0:00:00.00,0:00:04.00,http://effects.zz.mu,,0,0,0,karaoke,{\k38}Na{\k22}reul {\k21}du{\k17}go {\k25}ga{\k26}ji{\k40}ma {\k24}ga{\k29}ji{\k41}ma {\k20}ga{\k25}ji{\k84}ma {\k21}