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

 找回密码
 新人加入
查看: 5104|回复: 2

[完整特效] [youkaze]016_Hyouka_OP2 [复制链接]

Moderator

youkaze

Rank: 5Rank: 5

发表于 2012-11-27 11:19:29 |显示全部楼层
  1. from tcaxPy import *
  2. from pixLibs.ImageStone.pixStone import *
  3. from s import *
  4. from gdiFont import *  #加入GDIfont模块

  5. def tcaxPy_Init():
  6.     global _Fs
  7.     global Font
  8.     _Fs = GetVal(val_FontSize)
  9.     Font = InitFont(GetVal(val_FontFileName), GetVal(val_FaceID), _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)
  10.    
  11.    
  12.     global GdiFont   #GDIfont
  13.    
  14.     GdiFont = gfInitFont(GetVal(val_FontFaceName), _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0, False)   #GDIfont
  15.    


  16. def fsc(x):

  17.     X = randint(0,x)

  18.     return fscx(X)+fscy(X)

  19. def tcaxPy_Fin():
  20.     FinFont(Font)
  21.     gfFinFont(GdiFont)   #GDIfont


  22. def tcaxPy_User():
  23.     # 创建ASS文件
  24.     file_name  = GetVal(val_OutFile) + '.ass'
  25.     ass_header = GetVal(val_AssHeader)
  26.     ASS_FILE   = CreateAssFile(file_name, ass_header)
  27.     # 创建TCAS文件
  28.     file_name  = GetVal(val_OutFile) + '.tcas'
  29.     fx_width   = GetVal(val_ResolutionX)
  30.     fx_height  = GetVal(val_ResolutionY)
  31.     fx_fps     = GetVal(val_FXFPS)
  32.     TCAS_FILE  = CreateTcasFile(file_name, fx_width, fx_height, fx_fps)
  33.     # 基本数据, 如果需要查看含义, 请取消下面两行代码的注释
  34.     #GetHelp()
  35.     #Pause()
  36.     fontSize   = GetVal(val_FontSize)
  37.     marginX    = GetVal(val_OffsetX)
  38.     marginY    = GetVal(val_OffsetY)
  39.     spacing    = GetVal(val_Spacing)
  40.     lineNum    = GetVal(val_nLines)
  41.     textNum    = GetVal(val_nTexts)
  42.     start      = GetVal(val_BegTime)
  43.     end        = GetVal(val_EndTime)
  44.     kar        = GetVal(val_KarTime)
  45.     elapKar    = GetVal(val_KarTimeDiff)
  46.     text       = GetVal(val_Text)
  47.     textLength = GetVal(val_TextLength)
  48.     advance    = GetVal(val_TextAdvance)
  49.     advDiff    = GetVal(val_TextAdvanceDiff)
  50.     # 主循环
  51.     for i in range(lineNum):#lineNum
  52.         #initPosX = marginX                                         # an 7, 4, 1
  53.         initPosX = (fx_width - textLength[i]) / 2 + marginX        # an 8, 5, 2
  54.         #initPosX = fx_width - textLength[i] - marginX              # an 9, 6, 3
  55.         initPosY = marginY                                          # an 7, 8, 9
  56.         #initPosY = fx_height / 2 - marginY                         # an 4, 5, 6
  57.         #initPosY = fx_height - fontSize - marginY                  # an 1, 2, 3
  58.         for j in range(textNum[i]):
  59.             posX = initPosX + advDiff[i][j] + advance[i][j] / 2
  60.             posY = initPosY + fontSize / 2
  61.             # Fake1 一直有效
  62.             if text[i][j] == ' ': #text[i][j] == '' text[i][j] == ' '  
  63.                 continue
  64.             ASS_BUF, TCAS_BUF = tcaxPy_Main_Fake1(i, j, textNum[i], start[i], end[i], elapKar[i][j], kar[i][j], posX, posY, advance[i][j], text[i][j])
  65.             if len(ASS_BUF) > 0:
  66.                 WriteAssFile(ASS_FILE, ASS_BUF)
  67.             if len(TCAS_BUF) > 0:
  68.                 WriteTcasFile(TCAS_FILE, TCAS_BUF)
  69.             Progress(i, j)      # 显示进度
  70.     FinAssFile(ASS_FILE)
  71.     FinTcasFile(TCAS_FILE)
  72.    


  73. def tcaxPy_Main_Fake1(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):
  74.     elapk = GetVal(val_KarTimeDiff)[_i]

  75.     ASS_BUF = []
  76.     TCS_BUF = []
  77.    
  78.    
  79.     dx = _x - int(_a / 2 + 0.5)
  80.     dy = _y - int(_Fs / 2 + 0.5)
  81.    
  82.     if _i > -1 and _i < 6:
  83.         for i in range(_Fs):
  84.             ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(200,0), _txt)
  85.             ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8)), _txt)
  86.             ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8)), _txt)
  87.             
  88.             ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x+1,_y+_Fs-2)+bord(0)+shad(0)+blur(1)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(100,100), _txt)
  89.             ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x-1,_y+_Fs-2)+bord(0)+shad(0)+blur(1)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(100,100), _txt)
  90.             
  91.             ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(0,200), _txt)
  92.    
  93.    
  94.     if _i > 5:
  95.         for i in range(_Fs):
  96.             ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(200,0), _txt)
  97.             ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8)), _txt)
  98.             ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8)), _txt)
  99.             ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y+_Fs-2)+bord(0)+shad(0)+frx(180)+clip(dx,dy+_Fs+i,dx+_a,dy+_Fs+i+1)+color1('BBBBBB')+alpha1(110+(i*8))+fad(0,200), _txt)
  100.    
  101.    
  102.    
  103.     if _i > 9:
  104.         if _j%2 ==0:
  105.             ts1 = _BT + _SK
  106.             EFT1 = alpha1(0) + \
  107.                 bord(0) + blur(1.5)+fs(5) +t(fs(1)) + fad(0, 200)
  108.             num = 60
  109.             points1 = Bezier3(num, dx, dy, dx+_a, dy+_Fs, dx+10, dy-5,dx+_a-10, dy+_Fs+5)
  110.             for i in range(num):
  111.                 POS = pos(points1[i][0], points1[i][1])   # 获取曲线上点坐标
  112.                 EFT3 = POS + EFT1 + color1('FFB870')
  113.                 ass_main(ASS_BUF, SubL(ts1 +int(i/num*_KT), ts1 +int(i/num*_KT)+40, 1), EFT3, "●")
  114.                
  115.                 RAN =randint(0,500)
  116.                 EFT2 = alpha1(0) + \
  117.                 bord(0) + blur(0) + t(0+RAN,225+RAN,alpha1(255)) + t(255+RAN,450+RAN,alpha1(0)) + t(450+RAN,675+RAN,alpha1(255)) + t(675+RAN,900+RAN,alpha1(0)) + t(900+RAN,1125+RAN,alpha1(255)) + t(1125+RAN,1350+RAN,alpha1(0)) + fad(0, 200)
  118.                
  119.                 MOV = mov(points1[i][0], points1[i][1],points1[i][0]-40+randint(-20,30), points1[i][1]+randint(-30,30))   # 获取曲线上点坐标
  120.                 EFT4 = MOV + EFT2 +color1('FFFFFF') +an(5) +p(4) +fad(0,100)
  121.                 ass_main(ASS_BUF, SubL(ts1 +int(i/num*_KT), ts1 +int(i/num*_KT)+150, 1), EFT4, "m 0 19 l 20 19 l 26 0 l 33 19 l 52 19 l 36 31 l 42 49 l 26 38 l 10 49 l 16 31 l 0 19")
  122.         
  123.         
  124.         
  125.         else :
  126.             ts2 = _BT + _SK
  127.             EFT1 = alpha1(0) + \
  128.                 bord(0) + blur(1.5)+fs(5) +t(fs(1)) + fad(0, 200)
  129.             num = 60
  130.             points2 = Bezier3(num, dx, dy+_Fs, dx+_a, dy, dx+10, dy+_Fs+5, dx+_a-10, dy-5)
  131.             for i in range(num):
  132.                 POS = pos(points2[i][0], points2[i][1])   # 获取曲线上点坐标
  133.                 EFT3 = POS + EFT1 + color1('FFB870')
  134.                 ass_main(ASS_BUF, SubL(ts2 +int(i/num*_KT), ts2 +int(i/num*_KT)+40,2), EFT3, "●")
  135.                
  136.                 RAN =randint(0,500)
  137.                 EFT2 = alpha1(0) + \
  138.                 bord(0) + blur(0) + t(0+RAN,225+RAN,alpha1(255)) + t(255+RAN,450+RAN,alpha1(0)) + t(450+RAN,675+RAN,alpha1(255)) + t(675+RAN,900+RAN,alpha1(0)) + t(900+RAN,1125+RAN,alpha1(255)) + t(1125+RAN,1350+RAN,alpha1(0)) + fad(0, 200)
  139.                
  140.                 MOV = mov(points2[i][0], points2[i][1],points2[i][0]-40+randint(-20,30), points2[i][1]+randint(-30,30))   # 获取曲线上点坐标
  141.                 EFT4 = MOV + EFT2 +color1('FFFFFF') +an(5) +p(4) +fad(0,100)
  142.                 ass_main(ASS_BUF, SubL(ts2 +int(i/num*_KT), ts2 +int(i/num*_KT)+150,2), EFT4, "m 0 19 l 20 19 l 26 0 l 33 19 l 52 19 l 36 31 l 42 49 l 26 38 l 10 49 l 16 31 l 0 19")
  143.                
  144.                
  145.                
  146.                
  147.     COLOR1 = vc1('FFFFFF','FFFFFF','BBBBBB','BBBBBB')
  148.     if _i > -1 and _i < 6:
  149.         ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y)+fad(200,0)+bord(0)+shad(1.3)+COLOR1, _txt)
  150.         ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1+t(alpha1(255)), _txt)
  151.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1+K(_KT), _txt)
  152.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y)+fad(0,200)+bord(0)+shad(1.3)+COLOR1, _txt)
  153.         
  154.     elif  _i > 5 and _i < 8:
  155.         ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y)+fad(200,0)+bord(0)+shad(1.3)+COLOR1, _txt)
  156.         ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  157.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  158.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y)+fad(0,200)+bord(0)+shad(1.3)+COLOR1, _txt)
  159.         
  160.         T = ["{\p3}m -5 -15 l -15 0 l -6 7 l 9 12 l 5 4 l 13 -13 ","{\p3}m -11 -13 l -15 0 l -11 5 l 14 8 l 9 4 l 12 -12 ","{\p3}m -11 -11 l -11 -3 l -14 12 l 5 13 l 10 2 l 14 -13 ","{\p3}m -13 -6 l -12 -1 l -13 11 l 7 12 l 9 -2 l 7 -15 ","{\p3}m -9 -13 l -8 4 l -14 8 l 13 11 l 5 -2 l 10 -14 "]
  161.         TT = T[randint(0,4)]
  162.         points = gfGetPoints(GdiFont, _txt)  #GDIfont

  163.         PIX = PixFromPoints(points)   #GDIfont
  164.         FRY = frz(0+randint(0,360))
  165.         InitPosX = _x - int(_a / 2 + 0.5) + PIX[0][0]        # 第一个像素的X轴坐标
  166.         InitPosY = _y - int(_Fs / 2 + 0.5) + PIX[0][1]        # 第一个像素的Y轴坐标
  167.         for h in range(0,PIX[1][1],1):                                # 开始纵向扫描
  168.             PosY  = InitPosY + h
  169.             
  170.             for w in range(0,PIX[1][0],1):                        # 开始横向扫描
  171.                 PosX = InitPosX + w
  172.                 X = PosX-randint(-50,50)
  173.                 Y = PosY-randint(-50,50)                        # 当前像素X轴坐标
  174.                 idx  = 4 * (h * PIX[1][0] + w)                # 脚标
  175.                 PixR = PIX[2][idx + 0]                        # 当前像素的红色分量
  176.                 PixG = PIX[2][idx + 1]                        # 当前像素的绿色分量
  177.                 PixB = PIX[2][idx + 2]                        # 当前像素的蓝色分量
  178.                 PixA = PIX[2][idx + 3]                        # 当前像素的透明度
  179.                 if PixA != 0:                                # 如果当前像素不为透明则进行如下操作
  180.                     rnd = randint(-20,20)
  181.                     C = randint(-120,20)
  182.                     FSC = fsc(100+randint(-40,0))
  183.                     ass_main(ASS_BUF, SubL(_BT+_SK+rnd,_BT+_SK+20+rnd,1, Pix_Style),an(7)+pos(PosX,PosY)+alpha(255-PixA)+blur(1.2)+FRY+FSC+shad(0)+bord(0)+color1("FFFFFF"), TT)
  184.                     ass_main(ASS_BUF, SubL(_BT+_SK+20+rnd,_BT+_SK+_KT+100+w+C,1, Pix_Style),an(7)+mov(PosX,PosY,PosX,PosY+50+rnd)+fad(0,300-C)+alpha(255-PixA)+blur(1.2)+FRY+FSC+shad(0)+bord(0)+color1("FFFFFF"), TT)
  185.    
  186.     elif  _i == 8:
  187.         ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y)+fad(200,0)+bord(0)+shad(1.3)+COLOR1, _txt)
  188.         ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  189.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  190.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y)+fad(0,200)+bord(0)+shad(1.3)+COLOR1, _txt)
  191.         
  192.         points = gfGetPoints(GdiFont, _txt)  #GDIfont

  193.         PIX = PixFromPoints(points)   #GDIfont
  194.         FRY = frz(0+randint(0,360))
  195.         InitPosX = _x - int(_a / 2 + 0.5) + PIX[0][0]        # 第一个像素的X轴坐标
  196.         InitPosY = _y - int(_Fs / 2 + 0.5) + PIX[0][1]        # 第一个像素的Y轴坐标
  197.         for h in range(0,PIX[1][1],1):                                # 开始纵向扫描
  198.             PosY  = InitPosY + h
  199.             
  200.             for w in range(0,PIX[1][0],1):                        # 开始横向扫描
  201.                 PosX = InitPosX + w
  202.                 X = PosX-randint(-50,50)
  203.                 Y = PosY-randint(-50,50)                        # 当前像素X轴坐标
  204.                 idx  = 4 * (h * PIX[1][0] + w)                # 脚标
  205.                 PixR = PIX[2][idx + 0]                        # 当前像素的红色分量
  206.                 PixG = PIX[2][idx + 1]                        # 当前像素的绿色分量
  207.                 PixB = PIX[2][idx + 2]                        # 当前像素的蓝色分量
  208.                 PixA = PIX[2][idx + 3]                        # 当前像素的透明度
  209.                 if PixA != 0:                                # 如果当前像素不为透明则进行如下操作
  210.                     B = randint(-20,30)
  211.                     FSC = fsc(100+randint(-40,0))
  212.                     ass_main(ASS_BUF, SubL(_BT+_SK-10+h-w,_BT+_SK+_KT-B+w,1, Pix_Style),an(7)+pos(PosX,PosY)+alpha(110)+blur(1.2)+FSC+fad(200,200)+shad(0)+bord(0)+color1("FFD5AB")+ be(1) + p(4), 'm 0 -5 l 50 -50 l 5 0 l 50 50 l 0 5 l -50 50 l -5 0 l -50 -50 ')
  213.                     ass_main(ASS_BUF, SubL(_BT+_SK-10+h+w,_BT+_SK+_KT-B+h,1, Pix_Style),an(7)+pos(PosX,PosY)+alpha(100)+blur(1.2)+FSC+fad(200,200)+shad(0)+bord(0)+color1("FFFFFF")+ be(1) + p(3), 'm 0 -3 l 50 -50 l 3 0 l 50 50 l 0 3 l -50 50 l -3 0 l -50 -50 ')
  214.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+fad(200,200)+shad(0)+blur(1)+color1('FFFFFF'), _txt)
  215.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+fad(200,200)+shad(0)+blur(1)+color1('FFFFFF'), _txt)
  216.    
  217.    
  218.     elif  _i == 9:
  219.         SCOLOR1 = vc1('D8D6FF','D8D6FF','A091E6','A091E6')
  220.         for i in range(8):
  221.             ass_main(ASS_BUF, SubL(_BT+_SK+20-i*8,_BT+_SK+_KT,1),an(7)+pos(_x,_y)+fad(200,0)+frz(i*45)+bord(0)+shad(0)+SCOLOR1 + p(2), "m 0 -6 b 7 -17 11 -26 2 -44 b -7 -31 -8 -18 0 -7")
  222.             ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET),an(7)+pos(_x,_y)+frz(i*45)+bord(0)+shad(0)+SCOLOR1 + p(2), "m 0 -6 b 7 -17 11 -26 2 -44 b -7 -31 -8 -18 0 -7")
  223.             ass_main(ASS_BUF, SubL(_ET,_ET+30+_j*5),an(7)+mov(_x,_y,_x-40+randint(-20,20),_y+20+randint(-20,20))+fad(0,200+randint(-20,50))+frz(i*45)+t(frz(i*45+randint(0,360))+frx(0++randint(0,360))+fry(0++randint(0,360)))+bord(0)+shad(0)+SCOLOR1 + p(2), "m 0 -6 b 7 -17 11 -26 2 -44 b -7 -31 -8 -18 0 -7")
  224.             
  225.             
  226.         ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y)+fad(200,0)+bord(0)+shad(1.3)+COLOR1, _txt)
  227.         ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  228.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1, _txt)
  229.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y)+fad(0,200)+bord(0)+shad(1.3)+COLOR1, _txt)
  230.         
  231.         R = RandCir2(_x, _y, 10, 11)
  232.         for i in range(_BT+_SK-20,_BT+_SK+_KT,8):
  233.             JD = randint(-360,360)
  234.             Q = randint(-10,10)
  235.             H = randint(-30,40)
  236.             HH = randint(-10,30)
  237.             D = randint(-20,20)
  238.             for k in range(5):
  239.                 ass_main(ASS_BUF, SubL(i, i+150,50), an(7)+fsc(190+D)+bord(0)+shad(0)+SCOLOR1+fad(30,300)+mov(R[0]+Q,R[1]+Q,_x-50+H,_y+30+HH)+t(frx(JD)+fry(JD)+frz(JD)), "{\p3}m 3 9 b -6 9 -7 -7 2 -12 b 7 -8 6 1 3 9 {\p0}")
  240.         
  241.         
  242.         points = gfGetPoints(GdiFont, _txt)  #GDIfont

  243.         PIX = PixFromPoints(points)   #GDIfont
  244.         FRY = frz(0+randint(0,360))
  245.         InitPosX = _x - int(_a / 2 + 0.5) + PIX[0][0]        # 第一个像素的X轴坐标
  246.         InitPosY = _y - int(_Fs / 2 + 0.5) + PIX[0][1]        # 第一个像素的Y轴坐标
  247.         for h in range(0,PIX[1][1],1):                                # 开始纵向扫描
  248.             PosY  = InitPosY + h
  249.             
  250.             for w in range(0,PIX[1][0],1):                        # 开始横向扫描
  251.                 PosX = InitPosX + w
  252.                 X = PosX-randint(-50,50)
  253.                 Y = PosY-randint(-50,50)                        # 当前像素X轴坐标
  254.                 idx  = 4 * (h * PIX[1][0] + w)                # 脚标
  255.                 PixR = PIX[2][idx + 0]                        # 当前像素的红色分量
  256.                 PixG = PIX[2][idx + 1]                        # 当前像素的绿色分量
  257.                 PixB = PIX[2][idx + 2]                        # 当前像素的蓝色分量
  258.                 PixA = PIX[2][idx + 3]                        # 当前像素的透明度
  259.                 if PixA != 0:                                # 如果当前像素不为透明则进行如下操作
  260.                     B = randint(-20,30)
  261.                     FSC = fsc(100+randint(-40,0))
  262.                     ass_main(ASS_BUF, SubL(_BT+_SK-10+h+w,_BT+_SK+_KT-B+h+w,1, Pix_Style),an(7)+pos(PosX,PosY)+alpha(110)+blur(1.2)+FSC+fad(200,200)+shad(0)+bord(0)+color1('FFFFFF')+ be(1) + p(4), 'm 0 -5 l 50 -50 l 5 0 l 50 50 l 0 5 l -50 50 l -5 0 l -50 -50 ')
  263.                     ass_main(ASS_BUF, SubL(_BT+_SK-10+h-w,_BT+_SK+_KT-B+h-w,1, Pix_Style),an(7)+pos(PosX,PosY)+alpha(100)+blur(1.2)+FSC+fad(200,200)+shad(0)+bord(0)+color1('D8D6FF')+ be(1) + p(3), 'm 0 -3 l 50 -50 l 3 0 l 50 50 l 0 3 l -50 50 l -3 0 l -50 -50 ')
  264.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+fad(200,200)+shad(0)+blur(1)+color1('FFFFFF'), _txt)
  265.         
  266.         
  267.         
  268.     elif  _i > 9:
  269.         ass_main(ASS_BUF, SubL(_BT-30+_j*5,_BT+(_j+1)*5,1),pos(_x,_y)+fad(200,0)+bord(0)+shad(1.3)+COLOR1, _txt)
  270.         ass_main(ASS_BUF, SubL(_BT+(_j+1)*5,_BT+_SK,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1+t(alpha1(255)), _txt)
  271.         ass_main(ASS_BUF, SubL(_BT+_SK,_BT+_SK+_KT,1),pos(_x,_y)+bord(0)+shad(1.3)+COLOR1+K(_KT), _txt)
  272.         ass_main(ASS_BUF, SubL(_BT+_SK+_KT,_ET-8+_j*5,1),pos(_x,_y)+fad(0,200)+bord(0)+shad(1.3)+COLOR1, _txt)
  273.    
  274.    
  275.    
  276.    
  277.     global _Spacing     # 字体间距
  278.     _Spacing = GetVal(val_Spacing)
  279.     if _i < 6:
  280.         for i in range(0,_a,1):
  281.             for k in range(1):
  282.                 R = randint(-20,20)
  283.                 C = randint(-20,90)
  284.                 B = randint(-5,5)
  285.                 ass_main(ASS_BUF, SubL(_BT+_SK+int(i*_KT/_a),_BT+_SK+int(i*_KT/_a)+100+R,1), bord(0)+blur(0.5)+fsc(100+C)+mov(dx+i,dy+_Fs,dx+i-B,dy-20+R)+color1('FFFFFF')+fad(0,200+R), "{\p4}m 20 0 b 9 0 0 8 0 20 b 0 31 9 39 20 39 b 32 39 41 31 41 20 b 41 8 32 0 20 0 l 20 6 b 23 6 25 5 26 2 b 35 5 39 12 39 20 b 39 27 35 33 31 34 b 31 31 24 29 20 29 b 16 29 10 31 10 34 b 6 33 2 27 1 20 b 1 12 7 5 15 2 b 15 5 18 6 20 6")


  286.    
  287.     return (ASS_BUF, TCS_BUF)
复制代码
里面有些东西可能写了也没用 无视吧……
4

查看全部评分

Rank: 4

发表于 2012-11-27 12:33:10 |显示全部楼层
顶一下,一上来就见到四月君三连发

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

发表于 2012-12-1 18:20:01 |显示全部楼层
顶, 回帖晚了, 四月君力作啊
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-7-18 16:08

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH