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

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

[完整特效] [kk]10_Sword_Art_Online_ed2 [复制链接]

Rank: 4

跳转到指定楼层
楼主
发表于 2012-12-16 18:16:14 |只看该作者 |倒序浏览
  1. from tcaxPy import *

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

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

  14. def RandCir3(a, b, R, n):
  15.     x = int(R * cos(n*pi/180) + a)
  16.     y = int(R * sin(n*pi/180) + b)
  17.     x1 = int(R * cos(n*pi/180+pi) + a)
  18.     y1 = int(R * sin(n*pi/180+pi) + b)
  19.     return (x,y,x1,y1)

  20. def tcaxPy_Init():
  21.     global _FontFileName
  22.     global _FaceID
  23.     global _Fs
  24.     global _Height
  25.     global Font
  26.     _FontFileName = GetVal(val_FontFileName)
  27.     _FaceID       = GetVal(val_FaceID)
  28.     _Fs           = GetVal(val_FontSize)
  29.     _Height       = GetVal(val_TextHeight)
  30.     Font = InitFont(_FontFileName, _FaceID, _Fs, GetVal(val_Spacing), GetVal(val_SpaceScale), 0xFFFFFF, 0, 0)
  31.    





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



  33.     ASS_BUF = []
  34.     dx = _x - int(_a / 2 + 0.5)         
  35.     dy = _y - int(_Fs / 2 + 0.5)
  36.     if _i < 11 or _i == 14 or _i == 15 :
  37.        for i in range (20):
  38.            ass_main(ASS_BUF, SubL(_BT+_SK+_KT/50*i,_BT+_SK+_KT+10,20-i+1),pos(_x,_y)+fad(0,50)+color3("FFFFFF")+be(6/15*i)+alpha1(15*i)+alpha3(12*i)+color1("F23023")+fs(_Fs-10+i*1.5)+t(_KT*3,_KT*10-_KT/5*i+50,alpha1(256)+alpha3(256)+fs(_Fs)), _txt)
  39.        ass_main(ASS_BUF, SubL(_BT+_j*6,_ET+_j*6,1),an(5)+pos(_x,_y)+fad(250,200)+be(6)+bord(4)+blur(6), _txt)
  40.     if _i < 11 or _i == 14 or _i == 15 :
  41.         nk1 = (0,1,2,3)
  42.         n = nk1[randint(0,3)]*90+randint(43,58)
  43.         nk = (-1,0,1)
  44.         n2 = n-180*nk[randint(0,1)]+randint(-15,15)
  45.         zj = RandCir(_x,_y,25,35,n)
  46.         zj2 = RandCir(_x,_y,65,75,n2)
  47.         num = 80    # 曲线上点的个数
  48.         x1 = randint(30,40)
  49.         x2 = randint(-40,-30)
  50.         xc = [x1,x2]     # 控制点1
  51.         yc = xc[randint(0,1)]
  52.         xs = _x +yc
  53.         ys = _y + yc    # 开始点
  54.         xc1 = _x + randint(-60,60)    # 控制点2
  55.         yc1 = _y + randint(-60,60)
  56.         xe = _x     # 结束点
  57.         ye = _y
  58.         points = Bezier2(num, zj[0], zj[1], xe, ye, zj2[0], zj2[1])   # 3阶贝塞尔曲线, 控制点的生成是重点以及难点
  59.         for i in range(num):
  60.             POS = pos(points[i][0], points[i][1])   # 获取曲线上点坐标
  61.             EFT = POS+color3('FFFFFF')+color1('FFFFFF')+bord(1)+t(fs(0)+bord(0)) + fad(0, 200)
  62.             ass_main(ASS_BUF, SubL(_BT+_SK-100+i/60*80, _BT+_SK-100+i/60*80+60,0), EFT, PixPt())
  63.         for i in range(7):
  64.             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 ")

  65.     if _i > 10 and _i < 14 :
  66.         for i in range (20):
  67.            ass_main(ASS_BUF, SubL(_BT+_SK+_KT/50*i,_BT+_SK+_KT+10,200-i+1),pos(_x,_y)+fad(0,50)+color3("FFFFFF")+be(6/15*i)+alpha1(15*i)+alpha3(12*i)+color1("19C25A")+fs(_Fs-10+i*1.5)+t(_KT*3,_KT*10-_KT/5*i+50,alpha1(256)+alpha3(256)+fs(_Fs)), _txt)
  68.         ass_main(ASS_BUF, SubL(_BT+_j*6,_ET+_j*6,0),an(5)+pos(_x,_y)+fad(250,200)+be(2)+bord(2)+t((_SK-_j*6)*10,(_SK-_j*6+_KT/2)*10,be(6)+bord(4)+blur(6)+color3("19C25A")), _txt)
  69.         for i in range(7):
  70.             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 ")
  71.         if _j == 0 :
  72.            dx = _x - int(_a / 2 + 0.5)        
  73.            dy = _y - int(_Fs / 2 + 0.5)
  74.            _TextLength = GetVal(val_TextLength)
  75.            for k in range (randint(int(0.5*_n),int(0.8*_n))):
  76.                num = 20
  77.                _x = dx + randint(20,_TextLength[_i]-20)
  78.                n = randint(-40,10)
  79.                n2 = n+randint(170,190)
  80.                zj = RandCir2(_x,_y,30,55,n)
  81.                ze = RandCir(_x,_y,30,55,n+pi)
  82.                r = randint(15,25)
  83.                zk1 = RandCir3(zj[0], zj[1],r,n2)
  84.                zk2 = RandCir3(ze[0], ze[1],r,n2-180)
  85.                kt = _BT+randint(0,_ET-_BT-25)
  86.                sf = randint(18,24)
  87.                points = Bezier3(num, zj[0], zj[1], zj[2], zj[3], zk1[0], zk1[1], zk2[0], zk2[1])   # 3阶贝塞尔曲线, 控制点的生成是重点以及难点
  88.                for k in range(randint(3,5)):
  89.                    for i in range(num):
  90.                        POS = pos(points[i][0]+randint(-5,5), points[i][1]+randint(-5,5))   # 获取曲线上点坐标
  91.                        EFT = color1('FFFFFF')+bord(0) + fad(0,randint(150,250))+fscx(sf)+fscy(sf)+alpha1(randint(20,90))+blur(randint(0,3))+move(points[i][0]+randint(-4,4), points[i][1]+randint(-4,5),points[i][0]+randint(-15,15), points[i][1]+randint(-15,15),200,900)+t(500,900,fscy(0)+fscx(0))
  92.                        ass_main(ASS_BUF, SubL(kt+i*3,kt+i*3+randint(45,80),k+3), EFT,"●")

  93.     return (ASS_BUF, None)
复制代码
没什么好说的..........
     
     视频预览
1

查看全部评分

Moderator

疯子

Rank: 5Rank: 5

沙发
发表于 2012-12-16 19:26:39 |只看该作者
本帖最后由 渣渣疯子 于 2012-12-16 19:29 编辑

支持一下,辛苦了

Moderator

youkaze

Rank: 5Rank: 5

板凳
发表于 2012-12-16 19:28:01 |只看该作者
来支持个

Rank: 5Rank: 5

地板
发表于 2012-12-16 19:41:13 |只看该作者
曲线高端到跟原片的同步率爆表
赞!

Administrator

TCAX Dev.

Rank: 7Rank: 7Rank: 7

5#
发表于 2012-12-16 20:23:07 |只看该作者
先支持一下, 预览下载中

Rank: 4

6#
发表于 2012-12-16 23:57:08 |只看该作者
顶起

Rank: 4

7#
发表于 2012-12-20 21:45:04 |只看该作者
厉害!同步率真高!

Rank: 4

8#
发表于 2013-1-2 09:31:53 |只看该作者
very interesting. thanks for sharing.

Rank: 4

9#
发表于 2013-1-5 21:50:53 |只看该作者
真的好漂亮,那个发散星光太棒了

Rank: 4

10#
发表于 2013-1-7 13:51:26 |只看该作者
真的很漂亮~~我想拿来用~

Rank: 4

11#
发表于 2013-12-21 21:06:39 |只看该作者
sin cos?三角函数? 作为文科生表示莫名的蛋疼....

Rank: 4

12#
发表于 2014-4-11 18:06:46 |只看该作者
很漂亮~ 支持
您需要登录后才可以回帖 登录 | 新人加入

GitHub|TCAX 主页

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

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部
RealH