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

 找回密码
 新人加入
查看: 3146|回复: 3

[完整特效] [youkaze]017_Shinsekai_OP [复制链接]

Moderator

youkaze

Rank: 5Rank: 5

发表于 2012-11-27 12:43:14 |显示全部楼层
  1. from tcaxPy import *
  2. from gdiFont import *

  3. def tcaxPy_Init():

  4.     global _FontFileName
  5.     global _FaceID
  6.     global _Fs
  7.     global _TextWidth
  8.     global _TextHeight
  9.     global _TextLength
  10.     global _TextAdvDiff
  11.     global _ResolutionX
  12.     global _FD
  13.     global GdiFont   #GDIfont


  14.     _FontFileName = GetVal(val_FontFileName)
  15.     _FaceID       = GetVal(val_FaceID)
  16.     _Fs           = GetVal(val_FontSize)
  17.     _TextHeight   = GetVal(val_TextHeight)
  18.     _TextWidth    = GetVal(val_TextWidth)
  19.     _TextLength   = GetVal(val_TextLength)
  20.     _TextAdvDiff  = GetVal(val_TextAdvanceDiff)
  21.     _ResolutionX  = GetVal(val_ResolutionX)
  22.     _FD           = 1000 / GetVal(val_FXFPS)
  23.     GdiFont = gfInitFont(GetVal(val_FontFaceName), _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0, False)    #GDIfont

  24. def tcaxPy_Fin():
  25.     gfFinFont(GdiFont)    #GDIfont



  26. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):
  27.     ASS_BUF = []

  28.    


  29. #    ts = _BT + _SK                                  # start time, in semi-second
  30. #    te = _BT + _SK + _KT                              # end time, in semi-second
  31. #    SUIJ0 = randint(-20,20)
  32. #    CIR = Circle(12, _x+SUIJ0, _y+SUIJ0, 20)
  33. #    for h in range(12):
  34. #        SUIJ1 = randint(0,20)
  35. #        SUIJ2 = randint(-60,60)
  36. #        R1 = RandCir2(_x+SUIJ0, _y+SUIJ0, 18, 18)
  37. #        MOV = mov(_x+SUIJ0,_y+SUIJ0,R1[0],R1[1])
  38. #        MOV = mov(_x+SUIJ0,_y+SUIJ0,CIR[h][0], CIR[h][1])
  39. #        EFT = MOV+fad(50,0)+bord(0)
  40. #        ass_main(ASS_BUF,SubL(ts,ts+50+SUIJ1,1), EFT, PixPt())
  41.         
  42. #        CIR2 = Circle(12, CIR[h][0], CIR[h][1], 20)
  43. #        for b in range(12):
  44. #            R2 = RandCir2(R1[0],R1[1], 22, 22)
  45. #            MOV = mov(R1[0],R1[1],R2[0],R2[1])
  46. #            MOV = mov(CIR[h][0], CIR[h][1],CIR2[b][0], CIR2[b][1])
  47. #            EFT = MOV+fad(0,200)+bord(0)
  48. #            ass_main(ASS_BUF,SubL(ts+50+SUIJ1,ts+200+SUIJ2,1), EFT, PixPt())



  49.     if _i ==0 or  _i ==1 or _i>2 and _i<7 or _i ==8 or _i ==10 or _i ==12 or _i ==14:
  50.         for a in range(16):
  51.             R = randint(0,15)
  52.             dx = _x - int(_a  / 2 + 0.5)
  53.             dy = _y - int(_Fs / 2 + 0.5)
  54.             
  55.             mask1 = gfGetOutline(GdiFont, _txt, dx+1, dy+1)    #GDIfont
  56.             
  57.             ass_main(ASS_BUF, SubL(_BT+_SK+30-a*3,_ET+120-a*6,1),an(7) + pos(_x, _y)+color1("857A81")+fad(200,300)+bord(0)+blur(3)+ alpha1(0)+frz(a*22.5)+clip2(4, mask1)+p(1), "m -1 0 l 1 -23 l 10 -21 l 1 0 ")
  58.             
  59.             mask2 = gfGetOutline(GdiFont, _txt, dx, dy)    #GDIfont
  60.             
  61.             ass_main(ASS_BUF, SubL(_BT+_SK+30-a*3,_ET+120-a*6,3),an(7) + pos(_x, _y)+color1("FFFFFF")+fad(200,300)+bord(0)+blur(3)+ alpha1(0)+frz(a*22.5)+clip2(4, mask2)+p(1), "m -1 0 l 1 -23 l 10 -21 l 1 0 ")
  62.         
  63.     if _i ==6 or _i ==8 or _i ==10 or _i ==12 or _i ==14:
  64.         ts1 = _BT+_SK
  65.         SUIJ0 = randint(-20,20)
  66.         CIR = Circle(12, _x+SUIJ0, _y+SUIJ0, 20)
  67.         for h in range(12):
  68.             SUIJ1 = randint(0,20)
  69.             MOV = mov(_x+SUIJ0,_y+SUIJ0,CIR[h][0], CIR[h][1])
  70.             EFT = MOV+fad(50,0)+bord(0)
  71.             ass_main(ASS_BUF,SubL(ts1,ts1+50+SUIJ1,1), EFT, PixPt())
  72.             
  73.             CIR2 = Circle(12, CIR[h][0], CIR[h][1], 20)
  74.             for b in range(12):
  75.                 SUIJ2 = randint(-60,60)
  76.                 MOV = mov(CIR[h][0], CIR[h][1],CIR2[b][0], CIR2[b][1])
  77.                 EFT = MOV+fad(0,200)+bord(0)
  78.                 ass_main(ASS_BUF,SubL(ts1+50+SUIJ1,ts1+200+SUIJ2,1), EFT, PixPt())
  79.         
  80.         
  81.         
  82.     if _i ==2 or _i ==7 or _i ==9 or _i ==11 or _i ==13:
  83.         for a in range(16):
  84.             R = randint(0,15)
  85.             dx = _x - int(_a  / 2 + 0.5)
  86.             dy = _y - int(_Fs / 2 + 0.5)
  87.             
  88.             mask1 = gfGetOutline(GdiFont, _txt, dx-_ResolutionX+_TextLength[_i]+25+1, dy+1)    #GDIfont _ResolutionX
  89.             
  90.             ass_main(ASS_BUF, SubL(_BT+_SK+30-a*3,_ET+120-a*6,1),an(7) + pos(_x-_ResolutionX+_TextLength[_i]+25, _y)+color1("857A81")+fad(200,300)+bord(0)+blur(3)+ alpha1(0)+frz(a*22.5)+clip2(4, mask1)+p(1), "m -1 0 l 1 -23 l 10 -21 l 1 0 ")
  91.             
  92.             mask2 = gfGetOutline(GdiFont, _txt, dx-_ResolutionX+_TextLength[_i]+25, dy)    #GDIfont
  93.             
  94.             ass_main(ASS_BUF, SubL(_BT+_SK+30-a*3,_ET+120-a*6,3),an(7) + pos(_x-_ResolutionX+_TextLength[_i]+25, _y)+color1("FFFFFF")+fad(200,300)+bord(0)+blur(3)+ alpha1(0)+frz(a*22.5)+clip2(4, mask2)+p(1), "m -1 0 l 1 -23 l 10 -21 l 1 0 ")
  95.    
  96.    
  97.     if _i ==7 or _i ==9 or _i ==11 or _i ==13:
  98.         ts2 = _BT+_SK
  99.         SUIJ0 = randint(-20,20)
  100.         CIR = Circle(12, _x-_ResolutionX+_TextLength[_i]+25+SUIJ0, _y+SUIJ0, 20)
  101.         for h in range(12):
  102.             SUIJ1 = randint(0,20)
  103.             MOV = mov(_x-_ResolutionX+_TextLength[_i]+25+SUIJ0,_y+SUIJ0,CIR[h][0], CIR[h][1])
  104.             EFT = MOV+fad(50,0)+bord(0)
  105.             ass_main(ASS_BUF,SubL(ts2,ts2+50+SUIJ1,1), EFT, PixPt())
  106.             
  107.             CIR2 = Circle(12, CIR[h][0], CIR[h][1], 20)
  108.             for b in range(12):
  109.                 SUIJ2 = randint(-60,60)
  110.                 MOV = mov(CIR[h][0], CIR[h][1],CIR2[b][0], CIR2[b][1])
  111.                 EFT = MOV+fad(0,200)+bord(0)
  112.                 ass_main(ASS_BUF,SubL(ts2+50+SUIJ1,ts2+200+SUIJ2,1), EFT, PixPt())
  113.    
  114.    
  115.     return (ASS_BUF, None)
复制代码
老样子一些东西写了没用 没整理 预览群邮了
1

查看全部评分

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

发表于 2012-12-1 18:18:54 |显示全部楼层
这个效果感觉很不错啊, 用哔哔姐的话说就是 挺洋气

Rank: 4

发表于 2013-3-3 17:44:02 |显示全部楼层

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

发表于 2013-3-3 19:33:41 |显示全部楼层
智负 发表于 2013-3-3 17:44
求群号

去 版务区看看, 应该有置顶
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-3-29 13:11

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH