TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua

标题: [OTo]007 LoveLive!ED [打印本页]

作者: 忘却の小伊    时间: 2014-7-15 23:09:16     标题: [OTo]007 LoveLive!ED

本帖最后由 忘却の小伊 于 2014-7-15 23:11 编辑

以前做的,今天刚好有人问我要脚本,我还以为扔了,现在补上
  1. from tcaxPy import *

  2. def tcaxPy_Init():
  3.     global _FD                              # frame duration, in millisecond
  4.     global _Fs
  5.     _FD = 1000 / GetVal(val_FXFPS)
  6.     _Fs = GetVal(val_FontSize)

  7. def fr(x):

  8.     X = randint(-x,x)

  9.     return frx(X)+fry(X)+frz(X)

  10. def frin(x):

  11.     X = randint(30,x)

  12.     return frx(X)+fry(X)+frz(X)

  13. time_gap = 1    # you can change this value to 0, or 2 or any other number
  14. time_fac = 1    # you can change this value to 0, or 2 or any other number
  15. _BL = blur(4)

  16. CL=[ "26B1FD", "CECECE","C8E787","6883FF","FCD8AF","A9E096","AF7BFF","FA6CA7","FC8769","F596EE" ]

  17. shape = ["{\p1}m 0 0 l 0 0 l 0 0 l 0 9 b 0 9 -1 8 -3 9 b -3 9 -5 10 -4 12 b -4 12 -3 13 -1 12 b -1 12 1 11 1 10 b 1 10 1 9 1 9 l 1 1 b 2 2 3 2 2 6 b 5 2 2 1 1 0 {\p0}","{\p1}m 0 0 l 0 0 l 0 7 b 0 7 0 6 -1 7 b -1 7 -3 8 -2 9 b -2 9 -1 10 0 9 b 0 9 1 8 1 8 b 1 8 1 7 1 7 l 1 1 l 7 0 l 7 6 b 7 6 6 5 5 6 b 5 6 3 7 4 8 b 4 8 5 9 6 8 b 6 8 8 8 8 7 b 8 6 8 6 8 6 l 8 -1 {\p0}"]
  18. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):

  19.     ASS_BUF  = []        # 保存ASS特效
  20.     TCAS_BUF = []        # 保存TCAS特效
  21.    
  22.    
  23.     duration = 10 * _FD
  24.     in_ts = _BT + _j * time_fac * _FD / 10 - time_gap * _FD / 10 - duration / 10
  25.     in_te = _BT + _j * time_fac * _FD / 10 - time_gap * _FD / 10
  26.    
  27.     out_ts = _ET - (_n - _j - 1) * time_fac * _FD / 10 + time_gap * _FD / 10
  28.     out_te = _ET - (_n - _j - 1) * time_fac * _FD / 10 + time_gap * _FD / 10 + duration / 10
  29.    

  30.     if _i < 9 or _i ==14:

  31.     #################进入方式#################
  32.    
  33.         in_EFT = move(_x+30, _y-30,_x,_y)+fsc(70,70)+frin(70)+t(fsc(100,100)+fr(0))+ fad(duration, 0) + _BL
  34.         ass_main(ASS_BUF, SubL(in_ts, in_te), in_EFT, _txt)


  35.     #################表现效果#################

  36.         ass_main(ASS_BUF, SubL(in_te,_BT+_SK),pos(_x,_y)+_BL,_txt)

  37.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT/2),pos(_x,_y)+_BL+t(fsc(80,80)),_txt)
  38.         
  39.         if _i < 4 :
  40.             _COLOR = color1("HFC8769")+color3("FFFFFF")+color4(CL[randint(0,9)])
  41.             
  42.         if _i > 3 and _i<7 :
  43.             _COLOR = color1("HFF42FF")+color3("FFFFFF")+color4(CL[randint(0,9)])
  44.             
  45.         if _i > 6 :
  46.             _COLOR = color1("H029FF4")+color3("FFFFFF")+color4(CL[randint(0,9)])
  47.             
  48.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT/2,_BT+_SK+_KT),pos(_x,_y)+t(_COLOR)+_BL+fsc(80,80)+t(fsc(100,100)),_txt)
  49.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,out_ts),pos(_x,_y)+_COLOR+_BL,_txt)
  50.    
  51.    
  52.     ################退场方式#################
  53.    
  54.         out_EFT = move(_x, _y, _x + 60, _y) + _COLOR + fad(0, duration) +_BL
  55.         ass_main(ASS_BUF, SubL(out_ts, out_te), out_EFT, _txt)

  56.    
  57.     ##################附加效果#################


  58.         po_ts = in_te + _SK - _KT/2- 20       # 效果开始时间
  59.         po_te = in_te + _SK + _KT/2           # 效果结束时间

  60.         EFT1 = alpha1(170) + alpha3(170) + color1('FFFFFF') + bord(5) + blur(5) + t(0, 100, bord(3) + blur(3)) + fad(0, 200)
  61.         EFT2 = alpha1(170) + alpha3(0) + color1('FFFFFF') + color3('FFFFFF') + bord(3) + blur(3) + t(0, 100, bord(1) + blur(1) + alpha3(70)) + fad(0, 200)
  62.         num = 60    # 曲线上点的个数
  63.    
  64.     #####  point1  #####

  65.         xs  = _x  + randint(-8*_a/3  , 8*_a/3  )    # 开始点
  66.         ys  = _y  + randint(-2*_Fs , _Fs/2   )
  67.         xc1 = xs  + randint(-2*_a    , 2*_a    )     # 控制点1
  68.         yc1 = ys  + randint(-7*_Fs/6 , 7*_Fs/6 )
  69.         xc2 = xc1 + randint(-4*_a/3  , 4*_a/3  )    # 控制点2
  70.         yc2 = yc1 + randint(-_Fs     , _Fs     )
  71.         xe  = _x     # 结束点
  72.         ye  = _y
  73.         points = Bezier3(num, xs, ys, xe, ye, xc1, yc1, xc2, yc2)   # 3阶贝塞尔曲线, 控制点的生成是重点以及难点
  74.         for i in range(num):
  75.             POS = pos(points[i][0], points[i][1])   # 获取曲线上点坐标
  76.             EFT = POS + EFT1 + color3(CL[_j%10])
  77.             ass_main(ASS_BUF, SubL(po_ts+i , po_te +i, 10, Pix_Style), EFT, PixPt())
  78.             EFT = POS + EFT2
  79.             ass_main(ASS_BUF, SubL(po_ts+i , po_te +i, 10, Pix_Style), EFT, PixPt())   
  80.    
  81.     #####  point1  #####
  82.         if _KT > _n*8 :
  83.             xs  = _x  + randint(-8*_a/3  , 8*_a/3  )    # 开始点
  84.             ys  = _y  + randint(-2*_Fs , _Fs/2   )
  85.             xc1 = xs  + randint(-2*_a    , 2*_a    )     # 控制点1
  86.             yc1 = ys  + randint(-7*_Fs/6 , 7*_Fs/6 )
  87.             xc2 = xc1 + randint(-4*_a/3  , 4*_a/3  )    # 控制点2
  88.             yc2 = yc1 + randint(-_Fs     , _Fs     )
  89.             xe  = _x     # 结束点
  90.             ye  = _y
  91.             points = Bezier3(num, xs, ys, xe, ye, xc1, yc1, xc2, yc2)   # 3阶贝塞尔曲线, 控制点的生成是重点以及难点
  92.             for i in range(num):
  93.                 POS = pos(points[i][0], points[i][1])   # 获取曲线上点坐标
  94.                 EFT = POS + EFT1 + color3(CL[_j%10])
  95.                 ass_main(ASS_BUF, SubL(po_ts , po_te +i, 10, Pix_Style), EFT, PixPt())
  96.                 EFT = POS + EFT2
  97.                 ass_main(ASS_BUF, SubL(po_ts , po_te +i, 10, Pix_Style), EFT, PixPt())        
  98.             
  99.             
  100.     elif _i ==15:
  101.    
  102.     #################进入方式#################

  103.         in_EFT = an(2)+move(_x+_a, _y+_Fs*7/4,_x,_y+_Fs*7/4) + fad(duration, 0) + _BL
  104.         ass_main(ASS_BUF, SubL(in_ts, in_te,5), in_EFT, _txt)


  105.     #################退场方式#################
  106.    
  107.         out_EFT = an(2)+move(_x, _y+_Fs*7/4, _x -_a, _y+_Fs*7/4) +color3(CL[randint(0,9)])+color4(CL[randint(0,9)]) + fad(0, duration) +_BL
  108.         ass_main(ASS_BUF, SubL(out_ts, out_te,5), out_EFT, _txt)
  109.         

  110.     #################表现效果#################
  111.         ass_main(ASS_BUF, SubL(in_te,_BT+_SK,5),an(2)+pos(_x,_y+_Fs*7/4)+_BL,_txt)
  112.         
  113.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT/2,5),an(2)+pos(_x,_y+_Fs*7/4)+_BL+t(fsc(115,115)+color3("FFFFFF")+color4("FFFFFF")),_txt)
  114.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT/2,_BT+_SK+_KT,5),an(2)+pos(_x,_y+_Fs*7/4)+_BL+fsc(115,115)+color3("FFFFFF")+color4("FFFFFF")+t(fsc(100,100)+color3(CL[randint(0,9)])+color4(CL[randint(0,9)])),_txt)
  115.         
  116.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,out_ts,5),an(2)+pos(_x,_y+_Fs*7/4)+color3(CL[randint(0,9)])+color4(CL[randint(0,9)])+_BL,_txt)
  117.         
  118.         
  119.         
  120.         
  121.    
  122.     else :
  123.    
  124.    #################进入方式#################
  125.    
  126.         in_EFT = an(2)+move(_x+30, _y+_Fs/2-30,_x,_y+_Fs/2,5)+fsc(70,70)+frin(70)+t(fsc(100,100)+fr(0))+ fad(duration, 0) + _BL
  127.         ass_main(ASS_BUF, SubL(in_ts, in_te,5), in_EFT, _txt)


  128.     #################退场方式#################
  129.    
  130.         out_EFT = an(2)+move(_x, _y+_Fs/2, _x + 60, _y+_Fs/2,5) + color3(CL[randint(0,9)])+color4(CL[randint(0,9)]) + fad(0, duration) +_BL
  131.         ass_main(ASS_BUF, SubL(out_ts, out_te,5), out_EFT, _txt)


  132.     #################表现效果#################

  133.         ass_main(ASS_BUF, SubL(in_te,_BT+_SK,5),an(2)+pos(_x,_y+_Fs/2)+_BL,_txt)

  134.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT/2,5),an(2)+pos(_x,_y+_Fs/2)+_BL+t(fscy(60)+color3("FFFFFF")+color4("FFFFFF")),_txt)
  135.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT/2,_BT+_SK+_KT,5),an(2)+pos(_x,_y+_Fs/2)+_BL+fscy(60)+color3("FFFFFF")+color4("FFFFFF")+t(fscy(100)+color3(CL[randint(0,9)])+color4(CL[randint(0,9)])),_txt)

  136.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,out_ts,5),an(2)+pos(_x,_y+_Fs/2)+color3(CL[randint(0,9)])+color4(CL[randint(0,9)])+_BL,_txt)
  137.    
  138.    
  139.     #################附加效果#################
  140.    
  141.         for i in range(10):
  142.             ass_main(ASS_BUF, SubL(_BT+_SK+_KT/2,_BT+_SK+4*_KT),move(_x+randint(-15,15),_y+randint(-15,15),_x+randint(-40,40),_y+randint(-40,40))+fad(10, duration)+color1("FFFFFF")+color3(CL[randint(0,9)])+bord(0.5)+shad(0)+blur(2)+fr(60)+t(fr(60)), shape[randint(0,1)])
  143.         
  144.    
  145.    


  146.     return (ASS_BUF, TCAS_BUF)
复制代码
http://pan.baidu.com/s/1sjk9TrZ
作者: oiuu    时间: 2014-11-7 08:14:05

巨巨,您好,您的Oto008 006 都执行成功,为何这个007不行?这是什么情况,有什么不同吗?

图片附件: 截图.jpg (2014-11-7 08:13:43, 136.02 KB) / 下载次数 1697
http://tcax.org/forum.php?mod=attachment&aid=MTgyNXwyM2Y2NzliOXwxNzMyMjk0NDE4fDB8MA%3D%3D


作者: Sky℃    时间: 2014-11-7 23:25:37

这个好漂亮的说
作者: a404538806    时间: 2015-6-21 19:47:40

小白表示这要怎么才能用。




欢迎光临 TCAX 字幕特效制作工具官方论坛 | ASS | TCAS | Python | Aegisub | Lua (http://tcax.org/) Powered by Discuz! X2