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

 找回密码
 新人加入
查看: 6710|回复: 8
打印 上一主题 下一主题

[完整特效] [kk]011_Robotics_Notes_ed2 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2013-2-25 22:47:36 |只看该作者 |倒序浏览
本帖最后由 kk123456 于 2013-2-25 22:53 编辑
  1. from tcaxPy import *
  2. from gdiFont import *

  3. def RandCir2(a, b, r1, r2, n):
  4.     R = randint(r1, r2)
  5.     x = int(R * cos(n*pi/180) + a)
  6.     y = int(R * sin(n*pi/180) + b)
  7.     x1 = int(R * cos(n*pi/180+pi) + a)
  8.     y1 = int(R * sin(n*pi/180+pi) + b)
  9.     return (x,y,x1,y1)

  10. def RandCir(a, b, r1, r2, n):
  11.     R = randint(r1, r2)
  12.     x = AdvInt(R * cos(n) + a)
  13.     y = AdvInt(R * sin(n) + b)
  14.     return (x, y)

  15. def tcaxPy_Init():
  16.     global _FontFileName
  17.     global _FaceID
  18.     global _Fs
  19.     global _Height
  20.     global Font
  21.     _FontFileName = GetVal(val_FontFileName)
  22.     _FaceID       = GetVal(val_FaceID)
  23.     _Fs           = GetVal(val_FontSize)
  24.     _Height       = GetVal(val_TextHeight)
  25.     Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)
  26.    

  27. def tcaxPy_Fin():

  28.     FinFont(Font)


  29. def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _x, _y, _a, _txt):



  30.     ASS_BUF = []
  31.    
  32.     Font1 = InitFont(_FontFileName, _FaceID, _Fs+3, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)
  33.     dx = _x - int(_a / 2 + 0.5)
  34.     dy = _y - int(_Fs / 2 + 0.5)  
  35.     mask = TextOutlineDraw(Font, _txt, dx, dy)
  36.     mask1 = TextOutlineDraw(Font1, _txt, dx, dy)
  37.     m = randint(-14,12)
  38.     n = randint(-12,12)
  39.     if _i < 4 :
  40.         ass_main(ASS_BUF, SubL(_BT+_SK-10, _ET-(_n-_j)*4+40,10), an(5) + pos(_x+n, _y+m)+fs(1)+bord(0)+t(0,_KT*10+200,fs(_Fs+20)) + clip2(7, mask)+fad(0,350), "●")
  41.         for k in range (3) :
  42.             for i in range (0,int(_ET+_j*3-_BT-_SK-150),80) :
  43.                 img = RandImg(2,12,12)
  44.                 x = _x+randint(-10,10)
  45.                 y = _y+randint(-25,-5)
  46.                 ass_main(ASS_BUF, SubL(_BT+_SK+i, _BT+_SK+i+250,10), blur(randint(1,3))+color1("000000")+bord(0)+clip2(7, mask)+fad(0,200)+move(x,y,x,y+_Fs*1.2), "{\p1}"+img)
  47.     if _i > 3 and _i < 9 :
  48.         nk1 = (0,1,2,3)
  49.         n = nk1[randint(0,3)]*90+randint(43,58)
  50.         nk = (-1,0,1)
  51.         n2 = n-180*nk[randint(0,1)]+randint(-15,15)
  52.         zj = RandCir(_x,_y,25,35,n)
  53.         zj2 = RandCir(_x,_y,65,75,n2)
  54.         num = 80    # 曲线上点的个数
  55.         x1 = randint(30,40)
  56.         x2 = randint(-40,-30)
  57.         xc = [x1,x2]   
  58.         yc = xc[randint(0,1)]
  59.         xs = _x +yc
  60.         ys = _y + yc   
  61.         xe = _x     
  62.         ye = _y
  63.         points = Bezier2(num, zj[0], zj[1], xe, ye, zj2[0], zj2[1])   # 3阶贝塞尔曲线, 控制点的生成是重点以及难点
  64.         for i in range(num):
  65.             POS = pos(points[i][0], points[i][1])   # 获取曲线上点坐标
  66.             EFT = POS+color3('FFFFFF')+color1('FFFFFF')+bord(1)+t(fs(0)+bord(0)) + fad(0, 200)
  67.             ass_main(ASS_BUF, SubL(_BT+_SK-100+i/60*80, _BT+_SK-100+i/60*80+60,0), EFT, PixPt())
  68.         for i in range(7):
  69.             ass_main(ASS_BUF, SubL(_BT+_SK-5, _BT+_SK+randint(100,200),0), move(_x,_y,_x+randint(-50,50),_y+randint(-50,30))+fad(150,300)+color3('FFFFFF')+bord(0)+fsc(1000,1000)+t(frz(randint(-60,60)))+fscy(150), "{\p4}m 0 0 l 0 -13 l 1 0 l 14 -7 l 2 1 l 14 7 l 1 2 l 1 15 l 0 2 l -13 7 l -1 1 l -13 -7 ")
  70.         if _i == 4 or _i == 6 :
  71.             col = ("88D7EE")
  72.             col2 = ("688DDA")
  73.         if _i == 5 or _i == 7 or _i == 8 :
  74.             col = ("D0854A")
  75.             col2 = ("DAA16C")
  76.         for i in range (20):
  77.             nk1 = (0,1,2,3)
  78.             n = nk1[randint(0,3)]*90+randint(43,58)
  79.             nk = (-1,0,1)
  80.             n2 = n-180*nk[randint(0,1)]+randint(-15,15)
  81.             zj = RandCir(_x,_y,25,35,n)
  82.             zj2 = RandCir(_x,_y,65,75,n2)
  83.             
  84.             ass_main(ASS_BUF, SubL(_BT+_SK+_KT/50*i,_BT+_SK+_KT+15,20-i+1),pos(_x,_y)+fad(0,50)+color3("FFFFFF")+be(6/15*i)+alpha1(15*i)+alpha3(12*i)+color1(col)+fs(_Fs-10+i*1.5)+t(_KT*3,_KT*10-_KT/5*i+50,alpha1(256)+alpha3(256)+fs(_Fs)), _txt)
  85.         ass_main(ASS_BUF, SubL(_BT+_j*5,_ET-(_n-_j)*4+40,1),an(5)+pos(_x,_y)+fad(250,350)+be(6)+bord(4)+blur(6)+color3(col2), _txt)
  86.     if _i > 8 and _i < 13 :
  87.         for k in range(int(_KT/25)):
  88.             for i in range (2) :
  89.                 sz = (1,2,3)
  90.                 xs = dx + i*(_a+10)/3 + randint(-15,15)
  91.                 ys = dy + randint(-12,-5)
  92.                 xe = xs + 35
  93.                 ye = ys + _Fs*1.2 +randint(0,10)
  94.                 points = Bezier1(50, xs, ys, xe, ye)
  95.                 b = bord(randint(6,12)*0.1)
  96.             
  97.                 for f in range(50):
  98.                     POS = pos(points[f][0], points[f][1])
  99.                     EFT = POS+color3('FFFFFF')+color1('FFFFFF')+b+t(0,200,fs(0)+bord(0)) + fad(0, 100)
  100.                     ass_main(ASS_BUF, SubL(_BT+_SK+(i-1)*20+(k-1)*30+f+5, _BT+_SK+i*20+(k-1)*30+f+25,10), EFT, PixPt())
  101.             
  102.         ass_main(ASS_BUF, SubL(_BT+_SK, _ET-(_n-_j)*4+40,10), pos(_x+n, _y+m)+fs(1)+bord(0)+t(0,_KT*10,fs(_Fs+10)+blur(5)) + clip2(7, mask)+fad(0,350), "●")
  103.         ass_main(ASS_BUF, SubL(_BT+_j*4, _ET-(_n-_j)*4+40,0), pos(_x, _y)+bord(1)+blur(4)+color1("664157")+t(_SK*10-_j*40,_SK*10+_KT*10-_j*40,color3("DAA16C"))+fad(250,350), _txt)
  104.     if _i > 12 :
  105.         for n in range (1) :
  106.             xs = _x+randint(-80,20)
  107.             ys = _y+randint(-10,55)
  108.             xe = xs+randint(120,135)/_n*(_n-_j+1)
  109.             ye = ys+randint(-20,0)
  110.             ass_main(ASS_BUF, SubL(_BT+_SK, _ET-(_n-_j)*4+40,10),move(xs,ys,xe,ye)+bord(0.6)+blur(2)+t(fr(randint(-60,60)))+fad(200,350)+fsc(75,75)+color1("C6E8E8"), "{\p2}"+"m 0 0 l 0 0 l -2 32 m -2 32 b -2 33 -2 33 -2 32 l -2 32 b -3 35 -3 36 -3 38 b -3 39 -3 41 -2 42 b -2 42 -2 42 -2 42 b -1 40 -1 36 -2 33 l 0 0 l 0 0 m 0 0 l 14 -6 l 5 -5 l 12 -10 l 12 -10 l 6 -7 l 10 -12 l 2 -5 l 9 -15 l 1 -8 l 2 -20 l -1 -7 l -5 -18 l -3 -7 l -10 -14 l -4 -6 l -14 -5 l -3 -4 l -13 -3 ")
  111.         ass_main(ASS_BUF, SubL(_BT+_SK-10, _ET-(_n-_j)*4+40,10), an(5) + pos(_x+n, _y+m)+fs(1)+bord(0)+t(0,_KT*10+200,fs(_Fs+20)) + clip2(7, mask)+fad(0,350), "●")
  112.         ass_main(ASS_BUF, SubL(_BT+_SK-10, _ET-(_n-_j)*4+40,0), pos(_x+n, _y+m)+clip2(7, mask1)+fs(1)+t(0,_KT*8+200,color1("000000"))+bord(0)+t(0,_KT*10+200,fs(_Fs+25))+fad(0,350)+blur(3), "●")
  113.     return (ASS_BUF, None)
复制代码
视频预览
   
    没什么特别的,群邮上有人说要就发上来了
3

查看全部评分

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

沙发
发表于 2013-2-25 23:47:03 |只看该作者
蒲公英做得很赞啊

Moderator

疯子

Rank: 5Rank: 5

板凳
发表于 2013-2-26 18:50:21 |只看该作者
这个很棒啊,我也支持下

Rank: 4

地板
发表于 2013-2-27 21:42:10 |只看该作者
好给力~~这个特效很棒!!各种支持!!

Rank: 4

5#
发表于 2013-3-2 13:41:02 |只看该作者
from gdiFont import   求助, 下载了论坛里的gdiFont和tacxpy的最新脚本。。。可是。。。不知道怎么用~~~ 程序仍然找不到gdiFont.....

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

6#
发表于 2013-3-2 14:57:19 |只看该作者
balibabyer 发表于 2013-3-2 13:41
from gdiFont import   求助, 下载了论坛里的gdiFont和tacxpy的最新脚本。。。可是。。。不知道怎么用~~~  ...

把这句代码改成 from util.gdiFont import *

Rank: 4

7#
发表于 2014-1-4 20:30:17 |只看该作者
圆遮罩shine流星渐变蒲公英等全都用上了,漂亮!

Rank: 4

8#
发表于 2014-1-24 13:02:33 |只看该作者
阿诺。。阿诺。。流星的效果在哪行啊

Rank: 4

9#
发表于 2014-6-22 03:53:37 |只看该作者
哇。。。。

Rank: 4

10#
发表于 2021-12-24 01:44:11 |只看该作者
本帖最后由 Seekladoom 于 2021-12-24 01:44 编辑

梦寐以求的流星特效,这个可以用在《Charlotte》的OP和《你的名字》的火花插曲对应的流星场景上啊!
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

GMT+8, 2024-11-23 11:11

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH